On Wed, 2005-10-19 at 15:54 +0200, Paolo Bonzini wrote: > > But if it's not a win for most of us, we probably shouldn't do it. > > There is no perfect revision control system. None of the currently > > production quality open source ones are any better. > > I think it is natural that people start asking questions when they are > getting ready for the real thing. I think everybody is going to pleased > with the transition after a few weeks. > > I was pleased when I moved my projects from CVS to arch, after one or > two weeks. And if I was pleased with arch, I guess it cannot go worse > with subversion... > > I also have a question though. Is it possible to only mirror a few > given branches when setting up an svk repository?
You can simply tell svk to sync starting at a given revision, if you don't want history back to the beginning of the planet > I'd find the oldest branch you want to care about, and then just sync starting with that revision. You can tell what revision a branch started at using a simple binary search (assuming it was created once). IE svn ls svn://gcc.gnu.org/svn/gcc/branches/gcc-4_0-branch@<revision number> (This asks for the path as it existed in revision number. If you used -r, it would find where it was copied from and follow it back through renames, etc. There is a section on peg revs, as these are called, in the book) svn ls will give you an easily greppable error message if the path doesn't exist. It will take at max, log(num revisions)/log(2) (currently 12 :P) svn ls's to find the beginning of the branch I did it manually (and discovered, for example, that gcc-4_0-branch was created in revision 95538 The following script, written by Richard Guenther, will do this for you: #!/bin/sh # search repository tag if test -z "$1"; then exit 1 fi rev=`svn info $1/trunk | grep '^Revision:' | sed -e 's/Revision: //'` echo trunk is at rev $rev width=$[$rev / 2] rev=$[$rev - $width] while true; do width=$[$width / 2] echo svn info $1/[EMAIL PROTECTED] svn info $1/[EMAIL PROTECTED] | grep "Not a valid URL" if ! test $? == 0; then echo - exists. rev=$[$rev - $width] else rev=$[$rev + $width] fi if test $width == 0; then break; fi done