* git clone fails when using --dissociate together with a reference repository that contains a commit-graph
@ 2026-05-12 7:35 Daniel Mach
2026-05-12 18:38 ` Jeff King
0 siblings, 1 reply; 2+ messages in thread
From: Daniel Mach @ 2026-05-12 7:35 UTC (permalink / raw)
To: git
[-- Attachment #1.1: Type: text/plain, Size: 1403 bytes --]
Hi,
I've stumbled upon a bug that the following command failed:
$ git clone <url> <dir> --reference <old-dir> --dissociate
fatal: unable to parse commit <SHA>
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
Omitting --dissociate fixed the error, but it wasn't clear to me what
might be the root cause.
$ git --version
git version 2.54.0
With the help of AI I was able to create a reproducer (see the attached
script).
I have verified that the reproducer works and also simplified it.
AI generated report (take it with a grain of salt):
* The Bug: During dissociation, Git correctly repacks objects and
removes the objects/info/alternates file. However, the git clone process
has already initialized its object store including the alternate's
commit-graph.
After dissociation, it fails to "forget" or reload the object store,
leading to a crash when it tries to use the commit-graph (which refers
to the now-unlinked alternate) to perform the initial checkout.
* Proof of state: As shown in the script output, a manual git checkout
immediately after the failure succeeds, proving the repository is
structurally sound but the clone process itself was in an inconsistent
state.
* Workaround: Passing -c core.commitGraph=false to the clone command
prevents the crash.
regards,
Daniel
[-- Attachment #1.2: Type: text/html, Size: 3034 bytes --]
[-- Attachment #2: reproducer_git_clone_dissociate.sh --]
[-- Type: application/x-shellscript, Size: 1335 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-12 18:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-12 7:35 git clone fails when using --dissociate together with a reference repository that contains a commit-graph Daniel Mach
2026-05-12 18:38 ` Jeff King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox