git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Problems with t6011

From
Junio C Hamano <gitster@pobox.com>
Date
May 6, 2025, 21:18 UTC
Message-ID
<xmqqa57ph1zq.fsf@gitster.g>
In-Reply-To
<71fcb24d-55e3-40bb-9368-5b47aa180993@web.de>
Torsten Bögershausen <tboegi@web.de> writes:
Show 14 quoted lines
> Hej Patrick,
> in case you have a second:
> the mv command here needs a "-f" to overwrite
> read-only files:
>
> --- a/t/t6011-rev-list-with-bad-commit.sh
> +++ b/t/t6011-rev-list-with-bad-commit.sh
> @@ -39,7 +39,7 @@ test_expect_success 'corrupt second commit object' '
>         for p in .git/objects/pack/*.pack
>         do
>                 sed "s/second commit/socond commit/" "$p" >"$p.munged" &&
> -               mv "$p.munged" "$p" ||
> +               mv -f "$p.munged" "$p" ||
>                 return 1

Looking at the remainder of cdbdc6bf (t: refactor tests depending on Perl substitution operator, 2025-04-03), the commit that introduced these lines, it seems that the prevailing pattern was:

	chmod +w "$packfile" &&
	perl -pe "regexp" "$packfile" >"$packfile.munged" &&
	mv "packfile.munged" $packfile"

but the original for this loop used "perl -i.bak -pe" that dealt with read-only input just fine, wihtout the need for a separate "mv".

So the lack of "-f" indeed is a bug in that "refactor" commit.

I would be more worried about using "sed" on clearly non-text files, which technically is undefined operation, and I strongly suspect that it was the reason why we used Perl to munge files that are clearly binary, like the packfiles, in the first place.

Previous: Torsten BögershausenNext: Junio C Hamano
Message 2 of 5 in “Problems with t6011”
  1. Torsten BögershausenMay 6, 2025
  2. Junio C HamanoMay 6, 2025
  3. t6011: fix misconversion from perl to sedJunio C Hamano, May 6, 2025
  4. Patrick SteinhardtMay 7, 2025
  5. Junio C HamanoMay 7, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.