Tuesday, September 08, 2015

Araxis File and Directory Comparison Utility

As part of my role, I'm writing, editing, and managing technical product documentation. One of the challenges in that area is incremental translation to multiple languages. Running a Microsoft Word compare between two versions of a document is easy, so any documentation written in Word can be sent to a translator and the compare will show what's changed—and therefore what needs to be translated since the previous translation. However, some of our documentation is written in XHTML so that it can be compiled to CHM and also provided as web-based help with our server product. How we cost-effectively manage an incremental translation update on these files has been an open question. I now have a reasonable solution.

Free tools such as KDiff will perform a differential analysis on files and even show exactly which lines have changed. However, KDiff doesn't provide any ability to separate the changed files from the ones that don't need to be translated again. Fortunately, there is another application called Araxis Merge (Windows and MacOS supported) that does allow for this ability. At the time of writing, it's $129 for one standard licence.

Like Kdiff, you can run a recursive directory diff to find all the changes in all the files. However, once you have done your folder comparison, you can also select all the altered files (using Select Rows > Selected Changed) and copy them to a new "specified folder." Using this method, I was able to grab all of the XHTML files that have changed since we last did a complete document translation.

Note that this method DOES NOT copy new files. You will need to go through manually and copy the files that have been added. These files appear green in the Araxis folder comparison view.

And if that's not enough, you can even generate an HTML report of all the file changes with links to reports on the changes in each file… so cool.

I did run into some hiccups in Araxis, For example, a bug that often causes the right-click context menu to not appear and consequently hang the application. However, I was able to work around it and get my work done.