Re: [PATCH] rev-list: use hdr_termination instead of a always using a newline
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 20, 2016, 18:54 UTC
- Message-ID
- <xmqq4m46hmvq.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20161020181930.21084-1-jacob.e.keller@intel.com>
Jacob Keller <jacob.e.keller@intel.com> writes:
Show 27 quoted lines
> diff --git a/t/t6000-rev-list-misc.sh b/t/t6000-rev-list-misc.sh
> index 3e752ce03280..e8c6979baf59 100755
> --- a/t/t6000-rev-list-misc.sh
> +++ b/t/t6000-rev-list-misc.sh
> @@ -4,6 +4,12 @@ test_description='miscellaneous rev-list tests'
>
> . ./test-lib.sh
>
> +test_ends_with_nul() {
> + printf "\0" >nul
> + sed '$!d' "$@" >contents
> + test_cmp_bin nul contents
> +}
> +
> test_expect_success setup '
> echo content1 >wanted_file &&
> echo content2 >unwanted_file &&
> @@ -100,4 +106,9 @@ test_expect_success '--bisect and --first-parent can not be combined' '
> test_must_fail git rev-list --bisect --first-parent HEAD
> '
>
> +test_expect_success '--header shows a NUL after each commit' '
> + git rev-list --header --max-count=1 HEAD | sed \$!d >actual &&
> + test_ends_with_nul actual
> +'
> +
> test_doneThanks.
The main part of the patch looks good. For "passing NUL to sed", I'd probably work it around like so:
t/t6000-rev-list-misc.sh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/t/t6000-rev-list-misc.sh b/t/t6000-rev-list-misc.sh index e8c6979baf..737026c34f 100755 --- a/t/t6000-rev-list-misc.sh +++ b/t/t6000-rev-list-misc.sh @@ -4,12 +4,6 @@ test_description='miscellaneous rev-list tests' . ./test-lib.sh -test_ends_with_nul() { - printf "\0" >nul - sed '$!d' "$@" >contents - test_cmp_bin nul contents -} - test_expect_success setup ' echo content1 >wanted_file && echo content2 >unwanted_file && @@ -107,8 +101,17 @@ test_expect_success '--bisect and --first-parent can not be combined' ' ' test_expect_success '--header shows a NUL after each commit' ' - git rev-list --header --max-count=1 HEAD | sed \$!d >actual && - test_ends_with_nul actual + # We know there is no Q in the true payload; names and + # addresses of the authors and the committers do not have + # any, and object names or header names do not, either. + git rev-list --header --max-count=2 HEAD | + nul_to_q | + grep "^Q" >actual && + cat >expect <<-EOF && + Q$(git rev-parse HEAD~1) + Q + EOF + test_cmp expect actual ' test_done