Any software developer worth his salt knows the critical value of diff tools. There hardly is any project (even when conducted alone) there goes by without the need to compare different versions of files. This need just flies off the scale as the team grows in headcount - who changed what when?? Without such tools to conduct all these fussy magnifying glass inspections, that humans are simply so slow and lousy at, a great deal of productivity (and software quality) goes down the drain.
Still, it puzzles me how many developers conduct such differentiating checks only within the confines of their source control system. They just match up with files against those stored historically in the repository, and never consider expanding use with files in other areas. That is a tragic fact, in my opinion. Using stand-alone diff tools has been an incredible time saver for me, and on occassion a life saver in catching that unseen misconfiguration that would have bad consequences had it made into production.
The tool of my choice? IDM's UltraCompare.
There are actually a quite a number of comparable products that do good diff jobs. What makes me sold on UltraCompare is the number of comparison modes it offers:
Yes, 3-way comparison for those moments when you have to check change across time, or configurations across three environments. It does not sound like much beyond the standard pair comparison, but once you have encountered the need to compare more than two files at a time, you will find it painful to go back. Think Lipton tea after having tasted the fragrance of Earl Grey.
Of course, there is then that sweetness known as Folder Mode. It is simply a blast to be able to walk through an entire hierarchy of different builds and quickly spot out where the different files are. Synchronising the folders is just like merging done with text lines at the file level, except that files get overwritten either way according to the user's wish. Did I mention 3-way comparison? Yes, wide-screen monitors help here.
Folder mode is not some afterthought feature segregated from Text or Binary modes. UltraCompare integrates seamlessly by allowing the double-clicking of a pair of files to launch up a Text/Binary comparison window to peek at just what the file-level differences are. Switching back and forth is a breeze.
Now what do I not like about UltraCompare? The biggest hindrance I experience is performance. It takes a muscular CPU and fast head-seek disk to conduct thorough folder comparisons recursively. It does, however, offer different folder compare methods to suit your desires for speed or accuracy. It takes abit of experimentation with the hierarchy structures you regularly work with to get that optimal configuration setting.
UltraCompare features a Favourites listing of files/folders that one can save frequently-used locations for quick loading. The thing is it does not support loading up in pairs or trios. That would have been a neat time saver.
Also, it appears the integration with Windows Explorer - to include context menu options to quickly load files/folders into each compare frame - still does not work as smoothly as it should. For example, you can select two files to be loaded in the first and second frame, then attempt to launch UltraCompare only to find out the last mode it was operating in was Folder mode. Bang comes the error. Additionally it may not load the files you indicated prior to launching the program; some other file in the past may be loaded instead. Apparently the rememberance as well as the inference on what mode the new session needs to be in still needs sorting out by the IDM team.
Overall though, it is a tool I am glad to have at my disposal. So much so I paid the unlimited upgrade option of US$74.95 to guarantee me using it for years to come. And you probably will be glad too, after wondering how you ever did without it.