#!/bin/sh setglobal USAGE = ''[-p] [--max-count=] [..] [--pretty=] [-m] [git-diff-tree options] [git-rev-list options]'' setglobal SUBDIRECTORY_OK = ''Yes'' source git-sh-setup setglobal diff_tree_flags = $[git-rev-parse --sq --no-revs --flags @Argv] || exit match $0 { with *whatchanged setglobal count = '' test -z $diff_tree_flags && setglobal diff_tree_flags = $[git config --get whatchanged.difftree] setglobal diff_tree_default_flags = ''-c -M --abbrev'' with *show setglobal count = '-n1' test -z $diff_tree_flags && setglobal diff_tree_flags = $[git config --get show.difftree] setglobal diff_tree_default_flags = ''--cc --always'' } test -z $diff_tree_flags && setglobal diff_tree_flags = $diff_tree_default_flags setglobal rev_list_args = $[git-rev-parse --sq --default HEAD --revs-only @Argv] && setglobal diff_tree_args = $[git-rev-parse --sq --no-revs --no-flags @Argv] && eval "git-rev-list $count $rev_list_args" | eval "git-diff-tree --stdin --pretty -r $diff_tree_flags $diff_tree_args" | env LESS="$LESS -S" $(PAGER:-less)