From: Roland Kaufmann Date: Tue, 01 Nov 2011 09:01:33 GMT Subject: Re: [PATCH] Display change history as a diff between two dirs Message-ID: In-Reply-To: <7v39e8o61s.fsf@alter.siamese.dyndns.org> On Tue, Nov 1, 2011 at 04:49, Junio C Hamano wrote: > Roland Kaufmann writes: >> Would it be better to have yet another configuration available for >> this option instead of reusing the existing infrastructure for `git >> difftool`? > It probably is OK for "git diff --dirdiff" to use GIT_EXTERNAL_TREEDIFF if > and only if GIT_EXTERNAL_DIFF is not defined, and use GIT_EXTERNAL_DIFF > otherwise. People who have GIT_EXTERNAL_DIFF set to a tool capable of > handing directory pair can just add "--dirdiff" to the command line, and Did you perhaps mean the other way around: GIT_EXTERNAL_TREEDIFF if set, and GIT_EXTERNAL_DIFF otherwise? I will revise the patch to incorporate that, and at the same time fix the isempty function (it can be done simpler). >>> It also is not clear what could be used in "$@". Obviously you would >>>  not want things like "-U20" and "--stat" fed to the first "list of >>> paths" phase, but there may be some options you may want to give to >>> the inner "external diff" thing. >> Ideally, it should work the same way as `git difftool`. > I am not so sure about that; difftool is another way to drive a tool one > filepair at a time. You want to drive a tool that takes them as two _sets_ > of files, one in each directory. I was thinking about the behaviour when you send options that are not applicable to files at all, such as "--stat". In that case, it just stops after `git diff`. Options that only applies to one file and not to a set have I admittedly not thought about (yet). -- Roland.