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

git-clone --config order & fetching extra refs during initial clone

From
Robin H. Johnson <robbat2@gentoo.org>
Date
Feb 25, 2017, 19:12 UTC
Message-ID
<robbat2-20170225T185056-448272755Z@orbis-terrarum.net>
TL;DR: git-clone ignores any fetch specs passed via --config.
The documentation for git-clone --config says:
| Set a configuration variable in the newly-created repository; this takes
| effect immediately __AFTER__ the repository is initialized, but __BEFORE__
| the remote history is fetched or any files checked out. [...]
(emphasis added)

However, this doesn't seem be be true, right after the clone, the refs are NOT present, and the next fetch seems to pull the extra refs. This seems to be because the refspec building for the initial clone doesn't take into account any fetch lines added to the config.

Testcase to reproduce (confirmed in v2.11.1, not tested 2.12.0 quite yet):
# export REPOURI=https://github.com/openstack-dev/sandbox.git DIR=test
# git clone \
    -c remote.origin.fetch=+refs/notes/*:refs/notes/* \
    -c remote.origin.fetch=+refs/changes/*:refs/remotes/origin/changes/* \
    $REPOURI $DIR \
  && cd $DIR \
  && git fetch
-- 
Robin Hugh Johnson
Gentoo Linux: Dev, Infra Lead, Foundation Trustee & Treasurer
E-Mail   : robbat2@gentoo.org
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136
Next: Jeff King
Message 1 of 15 in “git-clone --config order & fetching extra refs during initial clone”
  1. Robin H. JohnsonFeb 25, 2017
  2. Jeff KingFeb 25, 2017
  3. Jeff KingFeb 25, 2017
  4. Junio C HamanoFeb 27, 2017
  5. Jeff KingFeb 27, 2017
  6. SZEDER GáborMar 11, 2017
  7. Jeff KingMar 15, 2017
  8. SZEDER GáborMay 3, 2017
  9. Jeff KingMay 3, 2017
  10. Sebastian SchuberthMay 4, 2017
  11. Junio C HamanoMay 9, 2017
  12. Jeff KingMay 9, 2017
  13. Jeff KingMay 9, 2017
  14. Junio C HamanoMay 9, 2017
  15. Ævar Arnfjörð BjarmasonMay 4, 2017

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.