git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] difftool: teach command to perform directory diffs
@ 2012-03-17  1:57 Tim Henigan
  2012-03-17  1:57 ` [PATCH 1/9] difftool: parse options using Getopt::Long Tim Henigan
                   ` (5 more replies)
  0 siblings, 6 replies; 26+ messages in thread
From: Tim Henigan @ 2012-03-17  1:57 UTC (permalink / raw)
  To: gitster, davvid, git; +Cc: Tim Henigan

'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              |  257 +++++++++++++++++++++++++++-------------
 3 files changed, 200 insertions(+), 94 deletions(-)

-- 
1.7.9.1.290.gbd444

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2012-03-20 16:36 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-17  1:57 [PATCH 0/9] difftool: teach command to perform directory diffs Tim Henigan
2012-03-17  1:57 ` [PATCH 1/9] difftool: parse options using Getopt::Long Tim Henigan
2012-03-17  3:21   ` David Aguilar
2012-03-17 13:54     ` Tim Henigan
2012-03-18  3:29       ` David Aguilar
2012-03-17  1:57 ` [PATCH 2/9] difftool: exit(0) when usage is printed Tim Henigan
2012-03-17  1:57 ` [PATCH 3/9] difftool: remove explicit change of PATH Tim Henigan
2012-03-17  1:57 ` [PATCH 4/9] difftool: stop appending '.exe' to git Tim Henigan
2012-03-17  2:06 ` [PATCH 0/9] difftool: teach command to perform directory diffs Junio C Hamano
2012-03-17  2:26   ` Tim Henigan
2012-03-17  4:24     ` Junio C Hamano
2012-03-18  1:55 ` [PATCH 0/9 v2] " Tim Henigan
2012-03-18  1:55   ` [PATCH 1/9 v2] difftool: parse options using Getopt::Long Tim Henigan
2012-03-18  1:55   ` [PATCH 2/9 v2] difftool: exit(0) when usage is printed Tim Henigan
2012-03-18  1:55   ` [PATCH 3/9 v2] difftool: remove explicit change of PATH Tim Henigan
2012-03-18  1:55   ` [PATCH 4/9 v2] difftool: stop appending '.exe' to git Tim Henigan
2012-03-18  1:55   ` [PATCH 5/9 v2] difftool: eliminate setup_environment function Tim Henigan
2012-03-18  1:55   ` [PATCH 6/9 v2] difftool: replace system call with Git::command_noisy Tim Henigan
2012-03-18  1:55   ` [PATCH 7/9 v2] difftool: teach difftool to handle directory diffs Tim Henigan
2012-03-18  1:55   ` [PATCH 8/9 v2] difftool: teach dir-diff to copy modified files back to working tree Tim Henigan
2012-03-18  1:55   ` [PATCH 9/9 v2] difftool: print list of valid tools with '--tool-help' Tim Henigan
2012-03-19 21:00   ` [PATCH 0/9 v2] difftool: teach command to perform directory diffs Junio C Hamano
2012-03-20  2:52     ` David Aguilar
2012-03-20  5:52       ` Junio C Hamano
2012-03-20 13:07     ` Tim Henigan
2012-03-20 16:36       ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).