Changes in v2: [PATCH 7/9] difftool: teach difftool to handle directory diffs - Location of /tmp is now determined via the File::Temp::tempdir. In v1, the location was hard-coded to '/tmp'. - Lexical filehandles are now used for open(). - Modern, 3 argument, form of open() is now used. - Arguments to the 'system' call for $extcmd are now given in list form. - Replaced 'system' call to 'git difftool--helper' with Git::command_noisy [PATCH 9/9] difftool: print list of valid tools with '--tool-help' - The glob statement used to find the mergetool options now uses the fully qualified path. This insures that 'git difftool --tool-help' can be called from any directory. Series overview: 'git difftool' is a very useful command that allows git diffs to be opened in an external tool. Currently, difftool opens a separate instance of the external tool for each file that changed. This can be tedious when many files have changed. This series teaches difftool to perform directory diffs, so that all file changes can be opened/reviewed in a single instance of the external tool. This is the second phase of development for this feature. The first phase was added as a separate command (git diffall) in 1252bbe (contrib: add git-diffall script). During review of that script on the Git developers list, an informal development roadmap was suggested [1]. The next phase of that plan is to integrate the 'git-diffall' feature into 'difftool'. This series gets that done. [1]: http://thread.gmane.org/gmane.comp.version-control.git/191297/focus=191383 Patches 1-6 are clean-up and rewrite to prepare for later changes. They are not intended to change the behavior of difftool. Instead, they teach the script to use standard modules for option parsing and interacting with the Git repo. I understand that these changes may be controversial due to the amount of rewrite, but the end result is that the script is half the previous size and I believe is easier to understand and maintain. Patches 7 and 8 are the core changes in this series. They teach difftool the new "--dir-diff" option. When this option is used, difftool will copy files that were changed to a temporary location and run a single directory diff on them rather than run a separate instance of the diff tool for each file. Patch 9 is a new implementation of a patch that I submitted recently. 061e672 (difftool: print list of valid tools with '--tool-help' was written prior to these other changes. It needed to be rewritten to fit into the Getopt::Long option parsing framework included with this series. Tim Henigan (9): difftool: parse options using Getopt::Long difftool: exit(0) when usage is printed difftool: remove explicit change of PATH difftool: stop appending '.exe' to git difftool: eliminate setup_environment function difftool: replace system call with Git::command_noisy difftool: teach difftool to handle directory diffs difftool: teach dir-diff to copy modified files back to working tree difftool: print list of valid tools with '--tool-help' Documentation/git-difftool.txt | 17 ++- git-difftool--helper.sh | 20 +++- git-difftool.perl | 259 +++++++++++++++++++++++++++------------- 3 files changed, 202 insertions(+), 94 deletions(-) -- 1.7.9.1.290.gbd444 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html