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

Re: 2.6.17-rc6-mm2

From
Linus Torvalds <torvalds@osdl.org>
Date
Jun 16, 2006, 02:46 UTC
Message-ID
<Pine.LNX.4.64.0606151937360.5498@g5.osdl.org>
In-Reply-To
<ef5305790606151814i252c37c4mdd005f11f06ceac@mail.gmail.com>
On Fri, 16 Jun 2006, Goo GGooo wrote:
> 
> That's confusing - I believed all protocols should behave the same way...?

Not really. The primary protocol is the native git one, and the others try to do a best effort, but the http protocol really can't do a very good job unless the server side has run "git update-server-info" to help the http client along.

I suspect that the -mm git tree simply doesn't do that. In fact, even the main tree didn't use to do it, but I finally just broke down and added the proper hook to make it always do it automatically when I push.

(In case Andrew wants to do that, the way to do it is:
	echo -e "#!/bin/sh\nexec git-update-server-info" > hooks/post-update
	chmod +x hooks/post-update

inside the git repository - all it will do is always execute that script, and this "git-update-server-info", after you've updated the repo).

Finally, the rsync protocol just copies all objects over, and since it doesn't even know _which_ objects it is getting, it doesn't do the normal tag following that the native git protocol does.

So to recap:
 - http is fundamentally weaker, and needs some server-side help to work
 - rsync is fine for the initial clone, but doesn't actually know what 
   it's doing, so the end result can actually even be a corrupted 
   repository, because you happened to rsync just as it was updating.
 - the native git protocol generally should be considered the golden 
   standard, where the other ones are just fallbacks in case of problems 
   (like firewalls that don't let git:// through, or more commonly hosted 
   servers that don't do the git protocol at all).
Which hopefully clarifies the issue a bit.
		Linus
Previous: Goo GGoooNext: Goo GGooo
Message 2 of 11 in “Re: 2.6.17-rc6-mm2”
  1. Goo GGoooJun 16, 2006
  2. Linus TorvaldsJun 16, 2006
  3. Goo GGoooJun 16, 2006
  4. Linus TorvaldsJun 16, 2006
  5. H. Peter AnvinJun 16, 2006
  6. Junio C HamanoJun 16, 2006
  7. Linus TorvaldsJun 17, 2006
  8. bert hubertJun 16, 2006
  9. Michal LudvigJun 20, 2006
  10. Linus TorvaldsJun 20, 2006
  11. Uwe ZeisbergerJun 16, 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.