Pin Externals when tagging?
From: Roger Lipscombe <rogerl_at_1e.com>
Date: Mon, 30 Jun 2008 11:36:15 +0100
Now that SVN 1.5 has relative externals, we're looking at using it for our internal libraries. We've got several projects, each with its own trunk, tags and branches. Each project uses (some of) the same set of shared static libraries. Up to now, we've given each project its own copy, but this is a maintenance headache, because we have to periodically merge from each project back to the original libraries, and then bring down the updates into each project's trunk.
I thought that relative svn:externals might address this problem, because I could just use (e.g.) "svn:externals = ^/shared/Lib/Misc Lib/Misc" to bring the relevant shared libraries into each of the projects that use them.
(We've not used absolute svn:externals up to now, because the repos is made available externally on a different address (HTTPS) than the internal (HTTP) address).
The problem I'm having is that, when a user creates a tag or a branch, I'd like to be able to pin the externals to the current revision. There was some discussion on the TSVN list about this: http://svn.haxx.se/tsvn/archive-2007-04/0088.shtml (for example), and there's svncopy.pl in SVN's contrib/client-side directory. My problem is that all of my users use TSVN, and they'll not want to use a client-side script (let alone one that requires them to install Perl). Moreover, our continuous integration server (which tags each build automatically) uses SVNKit.
So, my question: in the absence of TSVN supporting a "pin-externals" option (as in the discussion I've linked), is there anything I can do in a server-side hook to pin the externals revisions when tagging or branching?
Alternatively, one of the ideas in the TSVN discussion was _always_ pinning the externals (and, presumably, jumping forward periodically). Is this a good idea? I'm not convinced, because I want a way for people editing a project trunk to be able to make changes to the externals and commit those as well.
DISCLAIMER: This is a PRIVATE message. If you are not the intended recipient, please delete without copying and kindly advise us by e-mail of the mistake in delivery. NOTE: Regardless of content, this e-mail shall not operate to bind 1E Ltd to any order or other contract unless pursuant to explicit written agreement or government initiative expressly permitting the use of e-mail for such purpose
This is an archived mail posted to the Subversion Users mailing list.