I normally write about technical features around SAP Cloud Platform, the Portal service and other SAP topics however in this case I thought I would write about my experiences around GIT and how much I have learned and enjoyed the openSAP GIT course. I have worked through a lot of the OpenSAP courses but must say this is one of the best I’ve completed and how apt given openSAP’s recent 5 year anniversary. I’ve found the openSAP GIT course amazing and it has opened my eyes to the way development teams can operate in a really efficient manner. This is an absolute MUST DO course for any one coding in SAP Web IDE. Let me also state that I’m not a developer as such although am trying to learn the trade a little. My background is more on the SAP functional side (22+ years) and of course SAP Cloud Platform and SAP Fiori however I do manage development teams so this course has been amazing.
OK – just quickly. The title of this blog I borrowed from Arnaldo Cavazos – thanks mate for this one! I owe you one! Actually probably owe you more than 1. 😊
Over the last couple of years I’ve been leading development teams on major SAP Cloud Platform projects specifically using SAP Web IDE. We have used a mixture of BitBucket and the SCP Git as our tool of choice to manage the various app repositories and most of the time this has worked really well. But, I do know we have had instances where a number of us (ok, me) were confused about GIT. Some of the questions raised included: Which one is the remote repository? Do I select the Remote Branch in this case? What do the up and down arrows mean? Oh, no FastForward error again – how do I fix this? How can I tell what I coded in that commit? Do I update the Master branch now? These are only a portion of the questions that have been raised. Additionally, every time I needed to work with GIT I was wary that I did not really have a detailed understanding of the underlying options and the power that existed. I don’t think I am alone in feeling this way. This course helped me with this, big time!
I seriously did not think I would ever (in my lifetime) have the answers to these questions 😊 – but guess what I do!!!! Yeehah!!! And I have the openSAP course to thank for it. I am now the resident GIT expert – well I think I am anyway much to the amusement of my colleagues! I am also amazed at the amount of functionality within SAP Web IDE to manage development activities. I would be interested in knowing the percentage of features that are actually used – I know in my case (remember I’m not a developer as such!) I pretty much created local feature branches, coded the change then committed and pushed back to Develop branches in BitBucket and that was it. I estimate it was around 10% and that is being generous. Stash, Cherry Pick, Tag are just some of the features I had no idea existed. I’ve got to spend a lot of time in the Git Pane and Git History area and really liked the detail included on each commit. I can actually understand what is detailed and I am more confident now that I know what is going on.
What I have also gained from the course is the vocabulary. I now know what a Fast Forward merge is (as opposed to ignoring the FASTFORWARDMERGE error I used to receive 😊). The vocabulary is good but you must have an understanding of what each concept actually means – both together provide confidence in utilising GIT and using it to your advantage. I am also now familiar with all functions available in the SAP Web IDE – and there are a heap of them. I thought I would draw this – just to highlight how many functions there are available. This is also good for me going forward – prompters for the options available and when I would use which options. For e.g., if I wanted to retain files and have them staged then I would know that the Mixed Reset option would do this. This was mainly for my benefit but thought I would share my drawing.
Figure:1 My GIT & SAP Web IDE Learnings
I will not detail each of these concepts in detail as it is better to do the full course to gain the benefit and understanding of these functions. NOTE: If you are not doing the course now it will be available in the future as an online self-paced training course at openSAP SAP and I’ve included the link to the course below.
At the start of the course I posted on Twitter that I was firmly at the Bargaining stage of GIT. I was not joking but I was definitely frustrated by this and I knew there was more to it which is why I did the course. Let me just explain this a little more and provide a little more insight to this. Before the course, I could create local branches but specifically used the PULL request only. I never dared looked at some of the other options. I then carried out my changes in SAP Web IDE, staged them (not that I knew what this really meant) and then committed and pushed the changes. I then went to my GIT tool (we used BitBucket) and merge branches there manually – I seriously had no idea the power inside the SAP Web IDE nor the full power of GIT. I did not draw out commits nor have a plan as to how we could possibly merge multiple feature branches into the mix so I know I was always hesitant to adopt this. So, I went on my merry way knowing only the one or two features – definitely Bargaining!
Figure:2 BEFORE view – Bargaining stage of GIT
Now that I have finished Week 3 of the course I now accept and fully appreciate the power of GIT. I cannot wait to apply my new found skills to development activities going forward. I have been amazed at what is possible. With this course it has allowed me to skip right past the Depression stage of GIT and move straight to Acceptance. I am now drawing out commit options and trying to work out the best way to go to more efficiently manage the code base and commit progress. The other big take out for me is the amount I can do in my local repository. The way the course structured this was brilliant. It gave me the confidence of managing code in my local repository and know that eventually when I did want to update the remote repository that I would have no problems doing this. Previously, I always worried about the remote repository being updated correctly with the changes. I am now so comfortable with GIT I’m telling my colleagues how to do GIT, which they are appreciating very much….. 😊 I would also like them to do this course so they too can be firmly planted in the Acceptance stage of GIT.
Figure:3 AFTER view – Acceptance stage of GIT
My next step along this journey is to update my LinkedIn profile with GIT Master added to my skills list….maybe I will wait until I complete the final exam to do this….…lol.
One of the other fun activities I did throughout the course was to draw and I totally agree that sometimes this just makes things clearer and helps with knowing what the next step is whether that be a Fast Forward Merge, 3-way merge or Rebase. I totally agree and would suggest that development teams do this very thing. If you don’t have a drawing mechanism handy then there is assistance in the Git History Pane – this is a really great feature to try and explain what has taken place across 1 or more branches and provides alot of information on commits. Will definitely be doing both of these things going forward.
Here is an example of the Rebase example that I compiled on my iPad using the Paper application.
Figure:4 Rebase Example – My view
I will finish off by detailing one of the best practices covered in the OpenSAP course which I will keep front and centre in my mind when developing in SAP Web IDE using GIT. I detailed this in Figure 1 also.
“Don’t just act; always understand what you are doing to your local (and remote) repository, and why.” (Arnaldo Cavazos – 2018)
All of the best practices covered were great but that one resonated with me the most and definitely great advice for anyone using GIT. It resonated with me because I did just act previously, I was performing functions but did not really have the base understanding of what was taking place to both of my repositories. I am really grateful that this course was offered and excited as I can now be confident with GIT.
If you did not start this course you can view the lectures anytime (even on the plane, if you use the offline functionality in the openSAP app). If you just want to learn, you can just get stuck in. If you wish to gain certification in this course you will need a re-activation code (even better if you received a voucher for the OpenSAP 5 years anniversary). I would definitely suggest doing this one. It has been brilliant. Check it out here -> https://open.sap.com/courses/git1. The presenter Arnaldo Cavazos was one of the best as well – really engaging and interesting. It was really fun as well.
Go ahead, do yourself a favour and sign up now!
Thankyou openSAP SAP and thanks for reading!