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

Re: mirror clone does not keep HEAD updated

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 4, 2023, 16:38 UTC
Message-ID
<xmqqileb1u34.fsf@gitster.g>
In-Reply-To
<harpgnimhcdp2m6hww7ht7pgxvchllvrncnwoxkivaorb5xhm7@5rcr2p7hcp4x>
Daniel Martí <mvdan@mvdan.cc> writes:
> I'm testing `git clone --mirror` to properly mirror a repository on
> github.com. It appears to be working well, except for keeping HEAD
> correctly in place.

There is no such feature in "git clone" or "git fetch" to check what branch the remote HEAD is pointing at and move the local copy around. For a long time, even "git clone" did not have a reliable way to see where the HEAD at the remote site points at, and it used heuristics to guess what name to give to the first branch on the local side.

Modern versions of Git these days have a protocol level support to convey that information, and I think it is feasible to invent such a feature to automatically repoint refs/remotes/$remote/HEAD to whatever remote-tracking branch found in the refs/remotes/$remote/ hierarchy.

I do not think anybody is working on such a project, though.

We are pretty much "somebody should initiate the process to scratch their own itch, and we will help them in doing so" community, so you or somebody who reads this thread interesting will hopefully start such an effort ;-)

Thanks.
Previous: Daniel MartíNext: Felipe Contreras
Message 2 of 4 in “mirror clone does not keep HEAD updated”
  1. Daniel MartíApr 4, 2023
  2. Junio C HamanoApr 4, 2023
  3. Felipe ContrerasApr 5, 2023
  4. Felipe ContrerasApr 5, 2023

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.