Re: Efficient cloning from svn (with multiple branches/tags subdirs)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Eric,

Eric Wong wrote:
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.


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.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]