t/t9300-fast-import.sh: prepare for `gc --cruft` by default

In a similar fashion as previous commits, adjust the fast-import tests to prepare for "git gc" generating a cruft pack by default. This adjustment is slightly different, however. Instead of relying on us writing out the objects loose, and then calling `git prune` to remove them, t9300 needs to be prepared to drop objects that would be moved into cruft packs. To do this, we can combine the `git gc` invocation with `git prune` into one `git gc --prune`, which handles pruning both loose objects, and objects that would otherwise be written to a cruft pack. Likely this pattern of "git gc && git prune" started all the way back in 03db4525d3 (Support gitlinks in fast-import., 2008-07-19), which happened after deprecating `git gc --prune` in 9e7d501990 (builtin-gc.c: deprecate --prune, it now really has no effect, 2008-05-09). After `--prune` was un-deprecated in 58e9d9d472 (gc: make --prune useful again by accepting an optional parameter, 2009-02-14), this script got a handful of new "git gc && git prune" instances via via 4cedb78cb5 (fast-import: add input format tests, 2011-08-11). These could have been `git gc --prune`, but weren't (likely taking after 03db4525d3). Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Taylor Blau committed Apr 18, 2023 at 16:40 UTC c58100ab5d33e12c790b89dafee9fd1efbc46a99
1 file changed +4 -9
t/t9300-fast-import.sh
+4 -9
@@ -388,9 +388,7 @@ test_expect_success 'B: accept branch name "TEMP_TAG"' '
388
389 INPUT_END
390
391 - test_when_finished "rm -f .git/TEMP_TAG
392 - git gc
393 - git prune" &&
391 + test_when_finished "rm -f .git/TEMP_TAG && git gc --prune=now" &&
392 git fast-import <input &&
393 test $(test-tool ref-store main resolve-ref TEMP_TAG 0 | cut -f1 -d " " ) != "$ZERO_OID" &&
394 test $(git rev-parse main) = $(git rev-parse TEMP_TAG^)
@@ -406,8 +404,7 @@ test_expect_success 'B: accept empty committer' '
404 INPUT_END
405
406 test_when_finished "git update-ref -d refs/heads/empty-committer-1
409 - git gc
410 - git prune" &&
407 + git gc --prune=now" &&
408 git fast-import <input &&
409 out=$(git fsck) &&
410 echo "$out" &&
@@ -452,8 +449,7 @@ test_expect_success 'B: accept and fixup committer with no name' '
449 INPUT_END
450
451 test_when_finished "git update-ref -d refs/heads/empty-committer-2
455 - git gc
456 - git prune" &&
452 + git gc --prune=now" &&
453 git fast-import <input &&
454 out=$(git fsck) &&
455 echo "$out" &&
@@ -1778,8 +1774,7 @@ test_expect_success 'P: verbatim SHA gitlinks' '
1774 INPUT_END
1775
1776 git branch -D sub &&
1781 - git gc &&
1782 - git prune &&
1777 + git gc --prune=now &&
1778 git fast-import <input &&
1779 test $(git rev-parse --verify subuse2) = $(git rev-parse --verify subuse1)
1780 '