About
The Oracle BI repository development process adheres utilizes a three-way merge to manage concurrent development.
The merge process involves three repositories:
- The (Original|Received|Master|Parent) repository. The repository that you received before changed. You must keep it preciously unchanged.
- The Modified repository. The repository that contains the customizations you made to the original repository.
- The Current repository. Generally, the repository that is in production and where some customisations could have been performed by other people.
In a multiuser environment (MUDE), Developers check out the file and make changes locally. Then, these changes are automatically reconciled and merged into the master repository.
Since 11g, you have two options:
- a patch merge type
- equalize. Equalizing before merging repositories prevents unintended renaming during the merge.
The article below explains how to merge manually (ie outside of the MUDE) in a full repository merge mode.
Type of merge
Two scenarios exists:
Type of merge | Common Parent / Original Repository present ? | Description |
---|---|---|
two-way | No | Import objects from different repositories |
three-way | Yes | Promotion Merge from one environment to another of a MUDE merge |
With no common parent, Conflicting object (object with the same name in the two repository) are treated as different. They are duplicated while merging or importing. A suffix #n is appended (where #n is a variable number).
Steps
The merge process involves three steps :
- Comparison between the Current repository and the Original Repository to find out your modifications
- Reconciliation (if necessary). You must decide which modifications occurs if the merge process is unable to find a solution between your modifications and other modifications.
- Merge. The last step where you just start the merge action.
Comparison
You must open the Current Repository, then choose from the menu File/Merge. Locate and select the original repository, the merge process must show you a list of all differences. (It perform a comparison).
Reconciliation
You must now select the modified file. The merge program search some possibles conflicts.
No Conflict
If you don't see any conflicts in the center table of the windows, you can click the stats button to view an overview of the merge decisions that will take place.
With Conflict: Decision
If some conflicts appear, you must choose an action between :
- Current. This type has no suffix. Selecting this type means that you want to leave the object in the current repository as is).
- Modified. This type can have an A (add), a D (delete), or an AR (after renaming) suffix.
AR means that the Modified version will be accepted but because it conflicts with another name in the repository, it will be renamed. For example, if both the Current and Modified repositories add the same object with the same name and the user chooses to accept both versions, both would be added and the object from the Modified repository would be renamed.
- Mix. The object was not added or deleted but at least one of its properties was modified. For example, you can select the choices for the properties.
In the example below, the name from a logical table have been modified in the modified repository and in the current repository. So, you must choose which one is the correct name.
Examples of the Results of Some Decision Choices
The following examples show the results of some decision choices when the current and modified repositories are different:
Description column | Your Decision | The Result |
---|---|---|
Added to Current | Current | keeps the addition in the current repository |
Added to Current | Modified (D) | deletes the added object from the current repository |
Deleted from Modified | Current | keeps the repository as is without deleting the object |
Deleted from Modified | Modified (D) | deletes the object from the current repository |
Deleted from Current | Current | keeps the repository as is without adding the object back into the current repository |
Deleted from Current | Modified (A) | adds the object back into the current repository |
Added to Modified | Current | keeps the repository as is without adding the object back into the current repository |
Added to Modified | Modified (A) | adds the object back into the current repository |
Merge
When you have answered to all decision, you can click on the Merge button to merge the modified repository and the current repository in an other repository.
You can see the merge log file in the same directory than the current repository. For instance : Current_sh.merge_log.csv
Support
Delete Failed
When you do an merge, you may get this error: “Delete Failed”. You may have objects with the same name. An equalize may correct the problem.