Resolving Namespace Conflicts

Kinds of Namespace Changes

Resolving a "Rename" Conflict

Resolving a "Move" Conflict

NOTE: This topic discusses conflicts that can occur when two developers change the pathname of an element. The same kind of conflicts can occur when two developers change the target element an element link (element-link element) An element whose contents is a pointer to another element, which must be in the same depot. The target element can be a directory element, a file element, another element link, or a symbolic link. or the target pathname of a symbolic link (symbolic-link element) An element whose contents is a pathname. The pathname can point to AccuRev data (that is, a location inside a workspace) or non-AccuRev data.. The same dialogs appear in both kinds of conflict situations.

Kinds of Namespace Changes

AccuRev distinguishes between these two kinds of namespace changes to an element (file, directory, or link):

cmds.java --> commands.java

cmd_intf/commands.java --> cmd_intf/utils/commands.java

Notes (click to view):

In a parallel development environment, namespace changes can overlap Version X, in a workspace or stream, has '(overlap)' status if the parent stream's current version of the element contains changes that are not reflected in version X. (That is, the parent stream's version is not an ancestor of version X.) Such a version cannot be promoted to the parent stream; the user must create a new version with a merge operation, combining version X with the parent stream's version. The new, merged version can then be promoted. Similarly, an overlap can exist between the versions in two dynamic streams. See deep overlap. in the same way as content changes. For example, you and a colleague might rename the same file in your workspaces:

cmds.java --> commands.java

cmds.java --> all_commands.java

If your colleague promotes his change first, then the file will get (overlap) status in your workspace. Before you can promote the file, you must use the Merge command to resolve the namespace conflict.

In general, your work on a file element can overlap with a colleague's work in three ways:

Any combination of these kinds of changes is possible. AccuRev first prompts you to resolve the namespace conflicts, if any, as described below. Then, it passes control to the Merge tool (or another tool that you've configured), to perform the content merge.

Resolving a "Rename" Conflict

A namespace conflict of the rename kind occurs when two versions' simple names differ from the simple name of their closest common ancestor (of two versions of an element) The most recent version that is an ancestor of two specified versions. Used in a merge operation to minimize the amount of work required to combine the contents of the two specified versions. See merge, version graph. (and also differ from each other).

AccuRev allows you to resolve the conflict by taking any of the three simple names.

 

 

 

 

 

Resolving a "Move" Conflict

A namespace conflict of the move kind occurs when two versions are located in different directories than their closest common ancestor (of two versions of an element) The most recent version that is an ancestor of two specified versions. Used in a merge operation to minimize the amount of work required to combine the contents of the two specified versions. See merge, version graph. (and also different directories from each other).

AccuRev allows you to resolve the conflict by choosing any of the three parent directories as the file's location.

Notes (click to view):