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.