Volume XXII, number 279Tuesday, October 6, 2026Latest message 32 minutes ago

The Git List

News and archive of git@vger.kernel.org, since April 2005

patchp5551: fix repeated runs with update-ref --no-deref

3 messages between Sep 26, 2026 and Sep 28, 2026, from Jon Simons, Jeff King, Junio C Hamano.

Plain Markdown or JSON for tools and agents. Diffs are folded; open one to read it.

Jon SimonsSep 26, 2026, 18:06 UTC on lore

Update p5551-fetch-rescan.sh to pass `--no-deref` when deleting child test refs before each measured `git fetch`. Otherwise, for repeated runs, the second iteration will fail with:

    fatal: multiple updates for 'refs/remotes/origin/master' (including
    one via symref 'refs/remotes/origin/HEAD') are not allowed

Starting with 3f763ddf28 (fetch: set remote/HEAD if it does not exist, 2024-11-22), `git fetch` instantiates the HEAD symref.

The test, introduced in 7893bf1720 (p5551: add a script to test fetch pack-dir rescans, 2017-11-20), predates that.

Signed-off-by: Jon Simons <jon@jonsimons.org>
---
 t/perf/p5551-fetch-rescan.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/perf/p5551-fetch-rescan.sh +1 −1
diff --git a/t/perf/p5551-fetch-rescan.sh b/t/perf/p5551-fetch-rescan.sh
index b99dc23e32..0b3ff632fc 100755
--- a/t/perf/p5551-fetch-rescan.sh
+++ b/t/perf/p5551-fetch-rescan.sh
@@ -45,7 +45,7 @@ test_perf 'fetch' '
 	(
 		cd child &&
 		$MODERN_GIT for-each-ref --format="delete %(refname)" refs/remotes |
-		$MODERN_GIT update-ref --stdin &&
+		$MODERN_GIT update-ref --stdin --no-deref &&
 		rm -vf .git/objects/$(echo $obj | sed "s|^..|&/|") &&
 
 		git fetch

base-commit: 0f8e75abebff0877cae681a3d5ff31ac47f54220
-- 
2.55.0
Jeff KingSep 28, 2026, 04:05 UTC in reply to Jon Simons on lore

Re: [PATCH] p5551: fix repeated runs with update-ref --no-deref

On Sat, Sep 26, 2026 at 02:06:48PM -0400, Jon Simons wrote:
Show 12 quoted lines
> Update p5551-fetch-rescan.sh to pass `--no-deref` when deleting child
> test refs before each measured `git fetch`.  Otherwise, for repeated
> runs, the second iteration will fail with:
> 
>     fatal: multiple updates for 'refs/remotes/origin/master' (including
>     one via symref 'refs/remotes/origin/HEAD') are not allowed
> 
> Starting with 3f763ddf28 (fetch: set remote/HEAD if it does not exist,
> 2024-11-22), `git fetch` instantiates the HEAD symref.
> 
> The test, introduced in 7893bf1720 (p5551: add a script to test fetch
> pack-dir rescans, 2017-11-20), predates that.
Thanks, the explanation and patch both make sense.

This test could probably benefit from using --setup (which also didn't exist back when this test was written). But that's nothing new, and well outside the scope of your patch.

-Peff
Junio C HamanoSep 28, 2026, 18:30 UTC in reply to Jeff King on lore

Re: [PATCH] p5551: fix repeated runs with update-ref --no-deref

Jeff King <peff@peff.net> writes:
Show 22 quoted lines
> On Sat, Sep 26, 2026 at 02:06:48PM -0400, Jon Simons wrote:
>
>> Update p5551-fetch-rescan.sh to pass `--no-deref` when deleting child
>> test refs before each measured `git fetch`.  Otherwise, for repeated
>> runs, the second iteration will fail with:
>> 
>>     fatal: multiple updates for 'refs/remotes/origin/master' (including
>>     one via symref 'refs/remotes/origin/HEAD') are not allowed
>> 
>> Starting with 3f763ddf28 (fetch: set remote/HEAD if it does not exist,
>> 2024-11-22), `git fetch` instantiates the HEAD symref.
>> 
>> The test, introduced in 7893bf1720 (p5551: add a script to test fetch
>> pack-dir rescans, 2017-11-20), predates that.
>
> Thanks, the explanation and patch both make sense.
>
> This test could probably benefit from using --setup (which also didn't
> exist back when this test was written). But that's nothing new, and well
> outside the scope of your patch.
>
> -Peff
Thanks for writing and reviewing.  Will queue and mark for 'next'.

Back to recent threads