Commit 3086c064 authored by Namhyung Kim's avatar Namhyung Kim Committed by Junio C Hamano

stash: allow "stash show" diff output configurable

Some users might want to see diff (patch) output always rather than
diffstat when [s]he runs 'git stash show'.  Although this can be
done with adding -p option, users are too lazy to type extra three
keys.

Add two variables that control to show diffstat and patch output
respectively.  The stash.showStat is for diffstat and default is
true.  The stat.showPatch is for the patch output and default is
false.
Signed-off-by: default avatarNamhyung Kim <namhyung@gmail.com>
Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
parent a17c56c0
...@@ -2476,6 +2476,16 @@ status.submoduleSummary:: ...@@ -2476,6 +2476,16 @@ status.submoduleSummary::
submodule summary' command, which shows a similar output but does submodule summary' command, which shows a similar output but does
not honor these settings. not honor these settings.
stash.showPatch::
If this is set to true, the `git stash show` command without an
option will show the stash in patch form. Defaults to false.
See description of 'show' command in linkgit:git-stash[1].
stash.showStat::
If this is set to true, the `git stash show` command without an
option will show diffstat of the stash. Defaults to true.
See description of 'show' command in linkgit:git-stash[1].
submodule.<name>.path:: submodule.<name>.path::
submodule.<name>.url:: submodule.<name>.url::
The path within this project and URL for a submodule. These The path within this project and URL for a submodule. These
......
...@@ -95,6 +95,8 @@ show [<stash>]:: ...@@ -95,6 +95,8 @@ show [<stash>]::
shows the latest one. By default, the command shows the diffstat, but shows the latest one. By default, the command shows the diffstat, but
it will accept any format known to 'git diff' (e.g., `git stash show it will accept any format known to 'git diff' (e.g., `git stash show
-p stash@{1}` to view the second most recent stash in patch form). -p stash@{1}` to view the second most recent stash in patch form).
You can use stash.showStat and/or stash.showPatch config variables
to change the default behavior.
pop [--index] [-q|--quiet] [<stash>]:: pop [--index] [-q|--quiet] [<stash>]::
......
...@@ -307,7 +307,25 @@ show_stash () { ...@@ -307,7 +307,25 @@ show_stash () {
ALLOW_UNKNOWN_FLAGS=t ALLOW_UNKNOWN_FLAGS=t
assert_stash_like "$@" assert_stash_like "$@"
git diff ${FLAGS:---stat} $b_commit $w_commit if test -z "$FLAGS"
then
if test "$(git config --bool stash.showStat || echo true)" = "true"
then
FLAGS=--stat
fi
if test "$(git config --bool stash.showPatch || echo false)" = "true"
then
FLAGS=${FLAGS}${FLAGS:+ }-p
fi
if test -z "$FLAGS"
then
return 0
fi
fi
git diff ${FLAGS} $b_commit $w_commit
} }
show_help () { show_help () {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment