Re: git-svn with multiple branch directories

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

 



Guido Ostkamp <git@xxxxxxxxxxxxxxxxxxx> wrote:
> 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)
--
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]

  Powered by Linux