For last couple of days I was struggling to understand Version control and Change Management features of SAP HANA. I am new to HANA and to SAP 😐 .I went through many documents and blogs to understand this so thought of sharing my research with all of you. I hope I will be able to help my some newbies like me 🙂
For version control you need to make sure that all development is done through Project window on local repository. (I was reading somewhere that after SPS09 objects can be directly modified in Repository window but we are using SPS08 so we had to use Project window). Earlier we were directly modifying/Activating objects using SYSTEM window so we were not able to use version control conflict resolution features. To modify objects using Project window you need to :
- Create local repository for your server using Repository->Create Repository Workspace. By unchecking “Use Default Workspace” option you can give your own (more readable) name to repository.
2. Once Repository is created then you need to checkout objects on which you want to work. For New objects you can directly create them using Project window. Right click on object in repository window-> Checkout.
3. Create Project for checked out objects. In Project Explorer go to File->New Project. Uncheck default location option to map Project to folder which has objects which you have checkout for your development.
4. Right click on Project-> Team-> Share Project.
5. Once Project is Shared you can modify objects inside and also add new objects. All these objects will be tracked under version control. You can saves changes to local repository but when you will activate object(Team->Activate) then system will compare checked out copy of object with remote(server) copy and if your local copy will not match with server copy (i.e. somebody else deployed their changes while you were working on your changes) then you will get error related to conflict resolution.
6. At this point you have option handle the conflict by merging your code with server code using merge tool or deploying local copy on server or using remote copy for your development.
7. Merge tool will show you exact mismatch between local and remote and provides you option to merge changes.
8.You can also see history of changes by Right click on object in Repository–>Show in History. This will give you information about different revision of code. You can also see the code deployed in selected revision. You can check out the code associated with any revision and deploy it as current revision. You also have option to compare codes associated with two different revisions.
9.One important point to make is that all these version control features works only for content objects so if you have tables/procedures created as catalog objects then you have to use HDB scripts to create table/procedures and other catalog objects and create them as content objects. This will also allow these objects to be added as part of a DU(Delivery Unit) and can be migrated to another system using Transpoter.
Hope you liked the post. Please provide your feedback/comments.