This chapter describes how to integrate Oracle Data Integrator (ODI) with external Version Control Systems (VCS). It provides information on how to set up VCS with ODI and step-by-step instructions to use the VCS features in ODI.
This chapter includes the following sections:
Populating a New ODI Repository from a Subversion Branch/Trunk
Populating a Restored ODI Repository from a Subversion Branch/Trunk
Adding Non-versioned ODI Objects to the Subversion Repository
Adding a Single Non-versioned ODI Object to the Subversion Repository
Restoring a Version Controlled ODI Object from its Previous Version
Restoring a Version Controlled ODI Object Deleted in ODI Repository
Viewing the Version History of a Version Controlled ODI Object
Comparing Versions of an ODI Object from the Version History Dialog
Comparing Versions of an ODI Object from the Version Tree Editor
ODI integrates with external Version Control Systems (VCS) to enable version control of ODI objects. You can store versioned copies of the ODI objects into an external VCS repository. Since, VCS relies on file-based storage, ODI objects are stored as XML files in the VCS repository.
Note:
Currently ODI supports only Apache™ Subversion®.To version control ODI objects using VCS, you need to configure a connection between the ODI repository and the VCS repository. Once the connection is configured, you can add unversioned ODI objects to VCS, retrieve older versions of ODI objects from VCS, and view the differences between two versions of ODI objects from within ODI.
You can add first class objects, for example, packages, mappings, variables, security objects, and topology objects, and container objects, for example, projects, folders, and model folders to VCS. When you add container objects to VCS, all its descendents are re-versioned if they are newer than the version in the VCS.
Following are some of the important advanced ODI VCS integration features:
Create full or partial tags for the consistent set of ODI objects in VCS, which can be used later for branching and deploying.
Populate a new or a restored ODI repository from a branch/trunk in the VCS.
Auto-version version controlled ODI objects as they are saved.
Encrypt (or decrypt) confidential information when exporting or importing ODI objects from or to the VCS repository.
AES Encryption support for cipher content in the ODI objects to be stored in the VCS repository.
Perform the following steps to select the VCS that you want ODI to use as the team versioning application.
To select a VCS to use with ODI:
Click Team >Select Versioning Application.
On the Select Version Control Management System dialog, select Subversion and then click OK.
Note:
Currently ODI supports only Apache™ Subversion®.On the Confirmation dialog, click Yes. The Disconnect confirmation dialog appears.
On the Disconnect confirmation dialog, click Disconnect to disable the Legacy Version Control System and to disconnect from the ODI repository.
Reconnect to the ODI repository. ODI will now use Subversion as the team versioning application.
You need to connect to the Subversion repository from ODI Studio. ODI provides the following types of authentication options when connecting to the Subversion repository:
To create an Subversion connection from the ODI Studio:
Click Team> Subversion> Edit Connection.
From the Authentication Type drop-down menu, select one of the following authentication types:
HTTP Basic Authentication
Subversion Basic Authentication
SSH Authentication
SSL Authentication
File Based Authentication
Based on the selected authentication type, different options are displayed in the SVN Connection dialog.
Set the required options and click OK.
For more information, see the following sections:
"HTTP Basic Authentication Options"
See "Guidelines for Choosing the Authentication Type".
The following tables describes the options specific to HTTP Basic Authentication.
Table 20-1 HTTP Basic Authentication Options
Option | Description |
---|---|
SVN URL |
Subversion repository URL. |
User |
User name for authentication. |
Password |
Password to connect to the Subversion repository. |
Use Proxy Server |
Select to use an HTTP or HTTPS proxy server. |
Host |
Proxy server to connect to the Subversion repository. |
Port |
Proxy server port. |
Proxy Server Requires Authentication |
Select to authenticate the proxy server. |
User |
User name to connect to the proxy server. |
Password |
Password to connect to the proxy server. |
The following table describes the options specific to Subversion Basic Authentication.
The following table describes the options specific to SSH Authentication.
Table 20-3 SSH Authentication Options
Options | Descriptions |
---|---|
Subversion URL |
Subversion repository URL. |
User |
User name for authentication. |
Password |
Password to connect to the Subversion repository. |
Private Key File |
Select to establish an SSH connection using SSH keys. |
Key File |
Path of the Private Key File. |
Passphrase |
Passphrase for the selected Private Key File. |
The following table describes the options specific to SSL Authentication.
Table 20-4 SSL Authentication Options
Options | Description |
---|---|
SVN URL |
Subversion repository URL. |
User |
User name for authentication. |
Password |
Password to connect to the Subversion repository. |
Enable Client Authentication |
Select to enable client authentication. |
Certificate File |
Path of the Certificate File. |
Passphrase |
Passphrase for the selected Certificate File. |
Perform the following steps to edit an existing Subversion connection.
To edit an Subversion connection:
Click Team> Subversion> Edit Connection.
Edit the options as required.
For more information, see the following sections:
"HTTP Basic Authentication Options"
Click OK.
You need to configure the Subversion specific settings in ODI. These settings include the working folder path and the merge working folder.
To configure the Subversion settings:
Click Tools> Preferences> ODI> User Interface> Versioning> Subversion.
Specify the Subversion Settings.
For more information, see "Subversion Settings".
Click OK.
The following table describes the options that you need to set on the Subversion Settings dialog.
Table 20-6 Subversion Settings Options
Options | Description |
---|---|
Working Folder Path |
The working folder contains artifacts exported from the Subversion repository to execute various version management operations like export, commit, restore, and so on. ODI replicates the same folder structure present in the Subversion repository while storing these artifacts in the working folder. |
Merge Working Folder |
This folder contains the ODI artifacts exported from the Subversion repository during the Merge operation. Note: ODI deletes the artifacts present in the merge working folder once the merge operation is complete. |
Perform the following steps to configure the Subversion repository with ODI.
To configure Subversion repository with ODI:
Click Team> Subversion> Configure.
Set the configuration options.
Fore more information, see "Options to Configure Subversion Repository with ODI".
Click OK.
Note:
After configuring the Subversion repository with ODI, you must disconnect from the ODI repository and connect again.The following table describes the options that are required to configure the Subversion Repository with ODI.
Table 20-7 Options to configure Subversion repository with ODI
Options | Description |
---|---|
SVN Repository Name |
Name of the existing Subversion repository. |
SVN Project Name |
List of the Subversion projects available in the Subversion repository. |
Create Default Project Structure |
Click to create a default project structure in the Subversion repository. For more information, see Creating a Default Subversion Project Structure. |
Select Trunk or Branch |
Select a trunk or an available branch. |
New Branch |
Click to create a new branch from a tag. |
Auto Version |
Select to enable auto versioning at the ODI repository level. |
VCS Key |
Select to create a VCS Key. The VCS key can be a minimum of 8 characters and a maximum of 100 characters long. |
Enter VCS Key |
Click to enter the VCS Key. |
You need to create a default project structure in the Subversion repository. This structure helps to identify the trunk, branch, and tag folders present in the Subversion project created in the Subversion repository.
To create a default Subversion project structure:
Click Team> Subversion> Configure.
Click Create Default Project Structure button.
Enter a name for the Subversion Project in the SVN Project Name field.
Enter a description in the Comments field.
Click OK.
You can populate a new ODI Repository with the ODI objects from a trunk/branch that exists in the Subversion repository.
To populate a new ODI repository from a Subversion trunk/branch:
Click Team> Subversion> Populate Repository from Branch/Trunk.
Click Yes on the Confirmation dialog.
View the Import Report and close the report.
Verify that the version controlled ODI objects are populated in the ODI Studio.
You can restore a new ODI Repository from the database backup and then populate the restored ODI Repository from a trunk/branch that exists in the Subversion Repository.
Note:
Only ODI VCS Administrators can populate a restored ODI Repository from a Subversion trunk/branch.To populate a restored ODI repository from a Subversion branch/trunk:
Create a new ODI repository using ODI Studio or Repository Creation Utility (RCU).
Restore the new ODI repository from the database backup.
Configure the restored ODI Repository with the last configured Subversion trunk/branch.
For more information, see "Configuring Subversion Repository with ODI".
Click Team> Subversion> Populate Restored Repository from Branch/Trunk.
Click Yes on the Confirmation dialog.
View the Import Report and click Close.
Verify that the version controlled ODI objects are populated in the ODI Studio.
ODI provides out-of-the-box generic profiles. These profiles contain a set of privileges to work with version management and version administration operations.
ODI includes the following generic profiles:
Designer
Contains a set of privileges to work with version management operations such as add a non version controlled ODI Object to the VCS, create a new version of a version controlled ODI Object, restore a version controlled ODI Object from one of its previous versions, etc. on all the design objects provided by ODI.
Security Admin
Contains a set of privileges to work with version management operations such as add a non version controlled ODI Object to the VCS, create a new version of a version controlled ODI Object, restore a version controlled ODI Object from one of its previous versions, etc. on all the security objects provided by ODI.
Topology Admin
Contains a set of privileges to work with version management operations such as add a non version controlled ODI Object to the VCS, create a new version of a version controlled ODI Object, restore a version controlled ODI Object from one of its previous versions, etc. on all the topology objects provided by ODI.
VCS Version Admin
Contains a set of privileges to work with version administration operations such as select the version control system to be integrated with ODI, configure ODI Repository with the Version Control System, create a label, merge development branch with trunk, etc. along with a set of privileges given to DESGINER, SECURITY ADMIN, and TOPOLOGY ADMIN profile.
A tag is identification text that you can assign to identify a set of consistent objects versions, or the entire repository in Subversion.
You can create a full tag from all the objects present in the branch or the trunk in the ODI repository.
This will enable you to create a consistent set of ODI artifacts in the Subversion Repository, which can be shared with other users who can create a new repository from a full tag.
To create a full tag in the Subversion repository:
Click Team> Subversion> Create Full Tag.
Specify the options on the Create Full Tag dialog.
In the Tag field, enter a name for the tag.
Verify the name of the Subversion branch or trunk.
Note: This is a read-only field.
In the Comments field, enter a description for the tag.
Click OK to create the tag.
You can create a partial tag from the subset of ODI artifacts present in the trunk or branch of the Subversion repository.
This will enable you to create a consistent set of ODI artifacts in the Subversion Repository, which can be shared with other users who can create a new repository from a partial tag.
To create a partial tag in the Subversion repository:
Click Team> Subversion> Create Partial Tag.
Specify the options on the Create Partial Tag dialog.
For more information, see "Create Partial Tag Options".
Click OK to create the tag.
See "General Tagging Guidelines".
The following table describes the options that you need to specify on the Create Partial Tag dialog.
Table 20-8 Create Partial Tag Options
Options | Description |
---|---|
Tag |
Name of the tag. |
Branch/Trunk |
Name of the branch or trunk to which ODI is configured. |
Include all security objects |
Select to include all security objects. |
Comments |
Log message, which describes the changes you are committing. |
Selected Objects |
Objects to be added. To add objects, drag-and-drop the supported objects from the navigator tree or search for an object using the Search option in the toolbar and add it. |
Dependent Objects |
Objects dependent on the selected object. |
You can create a new Subversion branch from a tag that exists in the Subversion repository.
To create a branch from a tag:
Click Team> Subversion> Create Branch from Tag.
Specify the options on the Create Branch from Tag dialog.
For more information, see "Create Branch from Tag Options".
Click OK. A success Information dialog appears.
Click OK.
See "General Branching Guidelines".
See "Branching Guidelines for Single Development Team".
See "Branching Guidelines for Parallel Development Teams".
See "Guidelines for Release Branches for Parallel Development Teams".
You need to specify the following options on the Create Branch from Tag dialog box.
The ODI Repository may get locked during the VCS Tag creation. You cannot make any changes to the ODI Repository in a locked state. Sometimes due to unexpected errors while Tag creation, the ODI Repository may remain in the locked state.
In such situations, you can run the OdiUnlockOdiRepository
tool to unlock the ODI Repository. For more information about running a tool from a command line, see section Using a Tool From a Command Line.
For more information about the OdiUnlockOdiRepository
tool, see section OdiUnlockODIRepository.
Note:
You must have VCS Administrator privileges to run the OdiUnlockOdiRepository command.You can add all or multiple non-versioned ODI objects to the Subversion repository.
To add non-versioned ODI objects to the Subversion repository:
Click Team> Subversion> Add Non-versioned Objects.
A list of all the non-versioned ODI objects is displayed.
Select the ODI Objects that you want to add to the Subversion repository.
Select multiple ODI objects or all ODI objects listed on the Add Non-Versioned Objects dialog.
In the Comments field, enter a description for the ODI objects that you are adding to the Subversion repository.
Click OK. A success Information dialog appears.
Click OK.
You can add a single non-versioned ODI object to the Subversion repository.
To add a single non-versioned ODI object to the Subversion repository:
Right-click the ODI object (example, folder, model, datastore, packages, etc.) that you want to add to the Subversion repository.
Select Version> Subversion> Add to VCS. The Add ODI Objects to Subversion dialog appears.
Note: The Add ODI Objects to Subversion dialog lists the parent ODI objects that need to be added along with the selected ODI object.
In the Comments field, enter a description for the ODI objects that you are adding to the Subversion repository.
Click OK. A success Information dialog appears.
Click OK.
Whenever you modify a version controlled ODI object, you can create a new version of it. You can create versions of both, the first class objects and the parent container objects. When you create version of a parent container object, all the child objects are also versioned.
To create versions of a version controlled ODI object:
Right-click the ODI object of which you want to create a version.
Select Version> Subversion> Create VCS Version.
Verify the information on the Create Version dialog.
When creating a version of a version controlled parent container object, information regarding the child objects are also displayed in the dialog. This information includes the Name, Type, Path, and if the child object was added, modified, or deleted.
In the Comments field, enter a description of the version that you are creating.
Click OK. A success Information dialog appears.
Click OK.
You can restore a version controlled ODI object from its previous version or revision in the Subversion repository.
To restore a version controlled ODI object from its previous version:
Right-click the ODI object that you want to restore from the Subversion repository.
Select Version> Subversion> Restore from VCS.
Specify the options on the Restore Object from Subversion Repository dialog.
For more information, see "Restore Object from Subversion Options".
Click OK.
If you choose to restore with merge, you need to perform additional steps that are mentioned in "Performing a Merge".
The following table describes the options that you need to specify on the Restore Object from Subversion dialog.
Table 20-10 Restore Object from Subversion Options
Option | Description |
---|---|
Name |
Name of the ODI object. |
Type |
Type of ODI object to be restored from the Subversion repository. |
Path |
Path of the ODI object present in the ODI repository. |
Select Version |
Click to access the Version Selection dialog and select a particular version of the ODI object present in the Subversion repository. |
Restore with Merge |
Select to restore an object using the Merge option. For more details about performing a merge, see "Performing a Merge". |
Restore child objects with Merge |
Select to restore an object along with its child objects using the Merge option. |
If you accidently delete a version controlled object in the ODI repository, you can restore it from the Subversion repository.
To restore a version controlled ODI object deleted in the ODI repository:
Click Team> Subversion> Restore Deleted Object.
The Restore Deleted ODI Object dialog appears.
Under Version Search Criteria, specify the criteria to search versions of the object in the Subversion repository.
For more information, see "Version Search Criteria".
Click Apply. All the versions of the object that are available in the Subversion repository are listed under Versions.
Review the details of each of the versions of the ODI object that are listed.
Select the version that you want to restore and click the Restore Object icon ( ).
See the Import Report to confirm if the object has been imported successfully and close the report.
Click Close on the Restore Deleted ODI Object dialog.
You can view the version history of a version controlled ODI object across trunk, multiple branches, and tags of the Subversion project in the Subversion repository.
To view the version history of an ODI object:
Right-click the ODI object whose version history you want to view.
Select Version> Subversion> Version History.
Under Version Search Criteria, specify the criteria to search the versions of the selected ODI object.
For more information, see "Version Search Criteria".
Click Apply.
Under Versions, all the versions of the selected ODI object that exist in the Subversion repository are listed.
Review the version history details for each of the versions of the ODI object.
Click Close.
You can compare versions of the ODI object using the steps mentioned in "Comparing Versions of an ODI Object from the Version History Dialog".
The following table describes the options that you need to specify on the Version Search Criteria dialog.
Table 20-11 Version Search Criteria Options
Option | Description |
---|---|
Branch/Tag/Trunk |
Select Branch, Tag, or Trunk depending on what the ODI repository is mapped to. |
Branch/Tag |
Select the appropriate Branch or Tag from the list. |
Date Range |
Select to enter the range of dates within which the version was created. |
Version Range |
Enter the first and last version to view all the versions within this range. |
Path |
Path of the ODI object in the ODI repository. |
Comments |
Enter the log message, which describes the changes that were committed in the selected version of the object. |
You can compare versions of an ODI object from the Version History dialog to see the difference between them. You can either compare two versions of an object in the Subversion repository, or compare one version of the object in the Subversion repository with the current object in the ODI repository.
To compare versions of an ODI object:
Right-click the ODI object whose versions you want to compare.
Select Version> Subversion> Version History.
Under Version Search Criteria, specify the criteria to search the versions of the selected ODI object.
For more information, see "Version Search Criteria".
Click Apply. All the versions of the selected ODI object that exist in the Subversion repository are listed under Versions.
Do one of the following:
To compare two versions of the object in the Subversion repository:
Select the two versions that you want to compare, click the Compare icon ( ), and then select Compare Selected Versions.
To compare a version of the object in the Subversion repository with the current object in the ODI repository:
Select the version that you want to compare with the current object in the ODI repository, click the Compare icon ( ), and then select Compare With Repository Object.
On the Version Compare Results dialog, view the differences between the two versions.
The Version Compare Results dialog provides icons to navigate through the differences, filter the compare results, change the display options (color coding), generate report, expand or collapse the nodes in the tree, and perform merge.
For more information, see "Icons on the Version Compare Results dialog".
(Optional) Perform a merge using the steps mentioned in "Performing a Merge".
Click Close.
The following table describes the icons that are available on the Version Compare Results dialog.
Table 20-12 Icons on the Version Compare Results dialog
Icon | Name | Description |
---|---|---|
Refresh |
Refreshes the results. |
|
Go to First Difference |
Jumps to the first difference. |
|
Go to Previous Difference |
Jumps to the previous difference. |
|
Go to Next Difference |
Jumps to the next difference. |
|
Go to Last Difference |
Jumps to the last difference. |
|
Coloring and Filtering |
Displays the Display Options dialog, where colors can be assigned to fields and objects. |
|
Reset all Filters |
Resets all filters to the default. |
|
Generate Report |
Generates the report. |
|
Expand All |
Expands all the nodes in the tree. |
|
Collapse All |
Collapses all the nodes in the tree. |
|
Perform Merge |
Merges the changes. For more information, see "Performing a Merge" and "Performing a Branch Merge". |
You can view the version history of a version controlled ODI objects across multiple branches, tags, or trunk present in the Subversion repository in the form a version tree graph.
Each revision node in the version tree graph represents a revision in the Subversion repository. The nodes are distinguished by different colors. Added items are in yellow color, deleted items in red color, modified items in white color, merged items in orange color, and restored items in green color.
To view version tree of a version controlled ODI object:
Right-click the ODI object and select Version> Subversion> Version Tree.
The Version Tree Editor appears showing different versions, tags, and branches for the object in the Subversion repository.
Scroll horizontally to view the entire version tree.
Note: Version nodes are displayed as ovals enclosed in rectangles and the action nodes are displayed as ovals.
Click the version nodes to view the version attributes under Version Properties.
Close the Version Tree Editor.
You can compare versions of the ODI object using the steps mentioned in "Comparing Versions of an ODI Object from the Version Tree Editor".
You can compare versions of an ODI object from the Version Tree Editor to see the difference between them. You can either compare two versions of an object in the Subversion repository, or compare one version of the object in the Subversion repository with the current object in the ODI repository.
To compare versions of an ODI object:
Right-click the ODI object whose versions you want to compare.
Select Version> Subversion> Version Tree.
Do one of the following:
To compare two versions of the object in the Subversion repository:
Select two version nodes that you want to compare, click the Compare icon ( ), and then select Compare Selected Versions.
To compare a version of the object in the Subversion repository with the current object in the ODI repository:
Select the version node that you want to compare with the current object in the ODI repository, click the Compare icon ( ), and then select Compare With Repository Object.
On the Version Compare Results dialog, view the differences between the two versions.
The Version Compare Results dialog provides icons to navigate through the differences, filter the compare results, change the display options (color coding), generate report, expand or collapse the nodes in the tree, and perform merge.
For more information, see "Icons on the Version Compare Results dialog".
(Optional) Perform a merge using the steps mentioned in "Performing a Merge".
Click Close.
When you compare two versions of an ODI object, the differences between them are shown on the Version Compare Results dialog. You can use the Perform Merge icon ( ) on the Version Compare Results dialog to perform a merge.
To perform a merge:
Compare versions of an ODI object.
For more information, see "Comparing Versions of an ODI Object from the Version History Dialog" or "Comparing Versions of an ODI Object from the Version Tree Editor".
On the Version Compare Results dialog, click the Perform Merge icon ( ).
The Merge Results dialog appears with a list of Merge Objects.
On the Merge Object Selection tab, select the filters as appropriate. For example, you may filter the results to see only the conflicting objects.
Perform the following steps to resolve any conflicts:
On the Merge Object Selection tab, select the conflicting object and click the Fix Merge Conflict icon ( ).
The Merge Conflict Resolution tab appears showing the differences between the two versions of the object.
Inspect the differences and click the Edit Repository Object icon ( )
The ODI object opens in an editor.
Modify the ODI object to resolve the conflict and save the changes.
Click the Conflict Resolved icon ( ) to mark the object as resolved.
Perform steps a. to d. to resolve all the conflicting objects.
Close the Merge Results dialog.
You can perform a branch merge to merge the changes done in the branch to the current ODI repository.
To perform a branch merge:
Click Team> Subversion> Merge.
Select Branch as the Merge Type as Branch.
Select a source from the Source drop-down list.
Specify a name for the merge in the Merge Name field.
You can choose to go ahead with the default merge name.
Click OK. The merge is performed and the Merge Summary is displayed.
Inspect the conflicts in the objects that are modified in the branch.
Close the Merge Summary. The Merge Results dialog appears with the Merge Objects list.
You may filter the Merge Objects list to show only the conflicting objects.
Perform the following steps to resolve the conflicts:
On the Merge Object Selection tab, select the conflicting object and click the Fix Merge Conflict icon ( ).
The Merge Conflict Resolution tab appears showing the differences between the two versions of the object.
Inspect the differences and click the Edit Repository Object icon ( )
The ODI object opens in an editor.
Modify the ODI object to resolve the conflict and save the changes.
Click the Conflict Resolved icon ( ) to mark the object as resolved.
Perform steps a. to d. to resolve all the conflicting objects.
Close the Merge Results tab.
You can see the Merge Summary report for the previous merges that you have performed.
Tip:
The Merge Summary report can also be accessed from the Merge Results dialog, which is displayed when you perform a merge.To view the merge summary:
Click Team> Subversion> Merge Summary.
Select a merge status to view merge summary for all, completed, or in progress merges.
Select a merge name to display the associated merge summary.
Click OK.