On Wed, Mar 13, 2013 at 11:48 AM, Øystein Walle <oystwa@xxxxxxxxx> wrote: > When a merge is ongoing and there are conflicts, 'git difftool' will > output the exact same --cc-style diff output as 'git diff' will without > further explanation. This has lead to some confusion: A couple of weeks > ago a person asked on #git why his difftool wasn't working. After a long > while we realized difftool's behaviour after invocations such as 'git > difftool HEAD~ HEAD' would work as expected but 'git difftool' "simply > wouldn't". > > With that in mind I have three suggestions on improving 'git difftool': > > - Show a three-way diff between the versions (local, remote, merge) > using the user's configured difftool. Diffing against the version > containing the markers will generate some extra noise in the difftool > and might be confusing, but it's similar in behaviour to how 'git > difftool' normally works. > > - Prompt the user if they want to launch 'git mergetool' instead since > a merge is ongoing. Reasonable but it might be awkward if the user is > asked whether the conflict was resolved or not when all they wanted > to do was to visually diff something. > > - Add a notice to stderr saying that a --cc-style diff output is shown > instead; or document the behaviour in the man page. Definitely the > simplest option. > > I'm willing to try to take a stab at either of these but I wanted to > bring it up first. There is of course an implicit fourth option which is > to do nothing, and that I'm wrong about this :) Thanks for bringing this up. I think the simplest first step would be to detect this state, print a message saying that difftool cannot be used during a merge, and suggest mergetool instead. We would need to be careful to still allow difftool <ref> <ref> and only trigger this behavior when the cc-style diff would be printed. I have a feeling that this happens deep in git-diff. git-difftool--helper is driven by git-diff via the GIT_EXTERNAL_DIFF mechanism, and that mechanism is probably not triggered when in this state, so we may need to add another breadcrumb that we can build upon. > Best regards, > Øystein Walle cheers, -- David -- 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