git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git svn: Supporting multiple branch subdirs?

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Jun 18, 2009, 14:03 UTC
Message-ID
<4A3A4945.6050307@drmicha.warpmail.net>
In-Reply-To
<4A390AFE.5070703@xiplink.com>
Marc Branchaud venit, vidit, dixit 17.06.2009 17:25:
Show 18 quoted lines
> Michael J Gruber wrote:
>>
>>> (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.
> 
> Sure.  I was mostly wondering why --trunk=head didn't just reuse the name in my local ref.  A minor bug, perhaps?
> 
> (And the FreeBSD community commonly refers to that branch as "current", so that's a name I can use locally.)
> 
>> P.S.: Let me know if you give it a shot, so that we don't duplicate our
>> waste of time...
> 
> I have some cycles to work on this, but I'd need some guidance around git-svn's internals.  I'm not even sure where to start implementing the "branches2" hack you described...

Heck it's perl, so don't even try to understand the code - after all, perl only barely missed the final round in the last competition for the next cryptographic algorithm!

That being said, I did some clueless hacking in git-svn.perl and let it run against the freebsd repo. Now, how's that:

~/src/git/git-svn fetch -r1:10000
git branch -r
  releng/2.0.5
  releng/ALPHA_2_0
  releng/BETA_2_0
  stable/2.0.5
  stable/2.1
  tags/2.0
  tags/2.0.5
  trunk
The revision graph looks OK as well. The git-svn config which I used is:
[svn-remote "svn"]
        url = svn://svn.freebsd.org/base
        fetch = head:refs/remotes/trunk
        branches = releng/*:refs/remotes/releng/*
        branchse = stable/*:refs/remotes/stable/*
        tags = release/*:refs/remotes/tags/*
No typo there, my git svn knows about "branches" and "branchse" now ;)
BTW: In fact there is overlap between releng and stable branches in the
feebsd repo, see 2.0.5.
I'll send a monkey patch in a minute.
Michael
Previous: Marc BranchaudNext: Marc Branchaud
Message 6 of 23 in “git svn: Supporting multiple branch subdirs?”
  1. Marc BranchaudJun 12, 2009
  2. Michael J GruberJun 13, 2009
  3. Marc BranchaudJun 15, 2009
  4. Michael J GruberJun 17, 2009
  5. Marc BranchaudJun 17, 2009
  6. Michael J GruberJun 18, 2009
  7. Marc BranchaudJun 18, 2009
  8. Michael J GruberJun 18, 2009
  9. git-svn: allow two branch configurationsMichael J Gruber, Jun 18, 2009
  10. Marc BranchaudJun 22, 2009
  11. git svn: Support multiple branch and tag paths in the svn repository.Marc Branchaud, Jun 23, 2009
  12. Eric WongJun 25, 2009
  13. Junio C HamanoJun 25, 2009
  14. Eric WongJun 26, 2009
  15. Andreas EricssonJun 26, 2009
  16. Eric WongJun 26, 2009
  17. Marc BranchaudJun 26, 2009
  18. git svn: Doc update for multiple branch and tag pathsMarc Branchaud, Jun 26, 2009
  19. Eric WongJun 26, 2009
  20. git svn: Fix t9138-multiple-branches to use svn_cmd and (cd ...) syntax.Marc Branchaud, Jun 26, 2009
  21. Eric WongJun 26, 2009
  22. Marc BranchaudJun 27, 2009
  23. Eric WongJun 27, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.