path: root/contrib/examples/
diff options
authorJunio C Hamano <>2013-08-09 17:28:53 (GMT)
committerJunio C Hamano <>2013-08-13 16:01:52 (GMT)
commit627a8b8dcda6b6fd3946b2b5964c9154c410f518 (patch)
tree8096580b34fcafc750bfb018ecc744444a8425ed /contrib/examples/
parent64948ad77534f035311fd3e1086477661c8f63b1 (diff)
core-tutorial: trim the section on Inspecting Changes
Back when the core tutorial was written, `log` and `whatchanged` were scripted Porcelains. In the "Inspecting Changes" section that talks about the plumbing commands in the diff family, it made sense to use `log` and `whatchanged` as good examples of the use of these plumbing commands, and because even these scripted Porcelains were novelty (there wasn't the new end-user tutorial written), it made some sense to illustrate uses of the `git log` (and `git whatchanged`) scripted Porcelain commands. But we no longer have scripted `log` and `whatchanged` to serve as examples, and this document is not where the end users learn what `git log` command is about. Stop at briefly mentioning the possibility of combining rev-list with diff-tree to build your own log, and leave the end-user documentation of `log` to the new tutorial and the user manual. Also resurrect the last version of `git-log`, `git-whatchanged`, and `git-show` to serve as examples to contrib/examples/ directory. While at it, remove 'whatchanged' from a list of sample commands that are affected by GIT_FLUSH environment variable. This is not meant to be an exhaustive list but as a list of typical ones, and an old command that is kept primarily for backward compatibility does not belong to it. Helped-by: Matthieu Moy <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'contrib/examples/')
1 files changed, 28 insertions, 0 deletions
diff --git a/contrib/examples/ b/contrib/examples/
new file mode 100755
index 0000000..1fb9feb
--- /dev/null
+++ b/contrib/examples/
@@ -0,0 +1,28 @@
+USAGE='[-p] [--max-count=<n>] [<since>..<limit>] [--pretty=<format>] [-m] [git-diff-tree options] [git-rev-list options]'
+. git-sh-setup
+diff_tree_flags=$(git-rev-parse --sq --no-revs --flags "$@") || exit
+case "$0" in
+ count=
+ test -z "$diff_tree_flags" &&
+ diff_tree_flags=$(git-repo-config --get whatchanged.difftree)
+ diff_tree_default_flags='-c -M --abbrev' ;;
+ count=-n1
+ test -z "$diff_tree_flags" &&
+ diff_tree_flags=$(git-repo-config --get show.difftree)
+ diff_tree_default_flags='--cc --always' ;;
+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}