What has long been standard in many programming languages is still not a matter of course for ABAP developers today: version control and source code management. Nevertheless, or perhaps precisely because of this, interest in this topic is also exceptionally vivid in the ABAP world. With the addon abapGit, Lars Hvam has developed a free and very easy to install Git client that can work with numerous Git systems (GitHub, GitLab, Assembla, Bitbucket, abapGitServer, SCP, AWS, TFS).
Recently, Christian Guenter, Christian Drumm, Damir Majer, Sascha Junkert and Johannes Konings launched the event format abapGit Bunkai to bring this fundamental and very important topic closer to the SAP community. After Weinsheim, now the second event of this kind took place in Aachen: In the name of my employer, the FACTUR Billing Solutions GmbH, I have taken the organisation of this event into my hands and now, one week later, I would like to share a few impressions with this blog post and briefly tell you something about the organisational framework and the content.
In mid-February Christian Drumm came up to me to tell me about this new event format and to consider if that would be something for us. In fact, the request came at just the right time, since we started with the first considerations regarding the introduction of abapGit. Consequently, we got together very quickly and moved directly into the planning phase.
As soon as the general conditions had been clarified, the 16 planned seats had already been occupied, although other SAP community events were planned for the same day.
— Fred Verheul (@fredverheul) May 26, 2019
It seems as if one had waited for an event of this kind on this topic only in such a way. The registration for the abapGit Bunkai took place via Eventbrite, advertisement was placed on common channels (via blogpost, Twitter, Xing and Linkedin).
After a short reminder mail to all participants, the Back-your-Bag-Mail was sent out on Tuesday before the big day. As preparation for the common date the following points should be prepared by each participant:
- All participants should bring their own computers.
- All participants should set up their own SAP Netweaver ABAP Development System on their computer in advance. A guide for this can be found in the blog post Hosting a Netweaver ABAP Developer System on Google Cloud Platform by Christian Drumm, which provides step-by-step instructions for setting up a corresponding SAP system on the Google Cloud Platform (GCP). Even if it is pointed out that both the setup and the use are free of charge, a credit card number must be entered when setting up the GCP. In the SAP Cloud Appliance Library (CAL) you will then be informed that using the GCP will cost you money, but when you set up the GCP you will get a credit of $300, which is more than sufficient for our purposes.
- Damir has set up a slack channel for collaboration and file sharing, which every user should register for.
After the location for the event was prepared (thanks to Benedict), we met on Friday evening for a joint barbecue at Christian to discuss a few last things for the upcoming day in a relaxed atmosphere.
The first participants are already arriving an hour before start, when I was still busy with the last preparations: setting up snacks, fetching drinks, making coffee, the technology is also quickly connected and ready for use.
— Damir Majer (@majcon) May 25, 2019
As usual for true developers, pizza is ordered in advance for the lunch break. After a collective greeting to the parallel-event #sitPOTT and the @SAPCommunity we are about to start:
— Christian Drumm (@ceedee666) May 25, 2019
Damir and Christian start with an informative overview of version management. About an hour later it becomes interactive: The participants form teams of two to tackle the upcoming tasks together in the style of pair programming. A total of four sessions is about to take place.
In the first session, we start with very basic things: We connect to the systems that the participants brought along; install abapGit; create an account on github.com, set up a repo and take our first steps in the new environment.
In between we get feedback from #sitPOTT:
— sitPOTT (@sitPOTT) May 25, 2019
The pizza arrives on time, so that we are able to start our lunch break as planned.
In the second session we deal with the handling of repositories on github.com in newly formed teams of two: Using a Fork we create a copy of an existing repository in order to experiment freely with adjustments to this repository and not to make any changes to the original one. The repository of the Git server is made available on our own systems via a Clone, so that we can finally edit it within our familiar development environment. Once the desired changes were successfully completed, the two repositories (the one on our own server and the one on the Git server) must of course be synchronized again. For this synchronization we worked with the commands Stage, Pull and Reset local.
The third session is about Tags and Branches: With Tags we define certain points in the already quite comprehensive history of our evolved source code 😉 so that we finally come to version 1.0. With Branches, we then isolate a certain state of development work from other branches in the repository. Each repository has a standard branch and can have several other branches, between which you can switch to be able to continue developing at the different branches.
In the fourth session, we experiment with Code Reviews and Pull Requests on the GitHub platform. With a Pull Requests other developers can be informed about changes made in a branch of a GitHub repository. Once a Pull Requests has been opened, potential changes can be discussed and reviewed with the developers involved, and eventually either rejected or merged into the base branch.
— Christian Drumm (@ceedee666) May 25, 2019
As expected, time went by very fast. At about 4:30 p.m. we finally came to the end.
I think the effort was worth it. Under very good guidance, the participants were able to learn what it means to build and use a source code management system for ABAP. Also the different experiences, which the individual participants brought along, contributed to a broad discussion and what I think was a great exchange of information.
In my opinion, many things are not quite as intuitive to use as I know them from other environments. Obviously you have to invest some time to introduce a reliable handling of Git & Co. for ABAP in your own dev department. Basically, I am still convinced that you can’t get around this topic in a reasonably professional working environment these days. SAP itself also seems to see it that way.
Overall, it was a great, exciting day that brought fun, learning, application and networking together. It was a great pleasure to be here as a host. Many thanks to the great participants and the two competent speakers who managed to convey the topic in a completely relaxed atmosphere.
Thanks to Damir and Christian!