This is a source code differencing tool I developed circa 1998. Some of the original descriptions/details now follow:
Differencing programs are essential tools for developers, allowing you to see the differences between files. Windiff is a diff program that ships with Visual C++. I felt that Windiff was lacking some essential features. I had a look at other diff programs and felt they weren’t much better so I created my own.
Please send me your comments: god (at) adamk (dot) org
- It’s free.
- Slick GUI with auto aligning sections.
- Recursive directory compare with exclusion strings.
- Merge files by simply selecting sections you want.
- Filename/Directory history combo boxes.
- Single self contained executable. No need for setup/uninstall.
The main screen has two views, one for each file. Each file is split into a number of sections. A section can be in one of three states:
-The same in both files (black).
-Different but matching (dark red).
-Or only appear in one file (bright red).
Sections can be toggled by double clicking on them. In settings (from toolbar) there is an auto-select option. Buildmaster beware: if a section has been deleted on purpose this will be auto-selected, so you will need to de-select it.
A merge combines all the selected sections. The file path (for merge to file) can be configured in settings-merge.
If you go to settings-folders you can specify files to exclude from the folder compare list.
When one view is scrolled the other is automatically lined up. The point that is lined up is in the (vertical) centre of the view, which is marked in between the views with a horizontal line.
To the outer edges of the views there is an outline of the entire files. This shows where abouts the changes are.
History of releases: build info
You can’t scroll all the way down on big files in windows 95. This is thanks to microsofts CScrollView class which is limited to 32k on win95. its ok on winNT though.
Things to do:
- Making the main file views editable. I consider this as being one of the most important improvements. If anyone knows how to reliably draw on a richEdit control, please please tell me how its done.
- Background colour and font configurability.
- Automatic online version checking. This would contact my web site and see if a newer version exists. This could be accessed through a menu item or could be set to automatically happen when the program is started.
- Main diffing algorithm rewrite. I think I can make some speed improvements and theoretically make the diffing more thorough. I will leave this as low priority as long as I don’t get any requests for it.
- Improve merging. Being able to display all 3 screens together and having them automatically line up.