1The git-diffall script provides a directory based diff mechanism 2for git. 3 4To determine what diff viewer is used, the script requires either 5the 'diff.tool' or 'merge.tool' configuration option to be set. 6 7This script is compatible with most common forms used to specify a 8range of revisions to diff: 9 10 1. git diffall: shows diff between working tree and staged changes 11 2. git diffall --cached [<commit>]: shows diff between staged 12 changes and HEAD (or other named commit) 13 3. git diffall <commit>: shows diff between working tree and named 14 commit 15 4. git diffall <commit> <commit>: show diff between two named commits 16 5. git diffall <commit>..<commit>: same as above 17 6. git diffall <commit>...<commit>: show the changes on the branch 18 containing and up to the second, starting at a common ancestor 19 of both <commit> 20 21Note: all forms take an optional path limiter [-- <path>*] 22 23The '--extcmd=<command>' option allows the user to specify a custom 24command for viewing diffs. When given, configured defaults are 25ignored and the script runs $command $LOCAL $REMOTE. Additionally, 26$BASE is set in the environment. 27 28This script is based on an example provided by Thomas Rast on the 29Git list [1]: 30 31[1] http://thread.gmane.org/gmane.comp.version-control.git/124807