| #!/bin/sh | |
| USAGE='[-p] [--max-count=<n>] [<since>..<limit>] [--pretty=<format>] [-m] [git-diff-tree options] [git-rev-list options]' | |
| 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 config --get whatchanged.difftree) | |
| diff_tree_default_flags='-c -M --abbrev' ;; | |
| *show) | |
| count=-n1 | |
| test -z "$diff_tree_flags" && | |
| diff_tree_flags=$(git config --get show.difftree) | |
| diff_tree_default_flags='--cc --always' ;; | |
| esac | |
| test -z "$diff_tree_flags" && | |
| 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 $count $rev_list_args" | | |
| eval "git-diff-tree --stdin --pretty -r $diff_tree_flags $diff_tree_args" | | |
| LESS="$LESS -S" ${PAGER:-less} |