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

Re: Problem with git fetch over http://

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Apr 25, 2008, 23:35 UTC
Message-ID
<alpine.LNX.1.00.0804251842510.19665@iabervon.org>
In-Reply-To
<7vskx9o9ek.fsf@gitster.siamese.dyndns.org>
On Fri, 25 Apr 2008, Junio C Hamano wrote:
Show 32 quoted lines
> Daniel Barkalow <barkalow@iabervon.org> writes:
> 
> > John mentioned on IRC that clone works.
> >
> > $ git-ls-remote http://newartisans.com/git/ledger.git
> > 96751442d9eda537480867e599e4c604663f4530        refs/heads/master
> > 365baca5174232cc35e4ed190fd8ce93c3611c84        refs/heads/v2.4.1
> > f972a89073843fdbb2a1bef969d9ca70509d4bfe        refs/heads/v2.5
> > 6a81d760dc4ab9028b27430124702c28c0b894ed        refs/tags/cvs-20040410
> > fed3956a310a2ea8c8595b7fde7aaa0623492ca6        refs/tags/v0.1
> > ...
> >
> > $ git-ls-remote git://newartisans.com/ledger.git
> > 96751442d9eda537480867e599e4c604663f4530        HEAD
> > 96751442d9eda537480867e599e4c604663f4530        refs/heads/master
> > 365baca5174232cc35e4ed190fd8ce93c3611c84        refs/heads/v2.4.1
> > f972a89073843fdbb2a1bef969d9ca70509d4bfe        refs/heads/v2.5
> > 6a81d760dc4ab9028b27430124702c28c0b894ed        refs/tags/cvs-20040410
> > fed3956a310a2ea8c8595b7fde7aaa0623492ca6        refs/tags/v0.1
> > ...
> >
> > Looks like either server-info.c:update_info_refs() needs to also list 
> > HEAD, or transport.c:get_refs_via_curl() needs to guess that $url/HEAD 
> > exists and fetch it to add to the list, or both.
> 
> Wait a minute.  How did "git fetch http://host/repo.git" work before C
> rewrite?
> 
> The reason I ask is because info/refs traditionally did not list HEAD and
> fetch either would have failed to start walking from HEAD (iow, the issue
> was very old), or it didn't care (iow, the issue is a regression after C
> rewrite).

I never managed to trace through the shell fetch code, but I suspect that it broke quite a long time ago (git-ls-remote.sh didn't list HEAD for http:// URLs, anyway). clone works because it uses entirely different code, and "git fetch origin" (when origin is an http URL) works, and "git fetch http://... branch" works (and is a workaround), and that's probably all that people use regularly. This only comes up because there's an automated fetch-and-build system that uses "<vcs> command <location>" to update, and it needed an actual quirk, rather than people just training their fingers to do things that work.

	-Daniel
*This .sig left intentionally blank*
Previous: Junio C Hamano
Message 6 of 6 in “Problem with git fetch over http://”
  1. John WiegleyApr 25, 2008
  2. Junio C HamanoApr 25, 2008
  3. Mike HommeyApr 25, 2008
  4. Daniel BarkalowApr 25, 2008
  5. Junio C HamanoApr 25, 2008
  6. Daniel BarkalowApr 25, 2008

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.