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


Reply via email to