Merge

Combines two versions of an element, producing a new version in your workspace (recorded as a Keep transaction). Typically, you need to merge when you and another team member both modify the same element, and your colleague Promotes her changes to the common backing stream before you do. (This command is the equivalent of Resolve in other source code management terminologies.)

If the element type is binary, merging amounts to picking your own version or the backing-stream version. AccuRev does not support combining the contents of binary files.

If the element type is text, the versions’ contents are merged with an external program, by default, AccuRev's own Merge tool, which uses a three-way merge algorithm. You can configure another merge tool, using the Tools > Options command. See Setting AccuRev Options.

A merge might be required on the namespace level instead of, or in addition to, the content level. This occurs when the file or directory has been renamed or moved, both in your AccuRev workspace / Visual Studio project and in the backing stream version. The Merge command has you choose which namespace change to use. You can also choose to reject both changes, and use the element’s “original” name in the common ancestor version.

Note: After a namespace-level merge in which you choose not to retain the name in your workspace, the project file must be updated to reflect the name change. In many cases, you can Update your workspace to bring in a new version of the project file that contains the name change. If not, use Visual Studio's Delete command to remove the old name from the project file, then use Add > Existing Item to include the renamed item in the project.

Another special case occurs if an item has (defunct) status in your workspace. (You performed a Visual Studio Delete, which triggered an AccuRev Defunct.) A dialog box appears, in which you can undefunct the item.

This enables you to change your mind about deleting it, and incorporate the changes in the backing-stream version instead. Choosing Purge performs a Revert to Backed Version command, which discards all your changes to the item, including the Delete/Defunct. If you really want the item to be removed from the project:

  1. Choose Purge.
  2. Update your workspace.
  3. Delete the item again and allow AccuRev Plug-In for Visual Studio PE to Defunct it.
  4. Promote the (defunct) item to the backing stream.