WinMerge is an open source file differencing and merging tool, particularly useful for developers.
At its simplest you can use the program to compare two text files, visually highlighting the differences so it's easy to see what's changed. (Support for Unicode, and Windows, Unix and Mac text file formats mean it should work with just about any regular text file.)
WinMerge also includes a capable editor, with syntax highlighting, line numbers, word wrap and more.
The program is able to compare entire folders of files, too, making WinMerge ideal for identifying what's changed between versions of a project. And it can then merge these modifications with other files, updating them for you as required.
An excellent tool that helps you track and control changes across the versions of a software project