Using DiffFiles as external diff tool for SVN?

Oxygen general issues.
msarrel
Posts: 10
Joined: Tue Aug 24, 2010 6:49 pm

Using DiffFiles as external diff tool for SVN?

Post by msarrel »

Is it possible to use DiffFiles as a more intelligent, XML-aware, external diff tool with SVN when committing files? Since Oxygen is already integrated with SVN, I'd like to use Oxygen's XML diff tool to do a better diff on XML files.

How good is Oxygen's XML diff tool at understanding what text-based changes are significant, and which are different, but equivalent?

Thanks,

Marc
adrian
Posts: 2879
Joined: Tue May 17, 2005 4:01 pm

Re: Using DiffFiles as external diff tool for SVN?

Post by adrian »

Hello,

It's possible to use DiffFiles for SVN, but it might not be practical. Even if it's XML-aware, DiffFiles is a two-way diff, while SVN uses a three way diff.

To clarify what's the difference:
- A two way diff compares file A with file B and reports the differences. It can't merge the two files automatically, because it doesn't have a base reference, so you have to do it manually.

- A three way diff can actually merge files automatically because there is a third file, a common ancestor of the two, and the diff can compare each file with that ancestor and determine what has been changed and what has been added/removed from each of the files that are compared in order to be merged. There is of course the situation where a real conflict appears (both files are modified in the same location relative to the base) and the automatic merge is not possible.

In practice, this means that while you can use DiffFiles to compare the files from a SVN repository, you will always have to merge them manually (one difference at a time) when doing so. In addition, if the file you have modified and want to commit/compare has also been modified in the repository, and you have a possible conflict, you will have to manually compare your file, first against the BASE, then against the incoming file, which is a cumbersome and error prone cycle.

If you want to test how this works, you can go to Options > Preferences, SVN > Diff, enable Compare with external application and browse for the DiffFiles application.
When you use the Compare actions from the contextual menu of the SVN tool, the external application will be invoked.

Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
Post Reply