Edit online

Merge Options

Here is the list of options that can be used when merging:

Figure 1. Merge Wizard - Advanced Options
  • Depth (This option is applicable only for directories) - sets the depth of the merge operation. You can specify how far down into your working copy the merge should go by selecting one of the following values:
    • Current depth - Obeys the depths registered for the directories in the working copy that are to be switched.
    • Recursive (infinity) - Merges all the files and folders contained in the selected folder. This is the recommended depth for most users, to avoid incomplete merges and subtree mergeinfo.
    • Immediate children (immediates) - Merges only the child files and folders without recursing subfolders.
    • File children only (files) - Merges only the child files.
    • This folder only (empty) - Merges only the selected folder (no child files or folders are included).
    Note: The depth term is described in the Sparse checkouts section. The default depth is the current depth of the working copy item receiving the merge.
  • Ignore ancestry / Disable merge tracking - Changes the way two items are merged if they do not share a common ancestry. Most merges involve comparing items that are ancestrally related to one another. However, occasionally you may want to merge unrelated items. If this option is not selected, the first item will be replaced with the second item. In these situations, you would want the merge to do a path-based comparison only, ignoring any relations between the items. For example, if two different files have the same name and are in the same relative location, deselecting the option replaces one of the files with the other one, and selecting it merges their contents.
    Note: If the URL of the merge source belongs to a different repository than the URL of the target working copy item (the one receiving the changes), this option is selected automatically (and you cannot change this). This is because the Subversion client cannot track changes between different repositories.
  • Force deletion of modified or non-versioned items, if necessary - If not selected, when the merge operation involves deleting locally modified or non-versioned items, it will fail. This is done to prevent data loss. This option is only available if there are uncommitted changes in the working copy.
  • Only record the merge (block revisions from getting merged) - Available when the Ignore ancestry / Disable merge tracking option is not selected. It enables a special mode of the merge operation that just records it in the local merge tracking information, without actually performing it (does not modify any file contents or the structure of your working copy). You might want to select this option for two possible reasons:
    • You made (or will make) the merge manually, and therefore need to mark the revisions as being merged to make the merge tracking system aware of them. This will exclude them from future merges.
    • You want to prevent one or more particular changes from being fetched in subsequent merges.
  • Ignore line endings - Allows you to specify how the line ending changes should be handled. By default, all such changes are treated as real content changes, but you can ignore them if you select this option.
  • Ignore whitespaces - Allows you to specify how the whitespace changes should be handled. By default, all such changes are treated as real content changes, but you can ignore them if you select this option.
    • Ignore whitespace changes - Ignores changes in the amount of whitespaces or to their type (for example, when changing the indentation or changing tabs to spaces).
      Note: Whitespaces that were added where there were none before, or that were removed, are still considered to be changes.
    • Ignore all whitespaces - Ignores all types of whitespace changes.
  • Test merge - Performs a dry run of the merge operation, allowing you to preview it without actually performing the merge. In the Console view you will see a list of the working copy items that will be affected and how they will be affected. This is helpful in detecting whether or not a merge will be successful, and where conflicts may occur.