X

Welcome to All Things Data Integration: Announcements, Insights, Best Practices, Tips & Tricks, and Trend Related...

Oracle Data Integrator 12.2.1 - Parallel Development using Subversion Branches

This is the second article in the series of three articles covering
Oracle Data Integrator (ODI) 12.2.1 lifecycle management features. In the
previous article, Managing
Versions in Apache Subversion
, I discussed ODI Studio features for creating,
viewing, comparing and restoring versions in Apache Subversion. In this article
I will cover the Branch and Tag management capabilities that are required for
parallel development.

Parallel Development Using Subversion Branches

First, let’s take a look at the high level setup of the Subversion branches in ODI for any parallel development. As shown in the below
diagram, you can configure a Subversion branch/trunk with one master and work
repository combination. In this example, the Subversion trunk is used by user set 1 as the main code line and contains all ODI objects. Branch 01 is
configured for user set 2, who are working on a subset of ODI objects. User set
3 is working on a release branch and fixing bugs on the release code line. Each of these user set work in parallel and
leverages Subversion branches as the channel to merge their changes across different
branches.


Creating Tags

A Tag is a text name applied to the current versions of a
set of objects to take a snapshot of their current state. It freezes the current state of objects and can be referred back with the Tag name at some future point
in time. You can create a Tag directly from the ODI Studio and you can create
it for all the repository objects or for a selected set of objects.

ODI takes following actions on the objects present in the
Tag to ensure consistency.

  1. Add objects to Subversion if they are not
    yet versioned.
  2. Create versions for the objects if their latest
    changes are not yet versioned.
  3. Automatically include all the dependencies of the
    selected objects so that all the relevant objects can be found in the Tag when
    you refer back to it.

Thus, a Tag creation is a good way of ensuring all the
relevant objects are being version controlled and it is recommended to create Tags at different logical points during your development cycle.

There are two type of Tags created in ODI

  • Full Tag – It is created with all the objects in
    the repository. It will first sync all the repository object state to Subversion versions before applying the Tag.

  • Partial Tag – It is created for a selected set
    of objects and user drags and drops an object into the Partial Tag creation
    wizard. Al the dependencies for the selected object are automatically added to
    the Tag.

In the example, a mapping was added to the
Partial Tag and all the required model and topology objects are automatically
added by ODI Studio.

Creating a Subversion Branch

You can create a Subversion branch from a Tag. The branch creation screen lists all the relevant Subversion Tags and their respective comments to easily locate a Tag for branch
creation. The objects versions of the selected Tag becomes the branch point and
may not necessarily be the latest version of the objects.


Populating ODI Repository from a Branch or Trunk Objects

Once you configure your ODI repository with a Subversion
branch/trunk, you can populate it with the branch/trunks objects through a
couple of ODI Studio menu options.


  1. Populating repository – It is used when you want
    to populate a fresh repository with the branch content. For example when you
    create a project branch and want to setup an ODI repository to the branch.
  2. Populating restored repository – This option is
    used when your current repository gets corrupted and you restore an older
    repository backup. It syncs the objects present in the restored repository with
    the latest contents from the Subversion branch/trunk. It will pull all the
    objects from the Subversion branch/trunk and imports them in a special Import Mode
    that only inserts or updates the objects presented in the repository while leaves
    behind any extra objects in the repository.

Branch Merge

Merging changes from one development branch to another is an
essential need for any parallel development. ODI Studio allows you to merge
changes from a Branch, Trunk or Tag to the repository it is connected.


Merge Summary

The merge process automatically merges the object changes
that do not have any conflicts. The Merge summary details all the affected
objects in the merge. It also lists the objects that could not be automatically
merged and their conflicts should me manually resolved. The summary report can
be saved in the file system in multiple formats so that it can be shared with
the team.


Merge Results

The merge result window assists you in resolving conflicts
from a branch merge. There are a couple of tabs available in this window.

Merge Object Selection Tab


It lists the objects affected in the merge and provides
different search and filtering options. It allows following operations on the
conflicted objects

  1. Mark the conflict as resolved for the selected
    object.
  2. Open Merge Conflict Resolution window for the
    selected object.
  3. Assign ownership of the conflict resolution to a
    particular user responsible for conflict resolution of that object. By default
    the merge process assigns conflict ownership to the user who has last modified
    it.

Merge Conflict Resolution Tab


It assists you in manually resolving an object’s conflict by
presenting the object properties side by side.

Conclusion

A number of branch management features introduced in ODI
12.2.1 are vital for organizing objects across branches and allow parallel
development between functionally and geographically distributed teams.

Stay tuned for the third and final article on lifecycle
management, which will cover the release management capabilities using newly
introduced Deployment Archives.

Join the discussion

Comments ( 2 )
  • Venkat Gali Friday, November 13, 2015

    Thanks Ayush,

    Are there any plans to back port these ODI life cycle management features to ODI 11.1.1.7.0 and 11.1.1.9.0?


  • Ayush Friday, December 4, 2015

    Venkat,

    The ODI LCM features are available from 12.2.1 onwards. It will not be backported to 11g.


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.