Marc Branchaud venit, vidit, dixit 15.06.2009 19:29: > Michael J Gruber wrote: >> >> After doing the init with "--branches=stable" (without releng), do >> git config --add svn-remote.svn.branches 'releng/*:refs/remotes/*' >> >> This gives you two branches refspecs in .git/config (feel free to put >> them in different dirs under remotes if there may be name clashes >> between stable and releng branches). > > That doesn't seem to work... No, it doesn't I'm sorry. I knew that git-svn lumps multiple command line arguments into one, but it does so also for config lines. I didn't know that but confirmed from a test (and the source). Now, one last resort would be a more complicated regexp. Unfortunately, something like branches = (releng|stable)/*:refs/remotes/*/* does not work (regexps don't work, only globs) and something like branches = */*:refs/remotes/*/* works in principle but gets everything under head wrong. > > Here's my .git/config file before the first fetch: > > [svn-remote "svn"] > useSvnsyncProps = 1 > ignore-paths = ^[^/]+/(?:cvs2svn|projects|svnadmin|user|vendor.*) > url = file:///home/marcnarc/Code/FreeBSD-all-mirror/base > fetch = head:refs/remotes/trunk > branches = stable/*:refs/remotes/stable/* > branches = releng/*:refs/remotes/releng/* > tags = release/*:refs/remotes/tags/* > > (Shouldn't that fetch line be head:refs/remots/head, since there's nothing called "trunk" in the svn repo? I used git-svn init --trunk=head ...) The left hand side of the refspec refers to the svn repo, the right hand side only names your local ref. Feel free to put "head" there, although this can be confused very easily with "HEAD" which has special meaning in git. >> I assume that git-svn converts such an svn commit into several git >> commits, one for each affected branch. Since you have a local mirror >> it's easy to try out. > > Yep, git-svn does just that. Nice! > > M. At least I got one thing right :) I've used multiple svn-remote sections before (in cases where the repo structure changed) but I'm afraid this is of no use here. Looking at the source of git-svn, one sees that "tags" and "branches" are basically treated the same way, they are simply members of a "remote" struct/object/whatever it's called in perl and only differ in their standard refspec. Noone keeps us from adding "branches2" for a quick hack and checking whether everything stays sane... (git-svn perl often loops over "branches tags", that needs to be replaced). In fact, I think the way to go would be replacing the two by an array. As a next step, the command line parsing and config reading needs to be changed so that multiple branches or tags entries end up generating multiple members of that array. Now this only needs to be implemented ;) Michael P.S.: Let me know if you give it a shot, so that we don't duplicate our waste of time... -- 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