Re: [PATCH v5 1/4] t6006: simplify and optimize empty message test
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 3, 2019, 21:08 UTC
- Message-ID
- <xmqq1rwxt7eu.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20190903185524.13467-2-newren@gmail.com>
Elijah Newren <newren@gmail.com> writes:
Show 6 quoted lines
> 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).
Show 5 quoted lines
> 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 ;-)
Show 22 quoted lines
> > Signed-off-by: Elijah Newren <newren@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 &&