Flexible external diff and external merge support

Asked by Alexey Stukalov

Coming from TortoiseSVN, I''ve encountered the lack of support for 3rd party visual diff and merge programs in Bazaar.
What standard setup offers by default is qdiff, it renders nicely, but it's read-only. While using TSVN, I've used to verify my changes and fix accidental ones through external diff tool (like Beyond Compare or Araxis Merge).

There are 2 extension points I was able to find:
  * --using switch for diff command for calling external diff tools, but it's implementation is too bound to unix diff command, I don't know how to correctly launch Araxis Merge or Beyond Compare from 'bzr diff', without additional hacking
  * extmerge plugin, it provides support for %THEIR, %BASE %THIS metaarguments, but it's only for merge, not for diff, and it could only support single external tool via conf file

IMO, Bazaar or some officially supported plugin should support flexible configuration of external diff/merge tools with %BASE, %THIS, %OTHER meta-arguments, just like it was done in TSVN. No need for special configuration section in bazaar.conf, command aliases would suite perfectly. IMHO, this feature is basic enough to include into bazaar core.

Now, I've come to my question. Am I correct in stating that currently there's no flexible way to configure bazaar to use 3rd party diff/merge tools? Is there already some initiative to eliminate such omittance?

Question information

Language:
English Edit question
Status:
Solved
For:
Bazaar Edit question
Assignee:
No assignee Edit question
Solved by:
Martin Pool
Solved:
Last query:
Last reply:
Revision history for this message
Best Martin Pool (mbp) said :
#1

You can use the difftools plugin <https://launchpad.net/bzr-difftools>. I would agree this should be builtin.

Revision history for this message
Alexey Stukalov (astukalov) said :
#2

Thanks Martin Pool, that solved my question.

Revision history for this message
Alexey Stukalov (astukalov) said :
#3

I had a quick look a difftools. AFAIU it doesn't support metaarguments either, so it also cannot be used together with tools like Beyond Compare & Araxis Merge.

But nice to know this feature is considered worth implementing.

Revision history for this message
Martin Pool (mbp) said :
#4

What do you mean by metaarguments?

--
Martin <http://launchpad.net/~mbp/>

Revision history for this message
Alexey Stukalov (astukalov) said :
#5

From TSVN docs, config for Araxis Merge:
"C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname
    /title3:%yname %theirs %base %mine %merged /a2"

So, when the tool is launched, %base, for example, is substituted to the base revision of the file being compared. Etc.