Posts Tagged ‘Diff’
(if you rate this I would like to read your comments about your rating)
There are a multitude of Diff/Merge Utilities out there but this review will cover the Guiffy Diff/Merge Tool and Folder comparison utility v9.x. Let me be up front: I own v8.x of Guiffy and really like it a great deal but I don’t own v9.x. I also own an older version of ExamDiff Pro, and a multitude of others. What I am trying to say is that I have yet to find a Diff/Merge tool that sets perfect with me and I suspect it’s more of the developer/designer in me that’s always looking for the next feature. This is not a closed ended review since it takes a long time to get a review done well I tend to add more layers as time goes on: this is no different.
FYI: I did this review of Guiffy (trial) on OS X however it runs on Linux (all flavors), OS X, Windows, Solaris, HP-UX, AIX and other Java platforms. Certainly a good selling point.
Code: The code snippet I used comes from a very cool site called Java2S.Com (I just made 2 copies and munged them a bit).
Update – 08.22.2009: Guiffy has recently reduced the price for their Diff/Merge tool: was $79 now it is $59 – how cool is that?!!! There are also tiered steps for multi-user licensing for the team and/or enterprise. Sometimes good thing increase in price over time but it sure it nice when the price goes down but not the quality!
Update – 08.15.2009: In response to a couple of issues that were found Guiffy released a new build 270 (Build 270 includes 3 bug fixes: 396-398) which resolved all of the issues below. The content below has been modified accordingly.
I have tried many, many diff tools but I always seem to find some issue with them and move on. Some of them don’t print print properly, some diff like the old style command line diff with the results on top of each other which really is a pain to visualize the differences (csDiff anyone?). Those are just a few things off the top of my mind I like to avoid with a diff tool. So, what to review? There are a ton of features in the top diff tools these days from basic file compare, to editing, to 3-way merging, to folder diffs and a slew of others, but what I am most interested in is the following:
- Does the tool do a diff completely by ‘reading’ the files you are comparing and show true differences or does it do a line by line diff with no real intelligence? (I know this is not so common anymore but I have seen it on the lower end, free, tools)
- When a newer version of a file has been reorganized (ie.. moving functions around, reformatting, etc..) is that really a different file? If no other changes were made then what is the real difference? To me it’s just layout sugar but I would like the diff tool to be able to ‘know’ that the code is basically the same. That’s probably asking too much and at this stage I don’t remember how well any of my diff tools does this but I like the idea.
- I want to be able to print my diff results side by side with line numbers – sometimes I just like to read the code without the computer in front of me.
- I would like to be able to tell if one folder has different files in it from another folder – recursively too (not sure if the recursive is a bit much in terms of processing but it would be cool).
- Finally, I would really like to not have to take a loan out to buy a diff tool. Some of them are very expensive for what it does like Araxis, $269 for the pro license is a bit much to me – more than most professional text editors!
Info on Guiffy
- Current Version: 9.0 (Download)
- Cross Platform (see above)
- Java based
- Price: $66 Single User / $132 3-User (1 license runs on all platforms)
Let me preface this review of mine by saying it is a review of how I see the program and how I felt working with it as well as my impressions from a software developer point of view. This is not some indirect advertising or some way to push more business to Guiffy. In other words: this is unpaid. Enough said.
Finally, here’s some links for Guiffy:
Here is a picture of how Guiffy looks right after startup. I really like the clean lines of this program. Nice and simple without an overwhelming array features on the main screen.
What I Did
Here is Guiffy with a diff of two code files which are the same, pretty much what you would expect. The syntax highlighting is well done:
Here is Guiffy with a diff of the same two code files with one of the files re-arranged but no code changes other than rearranging:
Well, that’s kind of a bummer but not unexpected. You can see all I did was swap positions of the Main() method from bottom to top but it still counted it as different. I wonder if there is any diff tool that WILL do a line by line comparison like what I described? Anyone know of one?
Here is a shot with the files back the way they were but I added 4 spaces and it found the diffs as you would expect:
And here are the same files with the Ignore Leading and Trailing Whitespace option checked (nice option when you have who knows how many developers imprinting their formatting ideas on your source code:
One thing I really like is the speed of the comparisons. I realize that these are rather small files but the compares for archives and folders are pretty snappy. That’s a nice thing when you are looking to do your tasks as quickly as possible (ie.. comparing data files when you are doing troubleshooting for a client waiting for a fix).
So, that’s it for my File Comparisons. Next, let’s tackle Archives and Folders.
Archive Compare (new for v9)
To test Archive Compare I compared the .zip files of two different versions of the Guiffy installer. Archive selection shares the same dialog as the Folder Compare and works like you would expect.
The actually comparison was fairly quick and accurate (I compared gufins86.zip and gufins90.zip) and displayed the results as if I were comparing folders (which essentially this is a similar operation) in hierarchical fashion. The nice thing is that Guiffy actually went into the .app file within the .zip archive (the .app file is the installer) which is nice as some diff tools just stop at unzipping the .zip file. If that were the case here we would only see the guf86ins.app and gufins90.app files in the compare – glad this is NOT the case with Guiffy.
Here is a screen shot showing the results:
Pretty much what you would expect for an Archive Compare. I really like the way this worked and I liked the speed that is performed the compare. Some diff tools that do archive compares spend an enormous amount of time just decompressing the archive folder.
I would like to see .Rar and .7z (7zip) archives as an option for the archive types you can compare since both of these types do exist on most platforms. Ready to forge on to my final compares: Folders.
Ok, so let’s look at a Folder diff of a fairly large chunk of Flex source for a grocery cart (from one of my training books).
I first modified the options by selecting Show SubFolders (Recursively) and Show Details. The recursive part is important to me as I have used diff tools which made you navigate into a folder to see the differences in that folder then you had to navigate out – pain!
Here is a compare with the files and folders exactly the same. Again, about what you would expect. Compare is fast and accurate.
Next, I removed some files from the 2nd folder just to see how things compared. And it found all of the differences I created within the folder structures.
Ok, that’s about it for my diff’ing tonight. Now I know I did not mention all of the options (there are many!) or any of the other features that may exist. I leave that to you – just check out the Release Notes and you will see all the new features.
Off the Top
Things I liked
What I think really makes this program work for me.
I liked the clean looks of Guiffy – everything you need is on the toolbar to do most jobs (that’s nice for the mac since the menu is not attached to any mac program – at least standard ones).
I liked the speed of comparison (folder compare seems extremely fast as does all the compares).
I liked the code syntax coloring as well as the themes that you can pick for Guiffy.
I liked the ability to show side to side and top to bottom views of my diffs.
Things I could like
Some things that would be cool (to me) if they were a part of Guiffy – some of the items I might have mentioned already.
I could like it if in the Folder Compare there was a .. or previous folder (up arrow) navigator in the folder view and not on the toolbar.
I could like it if Guiffy maintained my position (sizing, location) automatically.
I could like it if the toolbar buttons could show text (tell me if that’s there, I just couldn’t find it).
I could like it better if there was coloration for files and folders (show read-only, system files/folders, etc) – if coloration is there I could not find it – is it?.
I could like it if the option to compare .Rar and .7z files was available in addition to all of the other compression types which are available.
Hmmm.. As I said in the Preamble, I own Guiffy (v8.4), really like it and I don’t hesitate to recommend it. In fact, if you are going to buy a diff tool then, for the price, Guiffy is a good option. I also want to say that Guiffy has some of the best service I have worked with and I can vouch for the fact that they do care about their product and want to see it be the best it can be so don’t hesitate to drop them a line if you have a question or issue: they will get back to you.
Guiffy is a professional Diff/Merge tool and does a great job of providing professional grade features – check it out!