Subject: Re: [PATCH] format-patch: output header for empty commits

From: Junio C Hamano <[email-masked]>
Date: Fri, 03 Mar 2023 09:13:27 -0800

John Keeping <[email-masked]> writes:

> When formatting an empty commit, it is surprising that a totally empty
> file is generated.  Set the flag to always print the header, matching
> the behaviour of git-log.

Don't these empty files help send-email as safety against sending
them out?  Unless existing tools depend on the current behaviour in
such a way, I think this is quite a sensible change.

> diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
> index f3313b8c58..ffc7c60680 100755
> --- a/t/t4014-format-patch.sh
> +++ b/t/t4014-format-patch.sh
> @@ -59,6 +59,10 @@ test_expect_success setup '
>  	test_tick &&
>  	git commit -m "patchid 3" &&
>  
> +	git checkout -b empty main &&
> +	test_tick &&
> +	git commit --allow-empty -m "empty commit" &&
> +
>  	git checkout main
>  '
>  
> @@ -128,6 +132,12 @@ test_expect_success 'replay did not screw up the log message' '
>  	grep "^Side .* with .* backslash-n" actual
>  '
>  
> +test_expect_success 'format-patch empty commit' '
> +	git format-patch --stdout main..empty >empty &&
> +	grep "^From " empty >from &&
> +	test_line_count = 1 from
> +'
> +
>  test_expect_success 'extra headers' '
>  	git config format.headers "To: R E Cipient <[email-masked]>
>  " &&