ID:22335
 
Anyone who works on a project on more than one computer has run into a situation where they accidently modified an old obsolete version of their code.

I did that this morning with Darke Dungeon, doing a couple hours work and then remembering that I hadn't extracted the zip file containing my latest updates. With over 30,000 lines of code in 88 files across multiple subfolders, I didn't look forward to checking the modification dates and doing a line by line comparison of the touched files. I wished I had a CVS repository for the thing.

Thank the higher power(s) of your choice for Google. After a page or so of mediocre crippleware I found a real gem in Compare and Merge. It will examine your folders to find which text files have differences. Then you can examine the files side by side with synchronized scroll windows and a color coded bar showing you where the differences are and copy/delete/edit the content of each file. A single drag and drop (or select and click) will transfer changes from one file to the other. It is a truly marvelous piece of shareware with a generous 50 comparisons before you have to register. Frankly if you need to use it more than 50 times, I think you'll find it well worth the price. (I used 10 of my 50 freebies on the Darke Dungeon problem this morning.)

For those of you who don't believe anything is worth the price unless it's free, I also found DiffDaff. This freeware does all the comparisons and difference highlighting with side by side comparisons that Compare and Merge does, but you can't edit the files from within DiffDaff and it doesn't have that oh-so-handy color bar showing you where the diffs are. It's great for freeware (and far better than most of the crippleware I went through before finding it) but those two missing features make Compare and Merge my personal preference.

I welcome reviews of similar packages. I'd love to see if there is anything better than Compare and Merge before I buy the package.
I use the built-in Tortoise Merge that comes as part of the Tortoise SVN package. Even though it comes as part of a shell-extension SVN client, it's not limited to working on SVN repositories -- you can run it just like any other program and use it to compare your various files, and it has excellent features to allow merging. It uses a split-screen top pane so you can see a line-by-line comparison of the "working" and "source" copy, with a bottom pane showing what the end result would be. You can right-click and choose "Use working" or "use source" on any conflicted area and it'll automatically pop in the appropriate text for you into the final copy. Once you've gotten the text you want, hit "Resolve" and your working copy will be updated. And, of course, it's free! Free, free, free!

There's something to be said about the simple elegance of diffutils though. =)
I'm quite interested in making a system on Delphi or C# which automatically compares the file modification dates, but a friend of mine has been using windows file attributes in Delphi it don't look pretty.
The only problem I've had with this is where I forget to copy TitanNet from the school PCs to my pen drive before I leave for half term, so I end up either having to rewrite a system which works (my rewrite doens't at the moment) or waiting for a week before getting the modifications back.
I've had good results with CSDiff: http://www.componentsoftware.com/Products/CSDiff/index.htm

I don't know how it stacks up to the programs you mentioned, but it is free!
Shadowdarke says:
"I wished I had a CVS repository for the thing."

*ahem* - might i remind you that your digitalBYOND account comes with darcs - http://abridgegame.org/darcs/ - pre-installed. '...a free, open source source code management system.'

:p
Jtgibson wrote:
There's something to be said about the simple elegance of diffutils though. =)

diff -y, baby.