The Oracle BI repository development process adheres utilizes a three-way merge to manage concurrent development.
The merge process involves three repositories:
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:
The article below explains how to merge manually (ie outside of the MUDE) in a full repository merge mode.
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).
The merge process involves three steps :
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).
If the two repository are identical, it's not needed to continue the process. You're merge file is your modified repository.
You must now select the modified file. The merge program search some possibles conflicts.
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.
If some conflicts appear, you must choose an action between :
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.
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 |
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
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.