Merge tool for c# code
Can anyone recommend a merge tool that's specifically designed for merging C# code? The features I'm after:

 - Can identify code constructs (classes, methods, ...)
 - Can detect reorders of those constructs
 - Ignore reorder-only differences
 - 3-way merge
 - Compilation errors highlighted on-the-fly in the result pane. 

Basically, I'm looking for a tool that's much more specific than classic file merge tools like Winmerge. The problem with general-purpose merge tools is that they detect changes line by line which makes it extremely hard to identify blocks of code that has been moved around but that are still perfectly valid, and more importantly, to identify compilation errors in the result.

As a side note, I wish the built-in merge tool in VS 2010 was specific for merging source code and not yet another general purpose text file merge tool...
Merge tool for c# code
===

Can anyone recommend a merge tool that's specifically designed for merging C# code? The features I'm after:

 - Can identify code constructs (classes, methods, ...)
 - Can detect reorders of those constructs
 - Ignore reorder-only differences
 - 3-way merge
 - Compilation errors highlighted on-the-fly in the result pane. 

Basically, I'm looking for a tool that's much more specific than classic file merge tools like Winmerge. The problem with general-purpose merge tools is that they detect changes line by line which makes it extremely hard to identify blocks of code that has been moved around but that are still perfectly valid, and more importantly, to identify compilation errors in the result.

As a side note, I wish the built-in merge tool in VS 2010 was specific for merging source code and not yet another general purpose text file merge tool...