Re: [PATCH v2] push: don't fetch commit object when checking existence
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 22, 2024, 20:55 UTC
- Message-ID
- <xmqqed9t36sn.fsf@gitster.g>
- In-Reply-To
- <20240522201559.1677959-1-tom@compton.nu>
Tom Hughes <tom@compton.nu> writes:
Show 14 quoted lines
> diff --git a/t/t0410-partial-clone.sh b/t/t0410-partial-clone.sh > index 88a66f0904..7797391c03 100755 > --- a/t/t0410-partial-clone.sh > +++ b/t/t0410-partial-clone.sh > @@ -689,6 +689,25 @@ test_expect_success 'lazy-fetch when accessing object not in the_repository' ' > ! grep "[?]$FILE_HASH" out > ' > > +test_expect_success 'push should not fetch new commit objects' ' > + rm -rf server client && > + test_create_repo server && > + test_config -C server uploadpack.allowfilter 1 && > + test_config -C server uploadpack.allowanysha1inwant 1 && > + test_commit -C server server1 &&
OK, we create the source that allows a partial clone.
> + git clone --filter=blob:none "file://$(pwd)/server" client && > + test_commit -C client client1 &&
And make a clone out of it, without blobs.
> + test_commit -C server server2 && > + COMMIT=$(git -C server rev-parse server2) &&
Then we create a new commit that the client does not yet have.
> + test_must_fail git -C client push 2>err &&
We try to overwrite it. We expect it to fail with "not a fast forward".
> + grep "fetch first" err &&
May want to use "test_grep" but this script does not use it, so being consistent with the surrounding tests is good.
> + git -C client rev-list --objects --missing=print "$COMMIT" >objects && > + grep "^[?]$COMMIT" objects > +'
OK.
> . "$TEST_DIRECTORY"/lib-httpd.sh > start_httpd
Looking good. Thanks, will queue.