Re: [PATCH] Fix 'No newline...' annotation in rewrite diffs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Adam Butcher <dev.lists@xxxxxxxxxxxxxxx> writes:

> +# create a file containing numbers with no newline at
> +# the end and modify it such that the starting 10 lines
> +# are unchanged, the next 101 are rewritten and the last
> +# line differs only in that in is terminated by a newline.
> +seq 1 10 > seq
> +seq 100 +1 200 >> seq
> +printf 201 >> seq
> +(git add seq; git commit seq -m seq) >/dev/null
> +seq 1 10 > seq
> +seq 300 -1 200 >> seq

We would prefer to have these set-up steps in test_expect_success.
That way, we will have more chance to catch potential and unintended
breakage to "git add" and "git commit" when people attempt to update
them.

Also, the redirect target sticks to redirect operator in our
scripts, i.e. "cmd >seq" not "cmd > seq".

> +test_expect_success 'no newline at eof is on its own line without -B'
> +
> +	(git diff seq; true) > res &&

What is this subshell and true about?  A git diff does not exit with
non zero to signal differences, and even if it did, the right way to
write it would be

	test_might_fail git cmd >res &&

to allow us to make sure that the git command that may or may not
exit with zero still does not die an uncontrolled death (e.g. segv).

> +	grep "^\\\\ No newline at end of file$" res &&
> +	grep -v "^.\\+\\\\ No newline at end of file" res &&
> +	grep -v "\\\\ No newline at end of file.\\+$" res
> +'

It is preferrable not to spell "No newline at ..." part out, so that
we won't have to worry about future rewords and i18n.  There are older
tests that predate i18n and they do spell these out, but that is not
a good reason to make things worse than they already are.

"git apply" only looks at the backslash-space at the beginning of
line anyway.

> +test_expect_success 'no newline at eof is on its own line with -B' '
> +
> +	(git diff -B seq; true) > res &&
> +	grep "^\\\\ No newline at end of file$" res &&
> +	grep -v "^.\\+\\\\ No newline at end of file" res &&
> +	grep -v "\\\\ No newline at end of file.\\+$" res
> +'

Likewise.

>  test_done

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]