Elijah Newren <new...@gmail.com> writes:

> 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 result of filter-branch seems to have one empty line as the body
(i.e. "echo X; git cat-file commit A; echo Y" will show two blank
lines between the committer line and Y), while "--allow-empty-message"
does not leave any body (i.e. the same will give you only one blank
line there).

Was this test verifying the right thing in the first place, I have
to wonder.

IOW,

        git commit --allow-empty --cleanup=verbatim -m "$LF" &&

would be more faithful conversion of the original (and hopefully
just as performant).

> 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
> execution time of t6006 (as measured by the best of 3 runs of `time
> ./t6006-rev-list-format.sh`) by about 11% on Linux, 13% on Mac, and
> about 15% on Windows.

Quite an improvement ;-)

>
> Signed-off-by: Elijah Newren <new...@gmail.com>
> ---
>  t/t6006-rev-list-format.sh | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
> index da113d975b..d30e41c9f7 100755
> --- a/t/t6006-rev-list-format.sh
> +++ b/t/t6006-rev-list-format.sh
> @@ -501,9 +501,8 @@ test_expect_success 'reflog identity' '
>  '
>  
>  test_expect_success 'oneline with empty message' '
> -     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 --allow-empty-message &&
>       git rev-list --oneline HEAD >test.txt &&
>       test_line_count = 5 test.txt &&
>       git rev-list --oneline --graph HEAD >testg.txt &&

Reply via email to