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

Re: [PATCH 0/3] Unconfuse git clone when two branches at are HEAD.

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 9, 2013, 14:44 UTC
Message-ID
<xmqqr4cy5a2z.fsf@gitster.dls.corp.google.com>
In-Reply-To
<5425F66B510F423EA685BCEF40EF8FA7@PhilipOakley>
"Philip Oakley" <philipoakley@iee.org> writes:
Show 11 quoted lines
> One is to extend the ref format such that
>  <sha1> refs/heads/Test:HEAD
> would be considered a valid indicator of a symref relationship
> (i.e. using the typical 'colon' style). It would be appended after the
> regular refs, so all the existing refs are still transported.
>
> The point is that while it produces an error, it doesn't stop the
> cloning, and the error message
> "error: * Ignoring funny ref 'refs/remotes/origin/Test:HEAD' locally"
> gives a pretty clear statement of intent to those with older versions
> of git.
Cute.  If it does not stop any of these:
        git ls-remote such.bundle
	git clone such.bundle
        git fetch such.bundle
	git fetch such.bundle master ;# if 'master' branch is in it
        git ls-remote such.bundle
        git ls-remote such.bundle master ;# if 'master' branch is in it

even if some of them may give error messages, I think that may be a workable escape hatch.

Show 5 quoted lines
> Another alternative is to add an additional name space (e.g.)
>   <sha1> refs/remotes/origin/HEAD/Test
> which would simply be an extra directory layer that reflects where the
> HEAD should have been. Though this namespace example has the D/F
> conflict.

I'd rather not go this route. Allowing refs/heads/master and local branches that forked from it in refs/heads/master/{a,b,c,...} could be a potentially useful future enhancement, and this approach will close the door for it.

Previous: Philip OakleyNext: Andreas Krey
Message 29 of 32 in “Unconfuse git clone when two branches at are HEAD.”
  1. 0/3 Unconfuse git clone when two branches at are HEAD.Andreas Krey, Sep 6, 2013
  2. 1/3 upload-pack: send the HEAD informationAndreas Krey, Sep 6, 2013
  3. Junio C HamanoSep 6, 2013
  4. Andreas KreySep 6, 2013
  5. Junio C HamanoSep 6, 2013
  6. Jeff KingSep 8, 2013
  7. Jeff KingSep 8, 2013
  8. Junio C HamanoSep 8, 2013
  9. 0/6 Removing the guesswork of HEAD in "clone"Junio C Hamano, Sep 18, 2013
  10. 1/6 upload-pack.c: do not pass confusing cb_data to mark_our_ref()Junio C Hamano, Sep 18, 2013
  11. 2/6 upload-pack: send symbolic ref information as capabilityJunio C Hamano, Sep 18, 2013
  12. Junio C HamanoSep 18, 2013
  13. 3/6 upload-pack: send non-HEAD symbolic refsJunio C Hamano, Sep 18, 2013
  14. 4/6 connect.c: make parse_feature_value() staticJunio C Hamano, Sep 18, 2013
  15. 5/6 connect: annotate refs with their symref information in get_remote_head()Junio C Hamano, Sep 18, 2013
  16. 6/6 clone: test the new HEAD detection logicJunio C Hamano, Sep 18, 2013
  17. 2/3 connect.c: save symref info from server capabilitiesAndreas Krey, Sep 6, 2013
  18. Junio C HamanoSep 6, 2013
  19. Andreas KreySep 6, 2013
  20. Junio C HamanoSep 6, 2013
  21. 3/3 clone: test the new HEAD detection logicAndreas Krey, Sep 6, 2013
  22. Philip OakleySep 6, 2013
  23. Junio C HamanoSep 6, 2013
  24. Philip OakleySep 6, 2013
  25. Junio C HamanoSep 7, 2013
  26. Philip OakleySep 7, 2013
  27. Junio C HamanoSep 8, 2013
  28. Philip OakleySep 8, 2013
  29. Junio C HamanoSep 9, 2013
  30. Andreas KreySep 9, 2013
  31. Philip OakleySep 9, 2013
  32. Junio C HamanoSep 9, 2013

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.