On Tue, Oct 22, 2019 at 05:45:54PM -0400, Jeff King wrote: > On Tue, Oct 22, 2019 at 04:33:16PM -0400, Jeff King wrote: > > > > I have failed to produce a test using the file:// protocol that > > > demonstrates this bug. > > > > Hmm, from the description, it sounds like it should be easy. I might > > poke at it a bit. > > Hmph. I can reproduce it here, but it seems to depend on the repository. > If I do this: > > diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh > index ecabbe1616..8d473a456f 100755 > --- a/t/t5510-fetch.sh > +++ b/t/t5510-fetch.sh > @@ -583,6 +583,14 @@ test_expect_success 'fetch.writeCommitGraph' ' > ) > ' > > +test_expect_success 'fetch.writeCommitGraph with a bigger repo' ' > + git clone "$TEST_DIRECTORY/.." repo && > + ( > + cd repo && > + git -c fetch.writeCommitGraph fetch origin > + ) > +' > + > # configured prune tests > > set_config_tristate () { > > it reliably triggers the bug. But if I make a synthetic repo, even it > has a lot of commits (thousands or more), it doesn't trigger. I thought > maybe it had to do with having commits that were not at tips (since the > tip ones presumably _are_ fed into the graph generation process). But > that doesn't seem to help. > > Puzzling... Submodules? $ cd ~/src/git/ $ git quotelog 86cfd61e6b 86cfd61e6b (sha1dc: optionally use sha1collisiondetection as a submodule, 2017-07-01) $ git init --bare good.git Initialized empty Git repository in /home/szeder/src/git/good.git/ $ git push -q good.git 86cfd61e6b^:refs/heads/master $ git clone good.git good-clone Cloning into 'good-clone'... done. $ git -c fetch.writeCommitGraph -C good-clone fetch origin Computing commit graph generation numbers: 100% (46958/46958), done. $ git init --bare bad.git Initialized empty Git repository in /home/szeder/src/git/bad.git/ $ git push -q bad.git 86cfd61e6b:refs/heads/master $ git clone bad.git bad-clone Cloning into 'bad-clone'... done. $ git -c fetch.writeCommitGraph -C bad-clone fetch origin Computing commit graph generation numbers: 100% (1/1), done. BUG: commit-graph.c:886: missing parent 9936c1b52a39fa14fca04f937df3e75f7498ac66 for commit 86cfd61e6bc12745751c43b4f69886b290cd85cb Aborted In the cover letter Derrick mentioned that he used https://github.com/derrickstolee/numbers for testing, and that repo has a submodule as well.