Generating a Diff Script in Gitora

Gitora 2.0 enables developers to generate a DDL script from the Git repository which can be used to synchronize source code between two databases. For example, this feature can be used to generate a script to syncronize a production database to the latest version of the source code. This tutorial explains how to use this feature in Gitora 2.0.

Open the Gitora Application. Select a Git repository. Next, click the Get Script button either from the menu bar Local Commands –> Utilities –> GetScript or from the tool bar.

Get Script

Alternatively, click the Get Script icon in the Local Commands toolbar section.

Get Script Button


The Get Script Dialog shows up.

Get Script Dialog

Enter the Starting Git Commit ID and the Destination Git Commit ID. Use the keyword HEAD if you’d like to use the latest commit in the current active branch as the Destination Commit ID.

Click the Download DDL Script button. Gitora will generate a DDL script which, if executed, will syncronize a schema (or a group of schemas) which is currently at the Starting Commit Point ID, to the Destination Commit Point ID.

For example, this feature can be used to apply the latest version of the source code to a production database. If the production database is at Git Commit Point A and the new production-ready version of the source code is at Git Commit Point B, a developer can enter A as the Starting Commit ID and B as the Destination Commit Point ID and then execute the generated script in the production database.

How to Connect to Remote Databases

Gitora 2.0 enables developers to clone, fetch and pull code from remote Oracle Databases. An important step to use these features is to establish a connection between source (i.e. remote) and destination Gitora installations This tutorial explains how to create this connection.

1. Install Gitora to Source and Destination Databases

In order to be able to perform remote database operations, Gitora must be installed to both databases.

2. Enter the Connection information for the Remote Gitora Installation

Open the Gitora Application for the destination database. Under the menu bar click File –> Manage Remote Gitora Connections.

Menu Bar

The Remote Connections Dialog shows up.

Remote Gitora Connection Management

Click the + button end enter the following information:

Alias: A descriptive name for the Gitora Server of the source database. (No spaces or special characters.

Protocol: http

IP: The IP of the Gitora Server of the source database. This information can be obtained from the URL of the Gitora Application of the source database.

Port: The port of the Gitora Server. This information can be obtained from the URL of the Gitora Application of the source database.

Context: If the URL of the Gitora Application for the source database is http://192.168.15:8080/GitoraForSourceDB/main.jsp?name=Gitora then the value for context is GitoraForSourceDB

Root Folder: Name of the database schema of the Gitora installation in the source database, in lowercase.

Click OK to save the changes.

Your Gitora installation (destination) is now ready to clone, fetch and pull from the remote (source) Gitora installation.

Important Note: Gitora 2.0 assumes the presence of a secure network. In other words, do not use public IP addresses for connecting to remote Gitora installations. Authentication to connect to a public Gitora installation will be implemented in a future 2.x version.



Introducing Gitora 2.0

Today, we are happy to announce the general availability of Gitora 2.0. We listened to the feature requests coming from the community and we think we are addressing the majority of them with this new version.

Object Type Support

Gitora now supports Object Types. Object Types are supported for the Oracle version 11g and above.

Generate Diff Scripts

Gitora 2.0 helps you create diff scripts between two commit points in your Git repository. Simply, enter the starting Commit Point ID and the target Commit Point ID and Gitora will generate a diff script for you to run in your target database.

Clone Source Code from Another Database

Gitora 2.0 supports cloning Git repositories from remote databases. Connect your local Gitora to the remote Gitora (which manages a remote database) and move the code base from one database to the other automatically.

Pull(Merge), Fetch Source Code from Another Database

Similar to cloning, developers can now pull(merge) source code from a remote database to the source code in a local database automatically if both database are running Gitora 2.0.

Many small improvements and bug fixes

Gitora 2.0 also comes with a number of improvements such as:
– A nicer Git repository browser
– Ability to view changes made in each object prior to issuing a commit
– Cancel any edits made to a PL/SQL object since check-out by clicking a button.

New Gitora Editions

Gitora 2.0 comes in three editions:

Gitora Community Edition

Every feature from Gitora 1.0 continues to be free in Gitora 2.0 Community Edition. We even added new features to it such as object type support, ability to view changes made in each object and canceling edits, along with many bug fixes.

Gitora Professional Edition

We believe proper version control is a big problem in the PL/SQL community, hurting the productivity of many PL/SQL developers and discouraging organizations from using PL/SQL. We think we can help. In order to justify further development on Gitora to help the community to solve this problem, remote database features in Gitora 2.0 will be available in the professional addition. The professional edition also comes with email support and unlimited access to 2.X released of Gitora. We think the benefits you will get from Gitora Professional Edition will far outweigh the small price tag we put on it.

Gitora Enterprise Edition

We know that large enterprises usually have their own unique needs. They might need customizations, new features, integration with other products and services they use, training, more timely and intensive support covered with an SLA etc… For these types of customers, we offer a fully customizable version of Gitora.

Gitora 2.0 Professional Edition comes with a long trial period and even if you decide not to purchase it, it gracefully downgrades to the community edition.

So what are you waiting for? Go download Gitora 2.0! 🙂

Benefits of using Gitora, Git for PL/SQL Developers

Outside of PL/SQL World (Java, JavaScript etc..) developers use version control systems more effectively. When used appropriately in the software development life cycle, a version control tool can shorten delivery times significantly by improving the manageability of the code base.

Using version control with PL/SQL though has always been challenging. In our experience very few, if any, IT departments use version control systems to manage their PL/SQL code base. Most are content with a basic check-in check-out mechanism.

We created Gitora to help PL/SQL developers manage their code base better. Gitora achieves this by bridging the gap between the Oracle Database and Git, the most prominent and popular version control system used by millions of developers around the world.

With Gitora you can:

  • Perform the supported version control operations using a point and click interface. This reduces the barrier to entry for Git. Only a basic understanding of version control principles is good enough to get value from the product.
  • Move your PL/SQL code base automatically to a specific version of it (for example to match it to the version in production.)
  • Create new branches to work on new features without affecting the master code base.
  • Change between different branches of your code base automatically.
  • Merge your branches to the master code base automatically.
  • Create clones of your code base (for example in a different schema) make modifications and merge them back to the original code base automatically.
  • Browse the Git repository and see your commit history and changes associated with each commit.

Collaboration vs. Parallel Development

Gitora can be used in collaboration mode in which all PL/SQL developers work in the same Oracle Schema(s). In this case Gitora supports a check-in check-out mechanism. This check in/out mechanism is not tool dependent. It works both with TOAD and PL/SQL Developer (or any other tool for that matter).

More importantly, Gitora can also be used in parallel development mode in which every PL/SQL developer works in her own schema(s). In this way of working, (which is exactly how Java, .NET, JavaScript developers etc.. are working) each developer has her own copy of each PL/SQL code unit in the code base and is free to make changes to them related to the task she has at hand. In parallel mode, no developer blocks the other because she is the only one who checks out the PL/SQL code units in her own schema(s). This improves development times significantly because more than one developer can work on the same logical PL/SQL code unit at the same time.

The software development team establishes a workflow to merge the changes of each developer and propagate these changes to the master code base. Gitora (via Git) also helps with this process with automated merging of changes. In the event of a conflict (where Git cannot figure out how to merge changes done by two developers to the same code unit) Gitora asks the user to resolve the conflict. Gitora creates multiple versions of the PL/SQL code unit in question and helps the developers to resolve the issue. (Please see Introduction to Gitora, Git for PL/SQL developers for more information on this topic)

Best to our knowledge, Gitora is the only tool that is specifically designed to be used for parallel development with PL/SQL. We think parallel development is where a software team starts to get a lot of value from using a version control system. This helps establishing a formal workflow of incorporating changes to the master code base and to production.

Other benefits of Gitora

  • Gitora is free to use. Gitora offers a lot of functionality out of the box and if this is good enough for you, you already have what you need for free. Enjoy! 🙂
  • Gitora integrates to your software development lifecycle. We cannot overstate how important this is. Gitora is not something you do on the side and it does not have back doors where you can circumvent version control. It becomes an essential part of your daily workflow. There are version control tools that people use on the side by copying and pasting scripts. This is a very error prone process because it requires developers to “remember” to do version control. Some version control tools only work within a specific tool (such as TOAD) and do not prevent the developer from opening another tool (such as PL/SQL developer) and modify code without using proper version control mechanisms.

We can also help you in other ways:

  • Sometimes our customers with large teams and many policies and procedures, want us to extend or modify Gitora for them. We offer affordable professional support services for this purpose. Basically, think of Gitora something you start with for free. If you want features in Gitora to make you work even more efficiently, we can help you with that. (For example, Gitora works with Git but it is flexible enough to work with other version control systems. So if you’d prefer to use another version control system, it would not be too difficult for us to implement this.)
  • We also help organizations to improve their software development lifecycle. We can help you integrate version control into your daily workflow. We can help you design a workflow that fits to your organization’s culture, policies and procedures. More importantly, we can enforce these policies and procedures in Gitora so that there are no backdoors and following procedures and policies becomes a natural part of the development lifecycle. We can analyze and suggest optimizations to your development lifecycle, help align incentives of various groups in the IT department (analysts, developers, testers etc…) and be the driver of this change in the organization.

For more information about Gitora, we recommend you to visit the following links:

Gitora Webinar Recording (and Slides)

Six Common Question About Gitora

What is the Difference between Gitora and SQL Developer’s Git Interface


Introducing Formspider 1.9

Dear Gitora Users,

If you are building applications with PL/SQL, we invite you to our webinar on July 7th in which we will introduce the new version of Formspider, the development framework for PL/SQL developers.

You can sign up for the webinar at this link.

Video: Oracle Forms Migration to Formspider

Last week we had a very successful webinar about Oracle Forms Migration to Formspider. If you’d like to find out more about the success TEAM GmbH had with Formspider, you can now watch the webinar online:

Oracle Forms Migration to Formspider from Yalim K. Gerger on Vimeo.

Oracle Forms Migration to Formspider

We’d like to invite you to our free webinar about migrating Oracle Forms applications to Formspider. Join our webinar and find out how the Formspider customer TEAM GmbH from Germany migrated their large (500+ forms) Oracle Forms based product to Formspider with a fraction of the cost compared to the alternatives.

The webinar will be presented by Frank Zscherlich (Division Manager, TEAM GmbH), Michael Wibberg (Product Manager, TEAM GmbH) and Yalim K. Gerger (Founder, Formspider).

During the webinar, the following topics will be covered:

  • What other products did TEAM look at?
  • Why did TEAM choose Formspider?
  • What is it like to work with the company behind Formspider?
  • What was TEAM’s approach to Forms Migration?

Watch a short demo of TEAM’s new application at this link. This application is built by 5 Oracle Forms Developers.

The webinar is free but space is limited. Sign up now.

The Gitora Team

Webinar Video and Slides

Below you can find the recording and the slides of the Gitora Webinar. Thanks to everyone who attended. What a turnout!

Introducing Gitora, the free version control tool for PL/SQL from Yalim K. Gerger on Vimeo.

Introducing Gitora, free version control tool for PL/SQL from Yalım K. Gerger

Six Questions About Gitora

Recently. we received an email from a Gitora user with six questions. We think our answers might be interesting for others as well. So here they are:

1. Where is the remote repository created?
Gitora does not use a remote repository in its first version. Everything is handled using local repositories. You can still use a remote repository if you want. There is nothing in Gitora preventing you from doing that.

2. How do you lock database objects?
The users decide which database objects Gitora should manage. When a DDL is executed, a database level trigger created by Gitora ensures that the Oracle user running the DDL is signed in to Gitora and checked out the database object it is manipulating if it is an object managed by Gitora. If the object is checked out by another user already, the trigger throws an exception. There is a PL/SQL API for a database user to sign in to Gitora in her database session. Optionally, she can use the Gitora App to check out an object. Gitora is also quite pragmatic and automatically checks out the object if it is not currently checked out by anyone else.

3. Is there any relation between Gitora users and Database Users? If there isn’t any relation, how do I create Gitora users?
There is no relation between Gitora users and database users. You can use the Gitora App to create Gitora users. Then, to check out an object managed by Gitora, you can sign in to Gitora by either using its PL/SQL API or the Gitora App.

4. Do I have to log in to Gitora every time I create a new database session?
You have to log in to Gitora in a database session only if you want to modify a database object or check out a database object managed by Gitora. Signing in is a single line API call that probably can be automated by your PL/SQL development tool.

5. Where is the version history stored?
Everything related to versioning is done and stored in the Git repository. Gitora is only a bridge between the Oracle Database and the Git server.

6. How can we integrate Gitora to TOAD? Is there a plug-in?
There is no need for a plug-in. Gitora works with any PL/SQL development tool. It has a small set of PL/SQL API’s that you can call from any development tool. Gitora also has a web app you can use to perform common version control tasks.

What is the Difference between Gitora and SQL Developer’s Git Interface?

We’ve been getting this question a lot lately, so I thought it is a good idea to write a blog post about it.

In SQL Developer, you work in the database schema and edit PL/SQL code units. Then you manually move them to a folder managed by Git. SQL Developer helps you run Git commands on these files with a point and click interface. When you issue a Git command that changes your code base, you have to manually carry over the changed code units to the database by running the scripts.

In Gitora, if you modify a PL/SQL code unit in the database, you do not need to manually copy the updated script to a folder managed by Git. Gitora does that automatically. Similarly, if you issue a Git command using Gitora’s point and click interface, Gitora automatically updates the PL/SQL code units that are effected by your Git command. Gitora also has a check out mechanism that works at the database level, meaning that if you check out a PL/SQL code unit, no one else can edit it until you release or commit it. This is enforced at the database level. So there are no back doors.

So the advantages of Gitora’s approach are:

– A lot less manual work. Every Git command in Gitora updates your database code automatically.
– A lot less human errors. Copying files back and forth manually is very error prone.
– No back doors. Gitora enforces that if an object is being edited by someone, no one else can edit it. Version control is not something you do on the side but it is tightly integrated into your workflow and enforced.
– It works with any editor. You can use SQL Developer, SQL Navigaor, TOAD or PL/SQL Developer. It doesn’t matter. Everyone in your team can use a different editor if they choose to do so. Gitora still works.

Yalim K. Gerger