git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Keeping <john@keeping.me.uk>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] format-patch: output header for empty commits
Date: Sat, 4 Mar 2023 10:45:20 +0000	[thread overview]
Message-ID: <ZAMhOehmuIov/KM8@keeping.me.uk> (raw)
In-Reply-To: <xmqqwn3xg3m0.fsf@gitster.g>

On Fri, Mar 03, 2023 at 09:13:27AM -0800, Junio C Hamano wrote:
> John Keeping <john@keeping.me.uk> 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.

Yes, send-email fails trying to send an empty file, but to me this feels
more like an accident than an intentional safeguard.  If there were
something intentional I'd expect format-patch to fail with --allow-empty
as an option to bypass that safety check.

Since there are checks in place to avoid unintentionally creating empty
commits, it seems reasonable for format-patch to create output that
represents what is present in the repository without needing extra
options.

> > 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 <rcipient@example.com>
> >  " &&

  reply	other threads:[~2023-03-04 10:53 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-03 16:03 [PATCH] format-patch: output header for empty commits John Keeping
2023-03-03 17:13 ` Junio C Hamano
2023-03-04 10:45   ` John Keeping [this message]
2023-03-06 17:08     ` Junio C Hamano
2023-03-08 20:33       ` John Keeping
2023-03-08 20:43         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZAMhOehmuIov/KM8@keeping.me.uk \
    --to=john@keeping.me.uk \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).