Re: git-svn with multiple branch directories
- From
- Eric Wong <normalperson@yhbt.net>
- Date
- Mar 20, 2009, 10:04 UTC
- Message-ID
- <20090320100411.GB17287@dcvr.yhbt.net>
- In-Reply-To
- <alpine.LSU.2.01.0903200002390.29898@bianca.dialin.t-online.de>
Guido Ostkamp <git@ostkamp.fastmail.fm> wrote:
Show 54 quoted lines
> Hello, > > I am trying to create a git repo that tracks an SVN repo with multiple > branch directories. > > Is there any way to get this done easily? > > It seems the 'git svn' command allows only to specify one 'trunk', > 'branches' and 'tag' directory. > > The example usecase is the OpenOffice.org repo (it's just a private > experiment). I got this svn-sync'ed within 4 evening sessions, the SVN > size is about ~8 GB with ~270000 commits. Unfortunately their structure > is > > branches/ > contrib/ > cws/ > dist/ > patches/ > tags/ > trunk/ > > where 'cws' and 'branches' both hold branches. > > I have seen a web-based article telling one should > > git svn clone <URL>/trunk repo.git > > first, and then hack the repo.git/.git/config file manually to add > entries like > > [svn-remote "b1"] > url = $SVN_REPO_URL/branches/b1 > fetch = :refs/remotes/b1 > [svn-remote "b2"] > url = $SVN_REPO_URL/branches/b2 > fetch = :refs/remotes/b2 > [svn-remote "c1"] > url = $SVN_REPO_URL/cws/c1 > fetch = :refs/remotes/c1 > ... > > to later use > > git svn fetch <branchname> > > for each branch. But even if that worked, their seems to be no easy way > to detect newly created branches etc. Additionally, I get two entries > listed in 'git branch' for each, one of which with extension '@1' (seems > to point ot the branch point). This doesn't seem to be the case for > repo's with only one branch directory converted the normal way. > > Any ideas?
You should be able to do something like this:
[svn-remote "svn"] url = $SVN_REPO_URL branches = branches/*:refs/remotes/branches/* tags = tags/*:refs/remotes/tags/* fetch = cws/c1:refs/remotes/cws/c1 fetch = cws/c2:refs/remotes/cws/c2 fetch = cws/c3:refs/remotes/cws/c3 ...
As for generating the individual fetch lines, I would just pipe svn ls $SVN_REPO_URL/cws to awk/sed/perl...
-- Eric Wong (who just realized he programs in ASP :x)