[util] WinMerge
WinMerge is your basic text file diff / merge tool. It's like WinDiff (if WinDiff handled merging), BeyondCompare, Araxis Merge, etc, but it's free and the development team is on fire. It's an open source project on SourceForge.
WinMerge has always had a really nice, intuitive navigation system (merge and move to next diff, all right, all left, etc.), but the latest builds have added recursive searches (search all subdirectories), comparison within Zip files[1], shell integration, Unicode and multi-language support, and more.
You can write custom filters, too. For instance, this filter ignores .cs, .vb, .resx files (and their ilk), which makes it really easy to merge files from a local dev box to a server:
## This is a directory/file filter for WinMerge
## This filter lets through only files ASP.NET developers care about
name: ASP.NET Devel
## This is an exclusive filter
## (it lets through only matching files)
def: exclude
## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with " ##" and extend to the end of the line)
f: \.xml$
f: \.xlst$
f: \.dtd$
f: \.html$
f: \.htm$
f: \.css$
f: \.gif$
f: \.bmp$
f: \.jpg$
f: \.png$
f: \.js$
f: \.dll$
f: \.aspx$
f: \.asmx$
f: \.ascx$
f: \.config$
d: \\*$ ## Subdirectories
## This filter lets through only files ASP.NET developers care about
name: ASP.NET Devel
## This is an exclusive filter
## (it lets through only matching files)
def: exclude
## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with " ##" and extend to the end of the line)
f: \.xml$
f: \.xlst$
f: \.dtd$
f: \.html$
f: \.htm$
f: \.css$
f: \.gif$
f: \.bmp$
f: \.jpg$
f: \.png$
f: \.js$
f: \.dll$
f: \.aspx$
f: \.asmx$
f: \.ascx$
f: \.config$
d: \\*$ ## Subdirectories
I've been using the latest features in experimental builds through the summer, but since they're at a Release Candidate build I feel good about recommending it to the general public (or, I guess, that segment of the public that cares about text differencing and merging. Sorry, Grandma!).
[1] Requires you install 7-Zip. 7-Zip's interface looks like a Windows 3.1 refugee, but you can just install it and never use it and WinMerge will do the Zip compare thing.