Changes since v5 (full range-diff below): * Dropped patch 3 (which was rebased on top of js/rebase-r-strategy and submitted separately)[1] * Updated t6006 to include both an empty commit message and a commit message with just a line feed * Made the two small tweaks Junio suggested to git-filter-branch.sh [1] https://public-inbox.org/git/20190904214048.29331-1-newren@xxxxxxxxx/ Elijah Newren (3): t6006: simplify, fix, and optimize empty message test Recommend git-filter-repo instead of git-filter-branch t9902: use a non-deprecated command for testing Documentation/git-fast-export.txt | 6 +- Documentation/git-filter-branch.txt | 273 +++++++++++++++++++++++++--- Documentation/git-gc.txt | 17 +- Documentation/git-rebase.txt | 3 +- Documentation/git-replace.txt | 10 +- Documentation/git-svn.txt | 10 +- Documentation/githooks.txt | 10 +- contrib/svn-fe/svn-fe.txt | 4 +- git-filter-branch.sh | 14 ++ t/t6006-rev-list-format.sh | 5 +- t/t9902-completion.sh | 12 +- 11 files changed, 296 insertions(+), 68 deletions(-) Range-diff: 1: ccea0e5846 ! 1: d5370568a4 t6006: simplify and optimize empty message test @@ Metadata Author: Elijah Newren <newren@xxxxxxxxx> ## Commit message ## - t6006: simplify and optimize empty message test + t6006: simplify, fix, and optimize empty message test Test t6006.71 ("oneline with empty message") was creating two commits with simple commit messages, and then running filter-branch to rewrite - the commit messages to be empty. This test was written this way because - the --allow-empty-message option to git commit did not exist at the - time. Simplify this test and avoid the need to invoke filter-branch by - just using --allow-empty-message when creating the commit. + the commit messages to be "empty". This test was introduced in commit + 1fb5fdd25f0 ("rev-list: fix --pretty=oneline with empty message", + 2010-03-21) and written this way because the --allow-empty-message + option to git commit did not exist at the time. + + However, the filter-branch invocation used differed slightly from + --allow-empty-message in that it would have a commit message consisting + solely of a single newline, and as such was not testing what the + original commit intended to test. Since both a truly empty commit + message and a commit message with a single linefeed could trigger the + original bug, modify the test slightly to include an example of each. Despite only being one piece of the 71st test and there being 73 tests overall, this small change to just this one test speeds up the overall @@ t/t6006-rev-list-format.sh: test_expect_success 'reflog identity' ' - git commit -m "dummy" --allow-empty && - git commit -m "dummy" --allow-empty && - git filter-branch --msg-filter "sed -e s/dummy//" HEAD^^.. && -+ git commit --allow-empty --allow-empty-message && ++ git commit --allow-empty --cleanup=verbatim -m "$LF" && + git commit --allow-empty --allow-empty-message && git rev-list --oneline HEAD >test.txt && test_line_count = 5 test.txt && 2: 6d73135006 < -: ---------- t3427: accelerate this test by using fast-export and fast-import 3: 2f225c8697 ! 2: 8635410b88 Recommend git-filter-repo instead of git-filter-branch @@ git-filter-branch.sh: set_ident () { finish_ident COMMITTER } -+if [ -z "$FILTER_BRANCH_SQUELCH_WARNING" -a \ -+ -z "$GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS" ]; then ++if test -z "$FILTER_BRANCH_SQUELCH_WARNING$GIT_TEST_DISALLOW_ABBREVIATED_OPTIONS" ++then + cat <<EOF +WARNING: git-filter-branch has a glut of gotchas generating mangled history -+ rewrites. Please use an alternative filtering tool such as 'git -+ filter-repo' (https://github.com/newren/git-filter-repo/) instead. -+ See the filter-branch manual page for more details; to squelch -+ this warning, set FILTER_BRANCH_SQUELCH_WARNING=1. -+ ++ rewrites. Hit Ctrl-C before proceeding to abort, then use an ++ alternative filtering tool such as 'git filter-repo' ++ (https://github.com/newren/git-filter-repo/) instead. See the ++ filter-branch manual page for more details; to squelch this warning, ++ set FILTER_BRANCH_SQUELCH_WARNING=1. +EOF -+ sleep 5 ++ sleep 10 ++ printf "Proceeding with filter-branch...\n\n" +fi + USAGE="[--setup <command>] [--subdirectory-filter <directory>] [--env-filter <command>] 4: 048eba375b = 3: 19edb94ec2 t9902: use a non-deprecated command for testing -- 2.23.0.3.g19edb94ec2