You use two tools to resolve conflicts:
The Resolve layout of the Transactions window
TeamWare Merging
The Resolve layout of the Transactions window facilitates resolving conflicts detected during Bringover Update transactions. The Resolve transaction coordinates the merging process, acting as intermediary between you and TeamWare Merging.
When Configuring detects a conflict during a Bringover Update transaction, it does the following:
Merges new deltas from the parent into the SCCS history in the child
Enters the file's path name in the child's Codemgr_wsdata/conflicts file
By default, Configuring automatically processes sequentially the list of files from the File List pane. After you resolve a conflict, Configuring automatically begins to process the next file in the list. If you want to change the behavior so that it individually processes only files that you select explicitly, deselect the Auto Advance checkbox in the Resolve pane of the Tool Properties dialog box.
Conflicts need not be resolved immediately. You can continue to make changes and create new deltas in conflicted files in the child workspace. New deltas are created on a branch; when you finally resolve the conflict, the latest delta is the one merged with the version brought over from the parent. Conflicts must be resolved before you can put back the files to the parent.
When Configuring creates the new delta in the child SCCS history file, it includes the following standard comment:
Merged changes between workspaces x and y |
By default, Configuring does not prompt you for a comment to append to its comment. If you want to be prompted for comments that are appended to the standard comment, select the Prompt for Checkin Comments checkbox in the Resolve pane of the Tool Properties dialog box.
To resolve conflicts in a workspace:
Double-click on the icon of a workspace that contains conflicted files.
The Resolve layout of the Transaction window opens with the names of its conflicted files displayed in the File List pane.
Select a file in the File List pane and click Merging.
Configuring starts Merging and begins to process the list of files in the File List pane. For each file in the list, Configuring extracts the parent delta, the child delta, and the common ancestor from the SCCS history file and passes their path names to Merging. The Merging window opens with the files loaded and ready for merging.
Use Merging to resolve the differences between the parent and child versions of the file.
See Chapter 13, Starting Merging and Loading Files" for more information.
Save the file in Merging.
After you use Merging to resolve differences between the parent and child versions of the file, Configuring creates a new delta in the child SCCS history file and removes the file name from the conflicts file. The new delta contains the merged result you created using Merging.
This section is a brief introduction to Merging as used with Configuring. For a more detailed description, see Chapter 13, Starting Merging and Loading Files."
Merging displays two text files (the parent and child deltas) for side-by-side comparison, each in a read-only pane (see Figure 4-1). Beneath them is a pane that contains a merged version of the two files. The merged version contains selected lines from either or both deltas and can be edited to produce a final merged version.
Each delta in each of the top panes is shown in comparison to the common ancestor delta:
The child delta is displayed in the left pane labeled Child
The parent delta is displayed in the right pane labeled Parent
The common ancestor is the delta from which both the parent and child deltas are descended. This arrangement permits you to make a three-way comparison--each delta to the common ancestor, and each delta to the other.
Lines in each descendant are marked according to their relationship to the corresponding lines in the common ancestor:
If a line is identical in all three deltas, then no glyph appears.
If a line is not in the ancestor but was added to one or both of the descendants, then a plus sign glyph (+) appears next to the line in the delta where the line was added.
If a line is present in the ancestor but was removed from one or both of the descendants, then a minus sign (-) appears as a placeholder in the delta from which the line was removed.
If a line is in the ancestor but has been changed in one or both of the descendants, then a vertical bar glyph (|) appears next to the line in the delta where the line was changed.
When Merging discovers a line that differs between either of the two deltas and the ancestor, it marks with glyphs the lines in the two deltas and also in the automatically merged file. Together, these marked lines are called a difference. While Merging is focusing on a difference, it highlights the glyphs.
The difference on which Merging is focusing at any given time is called the current difference. The difference that appears immediately later in the file is called the next difference; the difference that appears immediately earlier in the file is called the previous difference.
While focusing on a difference, you can accept a line from either of the original deltas, or you can edit the merged version by hand. When you indicate that you are satisfied with your changes (by clicking on a control panel button), the current difference is said to be resolved. After a difference is resolved, Merging changes the glyphs that mark the difference to outline (hollow) font. Merging then automatically advances to the next difference (if the Auto Advance property is on), or moves to another difference of your choice.