The output formats of "git log" that indent the log message by 4
spaces have been updated to expand tabs by default in previous
steps, without a way to restore the original behaviour.
Introduce a new "--no-expand-tabs" option to allow this.
As the effect of options is cumulative,
$ git log [--pretty=medium] --no-expand-tabs
would not expand, while this invocation
$ git log --no-expand-tabs --pretty[=medium]
by virtue of having --pretty later on the command line, expands tabs
again.
We _could_ introduce --expand-tabs option as well, to allow
$ git log --pretty=email --expand-tabs
but we don't bother, as the output format that do not expand tabs by
default are mostly meant to transfer the contents as literally as
possible.
Signed-off-by: Junio C Hamano <[email protected]>
---
---
Documentation/pretty-options.txt | 6 ++++++
revision.c | 2 ++
t/t4201-shortlog.sh | 4 ++--
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/Documentation/pretty-options.txt b/Documentation/pretty-options.txt
index 4b659ac..069b927 100644
--- a/Documentation/pretty-options.txt
+++ b/Documentation/pretty-options.txt
@@ -42,6 +42,12 @@ people using 80-column terminals.
verbatim; this means that invalid sequences in the original
commit may be copied to the output.
+--no-expand-tabs::
+ The formats that indent the log message by 4 spaces
+ (i.e. 'medium', 'full', and 'fuller') by default show tabs
+ in the log message expanded. This option disables the
+ expansion.
+
ifndef::git-rev-list[]
--notes[=<ref>]::
Show the notes (see linkgit:git-notes[1]) that annotate the
diff --git a/revision.c b/revision.c
index 8827d9f..b0d2a36 100644
--- a/revision.c
+++ b/revision.c
@@ -1916,6 +1916,8 @@ static int handle_revision_opt(struct rev_info *revs, int
argc, const char **arg
revs->verbose_header = 1;
revs->pretty_given = 1;
get_commit_format(arg+9, revs);
+ } else if (!strcmp(arg, "--no-expand-tabs")) {
+ revs->expand_tabs_in_log = 0;
} else if (!strcmp(arg, "--show-notes") || !strcmp(arg, "--notes")) {
revs->show_notes = 1;
revs->show_notes_given = 1;
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index d1e8259..2fec948 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -114,8 +114,8 @@ EOF
test_cmp expect out
'
-test_expect_failure !MINGW 'shortlog from non-git directory' '
- git log HEAD >log &&
+test_expect_success !MINGW 'shortlog from non-git directory' '
+ git log --no-expand-tabs HEAD >log &&
GIT_DIR=non-existing git shortlog -w <log >out &&
test_cmp expect out
'
--
2.8.0-rc4-198-g3f6b64c
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html