Hi, my name is Alex, and I’m a power hungry software developer. Devart’s Code Compare diff tool for Windows is power. By our powers combined, I am a powerful software developer.
How’d we get here?
My adventures with code comparison tools started the first time I needed to fix a merge conflict in git.
Historically, in TFS land, I’d just use Visual Studio’s built-in diff tool (vsdiffmerge.exe under the hood). Vsdiffmerge is a great 3-way text merge tool, but that’s the extent of its functionality.
Even if you use git, vsdiffmerge might be all you need– as long as you never use any of git’s advanced features from the command line.
But, like, who lives in that world?
Yes, it’s possible to configure git to use vsdiffmerge. But it’s soooooooooooooooo slllooooooooooowwwwwwwwww and awkward!
A co-worker suggested P4Merge, but…Perforce, amiright? I’d later come to discover that P4Merge was a pain to download, a pain to install, and doesn’t do directory comparisons.
Did I mention I needed the ability to perform directory comparisons as well?
Enter Code Compare
I’m in love. Code Compare now sits among a well-guarded list of tools that I’ll take to the grave. It’s a seriously powerful diff tool, and without Code Compare by my side, I’m often reduced to a slow, inefficient blob of a software developer. On more than one occasion, Code Compare saved my sanity.
Naturally, it satisfies all of the code comparison tool requirements I started with:
- Integrates with git and Visual Studio (and operates as a standalone tool)
- Directory comparison
- 3-way compare *
- Easy to download and install
- Lightweight & fast
- Looks great
* requires pro version
I guess that’s not a lot to ask. I didn’t realize what I was missing, though. Code Compare does so much more than I ever expected from a code comparison tool.
Honestly, it’s embarrassing that I haven’t tried 3rd party diff tools until recently.
Getting up to speed
If you’re like me, you’ll install Code Compare, fire it up, and fumble your way through the interface. That works up to a point, and most developers here will probably figure out the basics quickly.
Eventually, you’re going to want to check out their documentation.
While their writing style can be difficult to understand and lacks many images, it’s still worth going through to get a better understanding of how the product works.
Here are some great places to start:
- File Comparison and Merge Overview
Explains the various UI components. Very helpful if just starting out.
- Free vs. Pro comparison also Code Compare Editions
- Similar Line Detection
Helpful for understanding how this feature works
- Merging Files
Sort of a hidden Code Compare trick that’s worth knowing. It’s not obvious you can do this.
- Lexical Text Comparison and a more salesy view here.
- Three-Way File Comparison and Merging and a more salesy view here.
This is what you’ll use the most if you’re fixing a merge conflict from your source control system (and if you have the Pro version).
- Structural Code comparison and a more salesy view here.
- Keyboard Shortcuts
Super useful for keyboard wizards like me
- Version Control Systems Integration and here. Starting to wonder why they’ve got so much duplicate content.
This will get Code Compare integrated with your development. Highly recommended if you want to get the most out of Code Compare.
- Windows Explorer Integration
One of my favorite features.
- Code Compare discussion forum
- Devart has a UserVoice site for Code Compare feature suggestion
Nothing is perfect
I see no point in rehashing the already well-documented feature list on Code Compare’s website. 99% of the time, it does what it’s supposed to do, and it does it very well.
Along the way, I’ve taken note of a few things to consider when deciding if Code Compare is the right tool for you. I’m also hoping Devart will see this and step up their game a bit.
- Code Compare has a search feature, but it only looks at the content inside files. I sometimes want to find a file by name. Resharper does this very well with their CTRL+T feature.
- It can be hard to see how blocks line up from left to right when there are a lot of lines on the screen.
I would love to see a highlight effect when you hover with your mouse over a block of code or one of those lines. Highlighting the block and the line as you navigate the changes would clarify what Code Compare is trying to convey.
- It would be great if Code Compare would let me select a subset of a block and copy it to the other side. In the screenshot below, I’ve selected the first six lines within a block that I want to copy to the right. Code Compare seems to know what I want to do judging by the glyphs I pointed out with the red arrow. However, clicking the tiny button to copy that selection to the right still copies the entire block, not the particular selection I made.
The only workaround is to copy those six lines to the clipboard and paste them on the other side.
- And speaking of those glyphs; Look how small they are! They’re so tiny that trying to click them can be frustrating.
- While Code Compare is incredibly powerful, it falls short of having every feature that some other code comparison tools have. Namely BeyondCompare, WinMerge, and windiff (yes, it still works). In all fairness, P4Merge has a few tricks up its sleeve even.
- By far the worst thing about Code Compare is that Devart has placed the product in maintenance mode. In other words, they’re not actively working on that product. Their developer team is working on other products, but they do plan on adding VS 2017 support.
- This isn’t a complaint, but, for whatever reason, Devart has had a difficult time getting Code Compare listed on Wikipedia’s Comparison of File Comparison Tools. I’ve witnessed it myself. Devart added Code Compare and it their entry was almost immediately removed. I tried adding it back and got flagged as a spammer on Wikipedia.
Please, tell me I’m wrong
If it’s not completely obvious, I’m relatively new to 3rd party diff tools. Did I neglect to mention your favorite Windows diff tool? Have I been fair with my review? Should I review another diff tool?
Diff tools ain’t hard, bro — I’ll master all of them if I have to.