I don’t know if I should post this to the discussion forum or just email it around so I’ll try this first.


I’ve been using WinMerge for about 4 months now and I’ve been through the code a fair bit.  In a nutshell, I’ve got an idea that might make a nice feature list addition to WinMerge.  I would like to propose an idea so that (select) binary files could be handled through WinMerge.  Binary files are very seldom handled with other diff/merge programs.  I can think of a couple of diff programs (ExamDiff Pro) that allow you to view the ‘text’ of the binary file and I know of one application that allows you to diff .doc (Word) files.


What do I mean by handling binary files you ask?  Basically, I think that a nice integration could be had by supporting binary files that have an Active Document Server rendering engine.  Here, I mean a ‘rendering engine’ in that it takes a binary document and displays it for the user.  For example, Word is (basically) an active doc server and the Adobe SVG plugin is one also.  I’ve already changed the latest CVS code (on my box) to view a file in either plain text mode or within an active document server.  I’ve already tested .doc, .xls, .svg, .xfd (PureEdge Solutions (company I work for) XML form language).


Why do I care you ask?  The answer is three-fold.  First, often I run into the problem of having a bunch of binary files (whether it be Word files, images, compressed XML documents, etc) within a versioning system and it is a pain in the butt to have to ‘download’ each revision and open them separately instead of diff’ing 2 version with WinMerge from within a content system (CVS for example).  Therefore, I think that there is a real need for this type of thing.  Second, I think that the more computer savy the general public gets then the more likely that it is that secretaries and common computer users start to have to use versioning systems.  In this case, we are going to need a way to difference documents such as .doc and .xls easily.  For both of these points, I think that WinMerge could be clearly differentiated from other diff/merge tools by adding binary file support.  Third, I am interested in the concept of visualizing binary file differences as part of my master’s degree work (University of Victoria).  In my case, I am interested in the visualization of XML files that have a binary renderable version (.svg, .pdf, .doc, etc).


What’s the strategy you ask?  As I say, it is not an issue to embed Active Document Servers within the WinMerge main frame as I’ve already got this working.  The next step is to get the plugin manager to ‘preprocess’ certain file types (maybe .doc, .svg) to create their XML equivalent.  The XML diff would happen like any other text diff but then perhaps there would be a button where you could view the ‘rendered’ document.  That is, you could see the .doc file in Word for example.  I don’t know if it would be worthwhile to ‘mark up’ the Word document so that you could see differences.  Maybe this is the next step??


Anyways, I don’t know how coherent any of this is because I’m quite tired but I think that all of the above is possible.  I also think that this type of functionality within WinMerge would create a nice feature.  Again, I haven’t seen this technique used in other products and as such maybe we can make WinMerge that little bit better than any of its competitors. 


Please get back to me if you are at all interested.  I can supply a better explanation about what I’m trying to accomplish, how we could do it within WinMerge, and maybe some screenshots of what I’ve already done.


Thanks a lot,

Marcus Csaky