XDiff and XMerge

XDiff highlighting a refactor with moved code and some changes inside the moved fragment.

Detect code that was moved

Xdiff and Xmerge ("cross-difference" and "cross-merge") identify fragments of code that have been moved and link them for easy navigation. They use a similarity algorithm that identifies fragments of code that have been modified within a user-specified threshold. Even if the code was moved and then changed, it's still detected as the same block of code.

When Xdiff compares two revisions, it draws a link between the code fragments. You can navigate between the fragments or display the differences between the fragments in a separate window.

Merge refactored code seamlessly

Xmerge can detect code that was moved by one developer and modified in the original location by another. The moved code is then merged with the changes in a separate merge window, easing the process and often resolving this complex scenario automatically.

These two blog posts on Xmerge have additional information and include screencasts:

Xdiff and Xmerge