Merge branch 'nk/stash-show-config'

Users who are too busy to type three extra keystrokes to ask for
"git stash show -p" can now set stash.showPatch configuration
varible to true to always see the actual patch, not just the list
of paths affected with feel for the extent of damage via diffstat.

* nk/stash-show-config:
  stash: allow "stash show" diff output configurable
This commit is contained in:
Junio C Hamano 2015-10-05 12:30:10 -07:00
commit 5e9a74b480
3 changed files with 31 additions and 1 deletions

View File

@ -2587,6 +2587,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

View File

@ -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>]::

View File

@ -305,7 +305,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 () {