Merge

Use Modify|Merge to merge changes from another source branch to the selected file/directory.

Select Trunk (Pro Only) to merge from the main trunk. Select Branch or Tag (Pro Only) and enter the branch or tag name to merge changes from a branch or tag. Select Other URL to merge from an arbitrary URL, specifying the corresponding repository and Path.

Use All Revisions to merge all those revisions which have not yet been merged from the selected location. SmartSVN will detect them based on the present merge tracking information.

Example

You will typically use this option when working with a feature branch to keep it in sync with the trunk.

Use Revision Range to manually specify multiple (ranges of) revisions to be merged from the selected location. SmartSVN will detect whether certain revisions of the specified ranges have already been merged and avoid to repeatedly merge them. Single revisions are just specified by their revision number while ranges starting at start (inclusive) and ending at end (inclusive) are specified by start-end. Multiple revisions resp. ranges can be specified by separating them by a colon ( ,). Instead of entering the revisions manually, you can choose them from the revision browser. The revision browser will also display those revisions which have not been merged by a green arrow.

Example

You will typically use this option when working with a release branch to get only bugfix revisions from the trunk to this branch.

Select Reverse merge to reverse the changes between the selected revisions. Internally, this is achieved by swapping the start and end revisions.

Advanced options

By default, merging takes the ancestry into account. This means, that merging does not simply calculate (and merge) the difference between two files which have the same path, but also checks if both files are actually related. For the typical merging use cases, this behaviour leads to the expected results and it is also required for the merge tracking to work. You can switch this behaviour off by selecting Ignore ancestry, however this option is not recommended unless you have a good reason to use it.

Deselect Recurse into subdirectories to merge only changes to the selected directory/file itself but not it's contained files, etc. In general it's recommended to keep Recurse into subdirectories selected.

With Record only no files will be touched during the merge, but only the Mergeinfo, will be adjusted correspondingly, so the core merge tracking mechanisms consider the revisions as merged. This option can be useful to 'block' certain revisions from being actually merged.

By default merging will stop when it's required to delete locally modified files, because they have been removed in the merge source. You can switch off this safety check by selecting Force deletion of locally modified files, if necessary.

Close the dialog with Merge to immediately perform the merge to the selected directory/file of the current working copy. Alternatively you may choose to Preview (Pro Only) the changes which the merge will bring, for details refer to the Merge Preview.

Tip

You can choose to keep the auxiliary merge files even for non-conflicting files in the Working CopyProject Settings.