Using Siebel Tools > Using Workspaces in Siebel Tools > Using Workspaces in Siebel Tools >
Detecting Conflicts in Workspaces and Applying Resolutions
In a development environment where multiple users work in parallel making configuration changes concurrently in their own private workspaces, conflicts might arise when the same objects and attributes are modified by different users in their own private workspaces, and then the changes from these users are delivered to the main branch. These situations often lead to non-trivial merges because of the conflicting changes between different users. For workspaces, the system detects the possibility of conflicts prior to workspace delivery. If conflicts or errors are found, the system displays the issues along with the default resolutions. You must review the conflicts and apply the resolutions to resolve the issues. In other words, during the rebase workspace process, the system enables you to:
- Identify the conflicts by viewing the conflict flags on the attributes. Notice that some conflicts must be explicitly resolved before you can submit the workspace for delivery again.
- Identify the errors by viewing the status message of the objects or attributes.
- View the status message that describes the error or conflict in details for each object or attribute.
If the system cannot resolve the conflict or the delivery process encounters an error while merging the changes, an error message appears. Although an attempt is made on all objects, the overall delivery process fails even if a single error is encountered. NOTE: Overriding the default resolutions is only permitted while the status of rebase is Pending Resolution. After the status changes to Finished, modifications in the Merge Conflicts dialog box will not be applied.
TIP: For further analysis on errors for Siebel Tools and the Mobile Web Client, see the log file under Siebel/log: WS_REBASE_<wsname>_<rebase attempt number>.log. For Siebel Web Client setup of Web Tools, the log file is available in the standard Siebel log with the minimum loglevel2.
Conflicts and errors can be broadly categorized as:
- Attribute-level conflicts and errors.
The default resolutions for the attribute conflicts can be overridden by selecting the Override option. You must select the Override option with caution because you might overwrite other users' changes that were already checked into the MAIN workspace. If you select the Override option by mistake, then you can clear it to resolve the issue.
Errors can happen on attributes when the merge process is unable to set the correct value. Common errors are when there are inconsistencies in the repository and a foreign key is missing.
You can analyze the error further by viewing the appropriate log files.
- Object-level conflicts and errors, which are name conflicts, object inactive conflicts, and index violation errors.
- Name Conflicts
A name conflict occurs when there are two different objects of the same type that have the same combination of name and parent ID. A potential violation of user key is detected as a result of the rebase operation, and the merge process selects a default resolution of renaming the object that belongs to the child workspace by appending the string -[Rebase]. Both object and name attribute are marked with a conflict flag in the Merge Conflicts dialog box.
If a name conflict is not resolved, then subsequent delivery fails by identifying the system-generated name. This conflict cannot be resolved by selecting the Override option, but you must finish the rebase process and resolve it in either one of the two methods described in this example:
- Object Inactive Conflicts
An object inactive conflict occurs when the target workspace being rebased has a change to an object that is inactivated in the source workspace. Even if the source workspace has an inactive parent object, this conflict is still alerted to let users know that the change that is made in the workspace will not be applied at runtime because either this object or its parent is inactivated.
Users can either ignore this conflict or resolve this conflict by checking the Override option for the Inactive attribute.
For example:
- Index violation errors
An index violation error conflict occurs when there are two different objects of the same type having the same combination of contents. A potential violation of the index is detected as a result of the rebase and the merge process cannot select any resolution. Hence the system displays an error on the object and fails the rebase process.
Users must fix this error either by manually modifying the fields involved in the index or by performing the RevertObject operation on the object (on a single version or the entire workspace). This fix ensures that there is no longer a violation and then users can run the rebase process again.
For example:
To view the merge conflicts and resolutions
- In the workspace dashboard, select the Workspace menu and then select the Merge Reports option.
The Merged Workspaces pane appears with the following sections:
- The Merged Workspaces section displays the status of merge, resultant version, base version, From version, and To version of the merge process.
- The Object Differences section displays the object name, object type, top-level parent name and type, and the status of the selected object after the merge process is completed.
- The Attribute Differences - Critical Conflicts section displays the attribute information including the workspace resolution, base version value, To and From version values, conflict, override, and so on.
- (Optional) Select the Override flag to override the default workspace resolution.
- Click the Finish button to complete the merge process.
Alternatively, click the Cancel button to cancel the merge process.
|