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

Re: git-svn and huge data and modifying the git-svn-HEAD branch directly

From
Linus Torvalds <torvalds@osdl.org>
Date
Mar 1, 2006, 17:40 UTC
Message-ID
<Pine.LNX.4.64.0603010935201.22647@g5.osdl.org>
In-Reply-To
<200603011814.43573.Josef.Weidendorfer@gmx.de>
On Wed, 1 Mar 2006, Josef Weidendorfer wrote:
Show 16 quoted lines
>
> On Wednesday 01 March 2006 17:24, Linus Torvalds wrote:
> > The thing about it being .git/refs/heads/svn/xyzzy is that then you can do
> > 
> > 	git checkout svn/xyzzy
> > 
> > and start modifying it. Which is exactly against the point: the thing is 
> > _not_ a branch and you must _not_ commit to it.
> > 
> > It's much more like a tag: it's a pointer to the last point of an 
> > svn-import.
> 
> Isn't it the same with tracked branches of a remote git repo?
> With this reasoning, all heads that git-clone clones aside from the
> special "master" should not be under .git/refs/heads, but better
> under .git/refs/remotes/<remoteRepoName>/ ?
Yes, I think that would make tons of sense.
Show 7 quoted lines
> <remoteRepoName> is "origin" in the case of git-clone, so .git/remotes/origin
> would contain
>  URL: http://host/repo.git
>  Pull: master:remotes/origin/master
> 
> Then there would not be the need for the confusing special branch "origin"
> after cloning, as namespaces are separate.

I think that would make things a lot more flexible, and yes, it sounds like a good idea.

HOWEVER.

I think it's not only very common, but quite useful, to do what we do now, ie

	git log origin..
to see "what is in origin but not in HEAD".
So there's a big usability issue: I don't think it's good to have to say
	git log remotes/origin/master..
to do the same.

So from a usability standpoint, we'd have to teach "get_sha1()" about parsing .git/remotes/* files if it cannot find a branch or a tag with that name (which it wouldn't be able to, since even if it were to walk the directories udner .git/refs/ recursively, it would be named "master" there).

But if somebody does the get_sha1() magic, and Junio agrees, then I think it would be a great thing to do.

			Linus
Previous: Shawn PearceNext: Josef Weidendorfer
Message 15 of 33 in “git-svn and huge data and modifying the git-svn-HEAD branch directly”
  1. Nicolas Vilz 'niv'Feb 27, 2006
  2. Eric WongFeb 27, 2006
  3. Jan HarkesFeb 27, 2006
  4. Eric WongFeb 27, 2006
  5. Martin LanghoffFeb 28, 2006
  6. Linus TorvaldsFeb 28, 2006
  7. Martin LanghoffFeb 28, 2006
  8. Eric WongMar 1, 2006
  9. Andreas EricssonMar 1, 2006
  10. Linus TorvaldsMar 1, 2006
  11. Andreas EricssonMar 1, 2006
  12. Linus TorvaldsMar 1, 2006
  13. Josef WeidendorferMar 1, 2006
  14. Shawn PearceMar 1, 2006
  15. Linus TorvaldsMar 1, 2006
  16. Josef WeidendorferMar 1, 2006
  17. Linus TorvaldsMar 1, 2006
  18. Josef WeidendorferMar 1, 2006
  19. Linus TorvaldsMar 1, 2006
  20. Junio C HamanoMar 1, 2006
  21. Josef WeidendorferMar 1, 2006
  22. Martin LanghoffMar 1, 2006
  23. Carl WorthMar 1, 2006
  24. Linus TorvaldsMar 1, 2006
  25. Johannes SchindelinMar 1, 2006
  26. Petr BaudisMar 19, 2006
  27. Linus TorvaldsMar 19, 2006
  28. Junio C HamanoMar 19, 2006
  29. contrib/git-svn: tell the user to not modify git-svn-HEAD directlyEric Wong, Feb 27, 2006
  30. Nicolas Vilz 'niv'Feb 27, 2006
  31. Eric WongFeb 27, 2006
  32. Nicolas Vilz 'niv'Feb 27, 2006
  33. contrib/git-svn: correct commit example in manpageEric Wong, Feb 27, 2006

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.