Re: [PATCH 1/1] commit-graph: fix writing first commit-graph during fetch
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Oct 22, 2019, 23:35 UTC
- Message-ID
- <20191022233556.GF4348@szeder.dev>
- In-Reply-To
- <20191022214553.GA18314@sigill.intra.peff.net>
On Tue, Oct 22, 2019 at 05:45:54PM -0400, Jeff King wrote:
Show 38 quoted lines
> 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.