X

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

Oracle Data Integrator 12.2.1 - Managing Versions in Apache Subversion

The latest Oracle Data Integrator (ODI) release, 12.2.1, came
out with brand new lifecycle management features that allows you to use Apache Subversion as the external Version
Control System (VCS) for creating and managing ODI objects versions. It does not just
stop there but also facilitates the creation of tags, manage branches for parallel
development, and create Deployment Archives for promoting ODI objects from Development
to Production.

In this article I will talk about various version management
operations available in ODI Studio for maintaining, viewing, comparing and restoring
versions from Apache Subversion.

How does it work?

ODI Studio remains the sole User Interface for performing
any such versioning operations. It directly communicates with the external Version Control System
and presents all the needed information within ODI Studio user interface. For example to
create a version, an object is exported into XML file which is then checked in
into Version Control System. Conversely to restore an object, its XML file is
first checked out from Version Control System and then imported back into ODI
repository.


Configuring Apache Subversion

In order to use Subversion, we first need to setup its connectivity in ODI Studio in just a couple of steps.


  • Edit Connection - This screen allows to setup subversion URL
    and user credentials as per the selected authentication types. There are a
    number of authentication types supported for setting up such connectivity –
    HTTP, SSH, SSL etc.

  • Configure - This screen allows you select the
    subversion project and the Trunk or Branch under it for maintaining ODI
    objects. If you don’t have the subversion project or branch already created
    then you can create them right from this screen at the time of configuration.

There are a couple of other useful options configured here

  1. Auto version – Set this if you want to make ODI
    to automatically create version of a versioned object whenever it is saved. By enabling you can make sure that the subversion copy is always in sync with your repository copy of a versioned object. But it may impact your save performance due to underlying export and checkin.
  2. VCS Key – Configure the VCS key that is used to
    encrypt the sensitive content while exporting the object in to XML file. For example the passwords in a Data Server definition should not be exported in plain text when the Data Server is exported into XML. Such passwords are encrypted and decrypted using the VCS Key configured here.

Managing Versions

The operations for managing versions are available at two levels.

  • At Studio menu level - This menu lists the subversion operations
    that are not specific to a particular object and can be performed on a group of
    objects.

  • In the object context menu (Right click menu) - These options allow you to perform various subversion
    operations on that particular object.

Adding objects to Apache Subversion

Once you decide what objects need to be version controlled,
then you can add them to subversion individually or in group.

Adding Single object

 It is performed through object's context menu


There are
couple of convenience features available here

  1. All the necessary parent hierarchy is
    automatically added with child object so that developer need not do it
    individually. For example when you add a mapping for the first time the
    corresponding folder and project that contains this mapping are also added
    automatically.
  2. You can add selected or all children objects
    along with the parent object. For example when you add a
    folder to subversion then the packages, procedures, mappings etc present under
    the folder can also be added along with it in the same operation.

Adding group of
objects

The “Add Non-versioned Objects to VCS” option in ODI Studio and
object context menu presents you the list of objects that are not yet added to subversion and allows you to add them to subversion in group. At studio menu level it list all such objects in the entire repository whereas at object context menu level it lists all the non-versioned objects under that object and is applicable for only the container objects such as
projects, folder etc.


Indicator for Version Controlled Objects

A version controlled object can be easily identified by the
subversion indicator presence next to its icon. Notice the indicator next to “Version
Control” folder in below screenshot indicating that folder is version controlled whereas the other folder is not yet added to subversion.


Creating Object Versions

New versions of a version controlled object can be created through the context menu option – "Create VCS Version"


When a version is created at the container object level – such
as project, folder, model etc – then following
operations are also performed along with creating version of the the container object.

  • Versions are created for all version controlled
    children that are modified since last version. Note: It does not affect any non-versioned
    child.
  • Any child object deletion, rename or
    move is also pushed to subversion.

Viewing Version History

You can view version history for an object within the ODI Studio
itself. It pulls object's version history from subversion and presents it in a
couple of formats. Each of the formats provides different filtering/search
options to easily locate a particular version.

  • Tabular format – through context menu option “Version
    History”
  • Tree format – through context menu option “Version
    Tree”

Comparing Versions

You can compare a version in object’s version history with
another version or with the current copy present in repository. The difference between
the two is presented side by side in a special window. There are toolbar
buttons provided for easy navigation through the changes. The changes are color
coded to easily differentiate the added, deleted or modified properties.


Restoring Objects from Subversion

You can restore an object's version from subversion into ODI repository.
There are a couple of different situations in which you want to perform such restore

  • Restoring deleted object – You deleted an object but later realized that it is needed and want to restore it. You can view the list
    of deleted objects and restore them through the studio menu option
    Team->Subversion->Restore Deleted Object

  • Restoring an older version – If you messed up the latest copy of the object in the repository and wants to restore an older version then you can do it from objects context menu or from version history dialog.

The “Restore with Merge” check-box allows overwriting or merging the version changes into the existing repository copy.
For a container object such merging can be applied to the child objects as well.

Conclusion

ODI 12.2.1 provides seamless integration with Apache Subversion. All the important version management operations in subversion are now directly available from
the ODI studio. Developers can create, view, compare and restore versions from
Apache Subversion with the same ease as they can do any other ODI operations.

Stay tuned for the upcoming articles covering Branch Management and Release Management using ODI 12.2.1 lifecycle features.

Join the discussion

Comments ( 5 )
  • guest Monday, November 16, 2015

    Good to see some robust and powerful life cycle management features being added. This was always the perceived weak point of previous versions


  • Steve Thursday, December 3, 2015

    It is AWESOME to finally see this added!!

    A few questions:

    - If an interface is added/committed to SVN, are the associated Model(s) also added/committed?

    - Is the VCS Version replacing the ODI Version functionality? If not, the concept of Version is going to be overloaded and confusing (ODI Version?, VS Version?, Scenario Version?)


  • Ayush Friday, December 4, 2015

    Steve,

    #1 Dependencies are automatically versioned when you create partial tags with an object. Otherwise user has to make sure to create version dependent object.

    #2 Right. When a Subversion is selected for versioning, it replaces legacy ODI versioning. You will no longer see the legacy versioning context menus.


  • guest Monday, December 14, 2015

    Thanks for the wonderful blog

    I'm facing an issue request you to help.

    Issue:while trying to checkin code using "partial tag" and during this checkin process I had killed my Oid studio.

    After next login to REPO, tried to checkin code of a project->Version->Subversion->Add to VCS

    I'm getting the following error:

    ODI-12356: ODI repository locked for sync operation.

    Kindly assist how to remove the locks and checkin code again

    Ramesh


  • Ayush Tuesday, December 15, 2015

    @Ramesh,

    There is an OdiTool available to unlock such repository - OdiUnlockOdiRepository. You can run this tool from command line from your agent installation as described in http://docs.oracle.com/middleware/1221/odi/reference/using_opentools.htm#ODIRF217

    For example on Windows you will run -

    startcmd.cmd -INSTANCE=OracleDIAgent1 OdiUnlockOdiRepository


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