Major diff/merge changes in bzr and explorer

Andreas Sommer andreas.sommer87 at googlemail.com
Thu May 3 08:41:54 UTC 2012


From: Gordon Tyler <gordon at doxxx.net>
Sent: 03.05.2012 01:16
To: Andreas Sommer <andreas.sommer87 at googlemail.com>
Cc: bazaar at lists.canonical.com, Martin Pool <mbp at canonical.com>
Subject: Re: Major diff/merge changes in bzr and explorer
> On Tue, May 1, 2012 at 11:41 AM, Andreas Sommer
> <andreas.sommer87 at googlemail.com
> <mailto:andreas.sommer87 at googlemail.com>> wrote:
> 
>     I will see that soon. From what I've seen in in mergetools, it has a
>     different way of replacing arguments. Something like "executable
>     /base:filename.BASE" is not possible because {base} must be a single
>     argument (i.e. "executable /base filename.BASE" would be possible). This
>     will be improved if I create a common module for tool invocation. If I
>     remember correctly, this was actually bugging me for a while because I
>     had to write a workaround in order to use the awesome TortoiseMerge. So
>     it's a good chance to get that fixed too :)
> 
> 
> It certainly sounds like that would be a good improvement and should be
> backwards compatible.
> 
> Another diff-related feature request that I recall seeing was for proper
> handling of multi-file diffs with tools that can handle them. I think it
> might have been WinMerge that could display multiple diffs in a single
> window, but the way our diff invocation currently works, it would show
> one diff, wait for the diff app to close, invoke it again for the next
> file, etc.
> 
> Ah, here it is: https://bugs.launchpad.net/bzr/+bug/490212

Good point. There is an important distinction to make:

1) Tools that show multiple 2-way diffs, e.g. in tabs. This is done by
multiple process invocations (e.g. WinMerge) or passing the file pairs
as parameters (e.g. meld) as described in the bug comments.

2) Tools that can handle 3+ way diffs like Diffuse. 'bzr diff' can only
compare two revisions at the moment, so multi-revision diff tools can
not be used yet. But it might be worth considering it in the
implementation of a common tool invocation module. For example, instead
of parameters (old_filename,new_filename) one could use a list
new_filenames (that would contain one filename in case of the
traditional 2-way diff).



More information about the bazaar mailing list