git-show
authorJunio C Hamano <junkio@cox.net>
Mon, 6 Feb 2006 00:42:49 +0000 (16:42 -0800)
committerJunio C Hamano <junkio@cox.net>
Mon, 6 Feb 2006 00:42:49 +0000 (16:42 -0800)
This is essentially 'git whatchanged -n1 --always --cc "$@"'.
Just like whatchanged takes default flags from
whatchanged.difftree configuration, this uses show.difftree
configuration.

Signed-off-by: Junio C Hamano <junkio@cox.net>
.gitignore
Makefile
git-whatchanged.sh

index 5382e74..513f22e 100644 (file)
@@ -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
index 2aa2385..dfd7651 100644 (file)
--- 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)) \
index d4f985b..574fc35 100755 (executable)
@@ -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}