xMerge Add-on: Merging Renamed and Moved Files

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

xMerge add-on

The diagram illustrates a common use case: a file (green) has been moved in trunk after a branch has been created and subsequently has been modified. Because it's a release branch, the move (restructuring) itself shall not be taken to the branch, but only the modification shall be merged. This gets cumbersome with SVN's default merge, because every moved file has to be manually merged. xMerge can identify the moved files in source and target and hence automate the merge.

  • Evaluate xMerge and see how it can support you when 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.
  • Check the reference for more details and known limitations.

xMerge in action

xMerge is integrated into SmartSVN's merge preview giving the user perfect control over the merge result.

xMerge add-on

A rather sophisticated situation, 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 templ has been renamed to templates which affects many files and should not be merged. To make confusion perfect, templ/search.html has been renamed to templ/search-output.html in the branch.

xMerge identifies the associated files and we just 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 taken to the branch by applying these changes to search-output.html and storing the result as search-table.html. The Files table previews the result — a clean, minimal backport of our feature.

Evaluate xMerge

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

xMerge add-on requires SmartSVN 6.5.3 or later. If you have already a Professional license, you will be put back into demo mode, hence we recommand to have 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 area.

Your Name:
Your E-mail-Address: