summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@gmail.com>2015-08-30 00:25:57 +0900
committerJunio C Hamano <gitster@pobox.com>2015-08-31 11:29:04 -0700
commit3086c064fbbf3c4d086f9d7c303d9aa76f5204b2 (patch)
tree7085dbdb7bc5ecf97a95fec0cda2f808940dbf24
parenta17c56c056d5fea0843b429132904c429a900229 (diff)
downloadgit-nk/stash-show-config.tar.gz
stash: allow "stash show" diff output configurablenk/stash-show-config
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: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/config.txt10
-rw-r--r--Documentation/git-stash.txt2
-rwxr-xr-xgit-stash.sh20
3 files changed, 31 insertions, 1 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 43bb53c047..c2f08aa18b 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2476,6 +2476,16 @@ status.submoduleSummary::
submodule summary' command, which shows a similar output but does
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>.url::
The path within this project and URL for a submodule. These
diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt
index 375213fe46..92df596e5f 100644
--- a/Documentation/git-stash.txt
+++ b/Documentation/git-stash.txt
@@ -95,6 +95,8 @@ show [<stash>]::
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
-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>]::
diff --git a/git-stash.sh b/git-stash.sh
index 8e9e2cd7d5..92bc0e1ad8 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -307,7 +307,25 @@ show_stash () {
ALLOW_UNKNOWN_FLAGS=t
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 () {