xMerge Add-on: Merging Renamed and Moved Files

If files in branches have been moved or renamed, merging with SVN can quickly get cumbersome. The xMerge ("cross-merge") add-on fixes this shortcoming and assists you in merging moved or renamed files automatically and safely.

xMerge add-on

The diagram illustrates a common use case: After a branch has been created, a file (green) in trunk is first moved and then modified. Since the branch is a release branch, only the modification should be transferred to the branch, but not the move operation. This gets cumbersome with SVN's default merge, because every moved file has to be merged manually. xMerge on the other hand can identify the moved files in source and target and hence automate the merge.

  • Evaluate xMerge and see how it helps you with merging

Capabilities

xMerge works by analyzing the repository's history and identifying files in the merge source and target using SVN's copy-from information.

  • Files are correctly identified even after an arbitrary number of moves or renames.
  • Files moved in the merge source as well as in the merge target can be identified.
  • copy-from information can be mapped from source to target, yielding more appropriate log histories of a file.
  • See the relevant manual section for details and known limitations.

xMerge in Action

xMerge is integrated into SmartSVN's merge preview, thus giving you full control over the merge result.

xMerge add-on

A rather complex scenario, showing the full power of xMerge: We are going to backport a single feature from trunk to a release branch. In the trunk, a directory tmpl has been renamed to templates, which affects many files and should not be merged. Just to add a little more confusion, tmpl/search.html has been renamed to tmpl/search-output.html in the branch.

xMerge identifies the associated files and we simply have to specify the desired resolution: For instance, search-table.html has been copied from search-result.html in the trunk. With the currently selected option, changes of search-table.html (compared to search-result.html) will be transferred to the branch by applying these changes to search-output.html and storing the result as search-table.html. The Files table shows a preview of the result — a clean, minimal backport of our feature.

Licensing

xMerge is licensed per-company (not per-user), for a fixed price. This means once you have licensed the add-on, all of your licensed SmartSVN users are eligible to use the xMerge functionality. You can also purchase xMerge after having purchased SmartSVN.

Evaluate xMerge

To see and test how xMerge can help you, you can request a 31 days evaluation license-key below.

The xMerge add-on requires SmartSVN 6.5.3 or later. If you already have a Professional license, installing xMerge will downgrade SmartSVN to demo mode, hence we recommend using a second, temporary installation of SmartSVN to run the xMerge-trial: On Windows, use the Portable bundle, on other operating systems set smartsvn.home to a new, temporary SmartSVN configuration folder.

Your Name:
Your E-mail-Address: