Merge branch 'nd/format-patch-stat-width'

"git format-patch" learned to give 72-cols to diffstat, which is
consistent with other line length limits the subcommand uses for
its output meant for e-mails.

* nd/format-patch-stat-width:
  format-patch: reduce patch diffstat width to 72
  format-patch: keep cover-letter diffstat wrapped in 72 columns
This commit is contained in:
Junio C Hamano 2018-02-21 12:45:04 -08:00
commit e469e9c5c6
2 changed files with 37 additions and 16 deletions

View File

@ -29,6 +29,8 @@
#include "gpg-interface.h" #include "gpg-interface.h"
#include "progress.h" #include "progress.h"
#define MAIL_DEFAULT_WRAP 72
/* Set a default date-time format for git log ("log.date" config variable) */ /* Set a default date-time format for git log ("log.date" config variable) */
static const char *default_date_mode = NULL; static const char *default_date_mode = NULL;
@ -1044,7 +1046,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
shortlog_init(&log); shortlog_init(&log);
log.wrap_lines = 1; log.wrap_lines = 1;
log.wrap = 72; log.wrap = MAIL_DEFAULT_WRAP;
log.in1 = 2; log.in1 = 2;
log.in2 = 4; log.in2 = 4;
log.file = rev->diffopt.file; log.file = rev->diffopt.file;
@ -1061,6 +1063,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
memcpy(&opts, &rev->diffopt, sizeof(opts)); memcpy(&opts, &rev->diffopt, sizeof(opts));
opts.output_format = DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT; opts.output_format = DIFF_FORMAT_SUMMARY | DIFF_FORMAT_DIFFSTAT;
opts.stat_width = MAIL_DEFAULT_WRAP;
diff_setup_done(&opts); diff_setup_done(&opts);
@ -1614,6 +1617,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
(!rev.diffopt.output_format || (!rev.diffopt.output_format ||
rev.diffopt.output_format == DIFF_FORMAT_PATCH)) rev.diffopt.output_format == DIFF_FORMAT_PATCH))
rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_SUMMARY; rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_SUMMARY;
if (!rev.diffopt.stat_width)
rev.diffopt.stat_width = MAIL_DEFAULT_WRAP;
/* Always generate a patch */ /* Always generate a patch */
rev.diffopt.output_format |= DIFF_FORMAT_PATCH; rev.diffopt.output_format |= DIFF_FORMAT_PATCH;

View File

@ -19,17 +19,33 @@ test_expect_success 'preparation' '
git commit -m message "$name" git commit -m message "$name"
' '
cat >expect72 <<-'EOF'
...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
EOF
test_expect_success "format-patch: small change with long name gives more space to the name" '
git format-patch -1 --stdout >output &&
grep " | " output >actual &&
test_cmp expect72 actual
'
while read cmd args while read cmd args
do do
cat >expect <<-'EOF' cat >expect80 <<-'EOF'
...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
EOF EOF
test_expect_success "$cmd: small change with long name gives more space to the name" ' test_expect_success "$cmd: small change with long name gives more space to the name" '
git $cmd $args >output && git $cmd $args >output &&
grep " | " output >actual && grep " | " output >actual &&
test_cmp expect actual test_cmp expect80 actual
' '
done <<\EOF
diff HEAD^ HEAD --stat
show --stat
log -1 --stat
EOF
while read cmd args
do
cat >expect <<-'EOF' cat >expect <<-'EOF'
...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 + ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1 +
EOF EOF
@ -79,11 +95,11 @@ test_expect_success 'preparation for big change tests' '
git commit -m message abcd git commit -m message abcd
' '
cat >expect80 <<'EOF' cat >expect72 <<'EOF'
abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EOF EOF
cat >expect80-graph <<'EOF' cat >expect72-graph <<'EOF'
| abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
EOF EOF
cat >expect200 <<'EOF' cat >expect200 <<'EOF'
abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ abcd | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ -107,7 +123,7 @@ do
test_cmp "$expect-graph" actual test_cmp "$expect-graph" actual
' '
done <<\EOF done <<\EOF
ignores expect80 format-patch -1 --stdout ignores expect72 format-patch -1 --stdout
respects expect200 diff HEAD^ HEAD --stat respects expect200 diff HEAD^ HEAD --stat
respects expect200 show --stat respects expect200 show --stat
respects expect200 log -1 --stat respects expect200 log -1 --stat
@ -135,7 +151,7 @@ do
test_cmp "$expect-graph" actual test_cmp "$expect-graph" actual
' '
done <<\EOF done <<\EOF
ignores expect80 format-patch -1 --stdout ignores expect72 format-patch -1 --stdout
respects expect40 diff HEAD^ HEAD --stat respects expect40 diff HEAD^ HEAD --stat
respects expect40 show --stat respects expect40 show --stat
respects expect40 log -1 --stat respects expect40 log -1 --stat
@ -163,7 +179,7 @@ do
test_cmp "$expect-graph" actual test_cmp "$expect-graph" actual
' '
done <<\EOF done <<\EOF
ignores expect80 format-patch -1 --stdout ignores expect72 format-patch -1 --stdout
respects expect40 diff HEAD^ HEAD --stat respects expect40 diff HEAD^ HEAD --stat
respects expect40 show --stat respects expect40 show --stat
respects expect40 log -1 --stat respects expect40 log -1 --stat
@ -250,11 +266,11 @@ show --stat
log -1 --stat log -1 --stat
EOF EOF
cat >expect80 <<'EOF' cat >expect72 <<'EOF'
...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++ ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++
EOF EOF
cat >expect80-graph <<'EOF' cat >expect72-graph <<'EOF'
| ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 ++++++++++++++++++++ | ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++
EOF EOF
cat >expect200 <<'EOF' cat >expect200 <<'EOF'
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 1000 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ -278,7 +294,7 @@ do
test_cmp "$expect-graph" actual test_cmp "$expect-graph" actual
' '
done <<\EOF done <<\EOF
ignores expect80 format-patch -1 --stdout ignores expect72 format-patch -1 --stdout
respects expect200 diff HEAD^ HEAD --stat respects expect200 diff HEAD^ HEAD --stat
respects expect200 show --stat respects expect200 show --stat
respects expect200 log -1 --stat respects expect200 log -1 --stat
@ -308,7 +324,7 @@ do
test_cmp "$expect-graph" actual test_cmp "$expect-graph" actual
' '
done <<\EOF done <<\EOF
ignores expect80 format-patch -1 --stdout ignores expect72 format-patch -1 --stdout
respects expect1 diff HEAD^ HEAD --stat respects expect1 diff HEAD^ HEAD --stat
respects expect1 show --stat respects expect1 show --stat
respects expect1 log -1 --stat respects expect1 log -1 --stat