SAP Hana 2.0 incorpora la posibilidad de emplear el control de versiones basado en Git en la herramienta de desarrollo web IDE for Hana sobre HDI containers en el XSA Server.
Esto supone un gran cambio en la manera de trabajar y de realizar desarrollos sobre la versión 1.0 con Hana Studio en la que los desarrolladores trabajaban sobre la misma versión de los objetos que al activarse generaba los objetos físicos en la base de datos (run time objects).
Git en Hana permite crear un repositorio local donde cada desarrollador puede gestionar el ciclo de vida de todos los objetos (calculation views, procedures, etc.). También soporta la sincronización con un repositorio remoto de manera que se pueda colaborar y sincronizar los cambios de cada repositorio local en uno central desde el que gestionar el deployment de la aplicación.
Estos repositorios centrales pueden ser algunos de los que disponga el equipo de desarrollo o el cliente en el que se está haciendo el proyecto o el de sobra conocido github.com.
Los principales beneficios son los siguientes:
- Copia de seguridad del código o del objeto que estamos desarrollando.
- Tracking completo de todo el historial de cambios y modificaciones realizadas.
- Funcionalidades muy conocidas que permiten crear branches, merges, etc.
- Integración con repositorios remotos.
GIT Web IDE for Hana
En nuestro ejemplo y como punto de partida arrancamos sobre un proyecto de tipo HDB (Hana Database Module) y lo primero que debemos hacer es activar la sincronización con nuestro repositorio local Git.

En el momento de la inicialización, Git reconocerá a todos los objetos que tenemos en nuestra área de desarrollo y los propondrá para que realicemos el commit, es decir, la sincronización de nuestro workspace con el repositorio Git.

A partir de aquí ya podremos gestionar todo el ciclo de vida de nuestro desarrollo a partir de la rama principal denominada master o de las diferentes ramas o branches qué podemos crear para ir haciendo evolutivos, ampliaciones y correcciones en nuestro desarrollo.
En este ejemplo hemos creado una rama denominada Branch 1 a partir de la master y hemos ido creando objetos de forma paralela y realizando sucesivos commits en ambas ramas, como paso final hemos realizado un merge para fusionar los objetos de la Branch1 con los existentes en la master. El aspecto que presenta el histórico de pasos es el siguiente.

Como podéis ver es un complemento muy útil para gestionar las versiones de los desarrollos.
Hasta aquí el post sobre este repositorio local Git en Hana, en el próximo os contaré cómo integrar este Git local con github.com.