OBIEE - Merge Repository (SCM)

> Reporting and Data Access Tools > Oracle Business Intelligence (OBIEE/Siebel Analytics) > OBIEE - BI Server (OBIS|nqsserver|nqs)

1 - About

The Oracle BI repository development process adheres to the classic Software Configuration Management (SCM) process, which utilizes a three-way merge to manage concurrent development.

The merge process involves three repositories:

  1. The (Original|Received|Master|Parent) repository. The repository that you received before changed. You must keep it preciously unchanged.
  2. The Modified repository. The repository that contains the customizations you made to the original repository.
  3. 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.

Advertising

3 - 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).

To simulate a two-way merge (with no parent), you use as original repository a blank repository.

4 - 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.

4.1 - 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).

If the two repository are identical, it's not needed to continue the process. You're merge file is your modified repository.

Advertising

4.2 - Reconciliation

You must now select the modified file. The merge program search some possibles conflicts.

4.2.1 - 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.

4.2.2 - 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
Advertising

4.3 - 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

5 - Support

5.1 - 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.

6 - Reference