aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile5
-rwxr-xr-xgit-whatchanged.sh18
3 files changed, 19 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 5382e7427..513f22eb1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -88,6 +88,7 @@ git-send-pack
git-sh-setup
git-shell
git-shortlog
+git-show
git-show-branch
git-show-index
git-ssh-fetch
diff --git a/Makefile b/Makefile
index 2aa2385b6..dfd765115 100644
--- a/Makefile
+++ b/Makefile
@@ -125,7 +125,7 @@ SCRIPT_PYTHON = \
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
$(patsubst %.perl,%,$(SCRIPT_PERL)) \
$(patsubst %.py,%,$(SCRIPT_PYTHON)) \
- git-cherry-pick
+ git-cherry-pick git-show
# The ones that do not have to link with lcrypto nor lz.
SIMPLE_PROGRAMS = \
@@ -440,6 +440,9 @@ $(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py
git-cherry-pick: git-revert
cp $< $@
+git-show: git-whatchanged
+ cp $< $@
+
# These can record GIT_VERSION
git$X git.spec \
$(patsubst %.sh,%,$(SCRIPT_SH)) \
diff --git a/git-whatchanged.sh b/git-whatchanged.sh
index d4f985b5e..574fc3558 100755
--- a/git-whatchanged.sh
+++ b/git-whatchanged.sh
@@ -5,14 +5,24 @@ SUBDIRECTORY_OK='Yes'
. git-sh-setup
diff_tree_flags=$(git-rev-parse --sq --no-revs --flags "$@") || exit
+case "$0" in
+*whatchanged)
+ count=
+ test -z "$diff_tree_flags" &&
+ diff_tree_flags=$(git-repo-config --get whatchanged.difftree)
+ diff_tree_default_flags='-M --abbrev' ;;
+*show)
+ count=-n1
+ test -z "$diff_tree_flags" &&
+ diff_tree_flags=$(git-repo-config --get show.difftree)
+ diff_tree_default_flags='--cc --always' ;;
+esac
test -z "$diff_tree_flags" &&
- diff_tree_flags=$(git-repo-config --get whatchanged.difftree)
-test -z "$diff_tree_flags" &&
- diff_tree_flags='-M --abbrev'
+ diff_tree_flags="$diff_tree_default_flags"
rev_list_args=$(git-rev-parse --sq --default HEAD --revs-only "$@") &&
diff_tree_args=$(git-rev-parse --sq --no-revs --no-flags "$@") &&
-eval "git-rev-list $rev_list_args" |
+eval "git-rev-list $count $rev_list_args" |
eval "git-diff-tree --stdin --pretty -r $diff_tree_flags $diff_tree_args" |
LESS="$LESS -S" ${PAGER:-less}