format-patch: wrap cover-letter's shortlog sensibly

Earlier, overly-long onelines would not be wrapped at all, and indented
with 6 spaces.

Instead, we now wrap around at 72 characters, with a first-line indent
of 2 spaces, and the rest with 4 spaces.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2008-03-02 15:53:39 +00:00 committed by Junio C Hamano
parent 5d02294c77
commit 859c4fbef5
3 changed files with 25 additions and 2 deletions

View file

@ -683,6 +683,10 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
strbuf_release(&sb);
shortlog_init(&log);
log.wrap_lines = 1;
log.wrap = 72;
log.in1 = 2;
log.in2 = 4;
for (i = 0; i < nr; i++)
shortlog_add_commit(&log, list[i]);

View file

@ -7,8 +7,8 @@ Subject: [DIFFERENT_PREFIX 0/2] *** SUBJECT HERE ***
*** BLURB HERE ***
A U Thor (2):
Second
Third
Second
Third
dir/sub | 4 ++++
file0 | 3 +++

View file

@ -211,4 +211,23 @@ test_expect_success 'cover-letter inherits diff options' '
grep "file => foo .* 0 *$" 0000-cover-letter.patch
'
cat > expect << EOF
This is an excessively long subject line for a message due to the
habit some projects have of not having a short, one-line subject at
the start of the commit message, but rather sticking a whole
paragraph right at the start as the only thing in the commit
message. It had better not become the filename for the patch.
foo
EOF
test_expect_success 'shortlog of cover-letter wraps overly-long onelines' '
git format-patch --cover-letter -2 &&
sed -e "1,/A U Thor/d" -e "/^$/q" < 0000-cover-letter.patch > output &&
git diff expect output
'
test_done