Re: Efficient cloning from svn (with multiple branches/tags subdirs)
- From
- Bruno Harbulot <bruno.harbulot@manchester.ac.uk>
- Date
- Oct 14, 2009, 09:07 UTC
- Message-ID
- <4AD594CF.5000304@manchester.ac.uk>
- In-Reply-To
- <20091014060307.GA17178@dcvr.yhbt.net>
Hi Eric,
Eric Wong wrote:
Show 11 quoted lines
> Hi Bruno, > > That looks like there's two levels of tags. You should be able to do > this with your version of git in $GIT_CONFIG: > > [svn-remote "svn"] > url = http://restlet.tigris.org/svn/restlet > fetch = trunk:refs/remotes/svn/trunk > branches = branches/*:refs/remotes/svn/* > tags = tags/*/*:refs/remotes/svn/tags/*/* > ; note the */* to glob at multiple levels
Thank you, here is what I had (with the multiple -t/-b):
[svn-remote "svn"]
url = http://restlet.tigris.org/svn/restlet
branches = branches/1.0/*:refs/remotes/svn/*
branches = branches/1.1/*:refs/remotes/svn/*
tags = tags/1.0/*:refs/remotes/svn/tags/*
tags = tags/1.1/*:refs/remotes/svn/tags/*
tags = tags/1.2/*:refs/remotes/svn/tags/*
tags = tags/2.0/*:refs/remotes/svn/tags/*I think the notation you suggest "*/*" is indeed better, since I don't have to specify each tag sub-directory. However, they change so rarely that it was only a minor issue.
Show 8 quoted lines
>> What surprises me is that it looks like it's looping over and over, >> since sometimes it starts back from SVN revision 1 when it's trying to >> import a new tag. > > Yeah, that's an unfortunate thing about the flexibility of Subversion, > basically anything can be a "tag" or a directory and it's extremely > hard for git svn to support any uncommon cases for tags/branches > out-of-the box, so the manual config editing is needed.
I must admit I don't fully understand how git-svn does the import, but
even with this manual configuration, it still tries to pull (almost)
every revision from revision 1 for each tag, a bit as if there was:
for each tag:
for revision in 1 to tag.latest revision:
pull the revision(This isn't even for each tag, but for each modification of each tag, since tags aren't really tags in SVN).
What I'd like to be able to do (mainly for efficiency and more importantly not to hammer tigris.org) is to pull each revision at most once (even if it's for the directory at the top of trunk, branches and tags).
Best wishes,
Bruno.