SlideShare une entreprise Scribd logo
1  sur  41
modern ABAP development with
2© emineo AG
whoami
 Christian Günter
 emineo AG
• based in Zürich
• ~80 employees
• IT Consulting
• Software Engineering
• SAP, Java and Webtechnologies
 @chris_guenter
 christian.guenter@emineo.ch
3© emineo AG
Agenda
What?
Why?
How?
Live Demo
4© emineo AG
What is git?
What is git?
 Version control system
 decentral and file based
 Created 2005 by Linus Torvalds
 Open Source
 De facto standard in non SAP software development
 Git hosting services: GitHub, GitLab, BitBucket, SCP…
5© emineo AG
What is git?
Source: OpenSAP - SAP Cloud Platform Version Control with Git by Arnaldo Cavazos
6© emineo AG
 Git client implemented in ABAP
 Open source project
 Started in 2014 by Lars Hvam Petersen
 MIT license
 Hosted on GitHub
 http://abapgit.org
What is abapGit?
What is abapGit?
7© emineo AG
What is abapGit?
49 Cotributors et.al.
Alexander Tsybulsky Eduardo Copat
Oliver Jägle Svitlana Shlapak
Andrei Vishnevsky Bohdan Petrushchak
Graham Robinson Gregor Wolf
Nuno Godinho Fabio Zuber
Fabian Lupa Christian Günter
Christian Tapia Sabogal Domi Bigl
Giovanni Degani Kasper Vilhelm Torp
Christian Pfaller Alex Chan
Lars Hvam Petersen Pascal
Jakub Filak Johannes Konings
8© emineo AG
What is abapGit?
What is abapGit?
 Online and offline repositories
 ~62 000 lines of code
 Min. release 7.02
 3 000 commits
 82 supported object types (CLAS, PROG, etc.)
9© emineo AG
What is abapGit?
Design goals of abapGit
 Easy to install
 Easy to update
 Small system footprint
 Code in the repository is readable
10© emineo AG
Why abapGit?
Why abapGit?
 Lack of features in SAP version control
 Versions are written during transport release
 Temporary versions are deleted
 Limited control for the developer
 No easy undo mechanism
 Some objects without proper version control
e.g. Smartforms
11© emineo AG
Why abapGit?
Why abapGit?
 Limited traceability
 What changed during the last two weeks?
 What changed since last release/transport?
 How did the code base look like three months ago?
12© emineo AG
Why abapGit?
Why abapGit?
13© emineo AG
Why abapGit?
Why abapGit?
 abapGit as backup
 Simplified and riskless experiments
 More transparency
 Enabler for DevOps
 Enabler for code reviews
 No substitute for SAP transport and release management
 abapGit as code archive or grave yard
14© emineo AG
Why abapGit?
Why abapGit?
 Install and contribute to open source projects
 http://dotabap.org/ - overview of ABAP projects
 Inofficial successor of SAPLink
15© emineo AG
How does abapGit work?
Online repository
16© emineo AG
How does abapGit work?
Offline repository
17© emineo AG
How does abapGit work?
Serialization and deserialization
18© emineo AG
How does abapGit work?
Demo
19© emineo AG
abapGit @emineo
abapGit @emineo
 Two ABAP based products
 Two SAP development teams
 01/2018: Start with abapGit in one team
 One development system each product
 BitBucket git server
 Git is default in non SAP teams
20© emineo AG
abapGit @emineo
04/2018: Start with product development
21© emineo AG
abapGit @emineo
Software delivery in product development
22© emineo AG
abapGit @emineo
 Offline repositories
Custom development
 Export zip
 Commit and push with local git client
 Usually no import
 Backup
 Central ABAP knowledge database
23© emineo AG
abapGit @emineo
 Migration of custom development
Migrations
 Zip file is exported
 Search and replace because of naming conventions
 Import Zip file in Offline repository
 Lots of repetitions – missing objects
 Objects are collected in a dummy transport request
24© emineo AG
abapGit @emineo
 It works
Lessons learned
 KISS
 Pratice with demo repos
 Keep your packages small
 Do experiments
 Steep learning curve of git -> good online ressources
25© emineo AG
abapGit @emineo
 Communication is important
Lessons learned
 Ongoing process of learning and improvement
 abapGit is improved steadily
 You can fix bugs yourself – and publish them
 Trust is important
 You can develop new features
26© emineo AG
abapGit @emineo
 Develop both products with abapGit
Goals
 Optimize our git workflow – more branches?
 Use pull requests in BitBucket
 Do code reviews in BitBucket
 All ABAP development is in a git repo
27© emineo AG
abapGit on SCP
”For code exchange, ABAP PaaS uses the well-known open
source solution abapGit (http://docs.abapgit.org).”
Source: https://blogs.sap.com/2018/09/04/sap-cloud-platform-abap-environment/
“We know that up to now, version control in ABAP is rather limited, and there is
little support for branching, merging or CI/CD (continuous integration/delivery)
tool chains. The goal is to renovate the ABAP step by step using a version
control system like Git without sacrificing the benefits of the ABAP change and
transport system.”
28© emineo AG
abapGit @emineo
Twitter wall
29© emineo AG
abapGit @emineo
Questions?
30© emineo AG
abapGit @emineo
Demo -
Backup
31© emineo AG
How does abapGit work?
.XML
32© emineo AG
How does abapGit work?
.ABAP
33© emineo AG
How does abapGit work?
One package (+ subpackages) = one git repository
Paket: $DSAG_DEMO
34© emineo AG
How does abapGit work?
Repository view
35© emineo AG
How does abapGit work?
Object changed
36© emineo AG
How does abapGit work?
Diff
37© emineo AG
How does abapGit work?
Stage and commit
38© emineo AG
How does abapGit work?
Commit history
39© emineo AG
How does abapGit work?
https://github.com/christianguenter2/DSAG_DEMO.git
DSAG_DEMO repository on GitHub
40© emineo AG
How does abapGit work?
Commit history
41© emineo AG
How does abapGit work?
Diff

Contenu connexe

Tendances

Git slides
Git slidesGit slides
Git slidesNanyak S
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewRueful Robin
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes waysparkfabrik
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfamanmakwana3
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdBilly Yuen
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopWeaveworks
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hubNaveen Pandey
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps IntroductionRobert Sell
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentationMack Hardy
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowMikhail Melnik
 
CloudHubのログバックアップについて
CloudHubのログバックアップについてCloudHubのログバックアップについて
CloudHubのログバックアップについてMuleSoft Meetup Tokyo
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 

Tendances (20)

Meetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOpsMeetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOps
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Git slides
Git slidesGit slides
Git slides
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git & git hub
Git & git hubGit & git hub
Git & git hub
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 
Introduction to git hub
Introduction to git hubIntroduction to git hub
Introduction to git hub
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Git basics
Git basicsGit basics
Git basics
 
CloudHubのログバックアップについて
CloudHubのログバックアップについてCloudHubのログバックアップについて
CloudHubのログバックアップについて
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 

Similaire à #SitBERN modern abap development with abapgit

SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introductionSAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introductionHendrik Neumann
 
Evolution of GitLab Frontend
Evolution of GitLab FrontendEvolution of GitLab Frontend
Evolution of GitLab FrontendFatih Acet
 
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays
 
Beyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonBeyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonJacek Centkowski
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabFatih Acet
 
sitMUC 2018 - Speed up abap-unit data creation process
sitMUC 2018 - Speed up abap-unit data creation processsitMUC 2018 - Speed up abap-unit data creation process
sitMUC 2018 - Speed up abap-unit data creation processAlexander Geppart
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the CloudAxway
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturasparkfabrik
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdWeaveworks
 
How to Achieve more through Collaboration
How to Achieve more through Collaboration How to Achieve more through Collaboration
How to Achieve more through Collaboration Damien Garros
 
Self Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersSelf Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersPurav Gandhi
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsNoa Harel
 
GitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposGitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposWeaveworks
 
Sydney mule soft meetup #8 1 August 2019 - all slides
Sydney mule soft meetup #8   1 August 2019 - all slidesSydney mule soft meetup #8   1 August 2019 - all slides
Sydney mule soft meetup #8 1 August 2019 - all slidesRoyston Lobo
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Noa Harel
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Noa Harel
 
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...BrianFraser29
 

Similaire à #SitBERN modern abap development with abapgit (20)

SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introductionSAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
SAP Stammtisch Frankfurt 2017-10-11 - abapGit introduction
 
Evolution of GitLab Frontend
Evolution of GitLab FrontendEvolution of GitLab Frontend
Evolution of GitLab Frontend
 
Cloud Native with Kyma
Cloud Native with KymaCloud Native with Kyma
Cloud Native with Kyma
 
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
apidays LIVE Paris 2021 - APIGEE, different ways for integrating with CI/CD p...
 
Beyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, LondonBeyond Gerrit @ Gerrit User Summit 2017, London
Beyond Gerrit @ Gerrit User Summit 2017, London
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLab
 
sitMUC 2018 - Speed up abap-unit data creation process
sitMUC 2018 - Speed up abap-unit data creation processsitMUC 2018 - Speed up abap-unit data creation process
sitMUC 2018 - Speed up abap-unit data creation process
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
Intro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and LinkerdIntro to GitOps with Weave GitOps, Flagger and Linkerd
Intro to GitOps with Weave GitOps, Flagger and Linkerd
 
How to Achieve more through Collaboration
How to Achieve more through Collaboration How to Achieve more through Collaboration
How to Achieve more through Collaboration
 
Self Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository ManagersSelf Hosted Web-based GIT Repository Managers
Self Hosted Web-based GIT Repository Managers
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development Trends
 
Api gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a serviceApi gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a service
 
SAP Hybris Commerce Technical Upgrade
SAP Hybris Commerce Technical UpgradeSAP Hybris Commerce Technical Upgrade
SAP Hybris Commerce Technical Upgrade
 
GitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your ReposGitOps Core Concepts & Ways of Structuring Your Repos
GitOps Core Concepts & Ways of Structuring Your Repos
 
Sydney mule soft meetup #8 1 August 2019 - all slides
Sydney mule soft meetup #8   1 August 2019 - all slidesSydney mule soft meetup #8   1 August 2019 - all slides
Sydney mule soft meetup #8 1 August 2019 - all slides
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
 

Dernier

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Dernier (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

#SitBERN modern abap development with abapgit

  • 2. 2© emineo AG whoami  Christian Günter  emineo AG • based in Zürich • ~80 employees • IT Consulting • Software Engineering • SAP, Java and Webtechnologies  @chris_guenter  christian.guenter@emineo.ch
  • 4. 4© emineo AG What is git? What is git?  Version control system  decentral and file based  Created 2005 by Linus Torvalds  Open Source  De facto standard in non SAP software development  Git hosting services: GitHub, GitLab, BitBucket, SCP…
  • 5. 5© emineo AG What is git? Source: OpenSAP - SAP Cloud Platform Version Control with Git by Arnaldo Cavazos
  • 6. 6© emineo AG  Git client implemented in ABAP  Open source project  Started in 2014 by Lars Hvam Petersen  MIT license  Hosted on GitHub  http://abapgit.org What is abapGit? What is abapGit?
  • 7. 7© emineo AG What is abapGit? 49 Cotributors et.al. Alexander Tsybulsky Eduardo Copat Oliver Jägle Svitlana Shlapak Andrei Vishnevsky Bohdan Petrushchak Graham Robinson Gregor Wolf Nuno Godinho Fabio Zuber Fabian Lupa Christian Günter Christian Tapia Sabogal Domi Bigl Giovanni Degani Kasper Vilhelm Torp Christian Pfaller Alex Chan Lars Hvam Petersen Pascal Jakub Filak Johannes Konings
  • 8. 8© emineo AG What is abapGit? What is abapGit?  Online and offline repositories  ~62 000 lines of code  Min. release 7.02  3 000 commits  82 supported object types (CLAS, PROG, etc.)
  • 9. 9© emineo AG What is abapGit? Design goals of abapGit  Easy to install  Easy to update  Small system footprint  Code in the repository is readable
  • 10. 10© emineo AG Why abapGit? Why abapGit?  Lack of features in SAP version control  Versions are written during transport release  Temporary versions are deleted  Limited control for the developer  No easy undo mechanism  Some objects without proper version control e.g. Smartforms
  • 11. 11© emineo AG Why abapGit? Why abapGit?  Limited traceability  What changed during the last two weeks?  What changed since last release/transport?  How did the code base look like three months ago?
  • 12. 12© emineo AG Why abapGit? Why abapGit?
  • 13. 13© emineo AG Why abapGit? Why abapGit?  abapGit as backup  Simplified and riskless experiments  More transparency  Enabler for DevOps  Enabler for code reviews  No substitute for SAP transport and release management  abapGit as code archive or grave yard
  • 14. 14© emineo AG Why abapGit? Why abapGit?  Install and contribute to open source projects  http://dotabap.org/ - overview of ABAP projects  Inofficial successor of SAPLink
  • 15. 15© emineo AG How does abapGit work? Online repository
  • 16. 16© emineo AG How does abapGit work? Offline repository
  • 17. 17© emineo AG How does abapGit work? Serialization and deserialization
  • 18. 18© emineo AG How does abapGit work? Demo
  • 19. 19© emineo AG abapGit @emineo abapGit @emineo  Two ABAP based products  Two SAP development teams  01/2018: Start with abapGit in one team  One development system each product  BitBucket git server  Git is default in non SAP teams
  • 20. 20© emineo AG abapGit @emineo 04/2018: Start with product development
  • 21. 21© emineo AG abapGit @emineo Software delivery in product development
  • 22. 22© emineo AG abapGit @emineo  Offline repositories Custom development  Export zip  Commit and push with local git client  Usually no import  Backup  Central ABAP knowledge database
  • 23. 23© emineo AG abapGit @emineo  Migration of custom development Migrations  Zip file is exported  Search and replace because of naming conventions  Import Zip file in Offline repository  Lots of repetitions – missing objects  Objects are collected in a dummy transport request
  • 24. 24© emineo AG abapGit @emineo  It works Lessons learned  KISS  Pratice with demo repos  Keep your packages small  Do experiments  Steep learning curve of git -> good online ressources
  • 25. 25© emineo AG abapGit @emineo  Communication is important Lessons learned  Ongoing process of learning and improvement  abapGit is improved steadily  You can fix bugs yourself – and publish them  Trust is important  You can develop new features
  • 26. 26© emineo AG abapGit @emineo  Develop both products with abapGit Goals  Optimize our git workflow – more branches?  Use pull requests in BitBucket  Do code reviews in BitBucket  All ABAP development is in a git repo
  • 27. 27© emineo AG abapGit on SCP ”For code exchange, ABAP PaaS uses the well-known open source solution abapGit (http://docs.abapgit.org).” Source: https://blogs.sap.com/2018/09/04/sap-cloud-platform-abap-environment/ “We know that up to now, version control in ABAP is rather limited, and there is little support for branching, merging or CI/CD (continuous integration/delivery) tool chains. The goal is to renovate the ABAP step by step using a version control system like Git without sacrificing the benefits of the ABAP change and transport system.”
  • 28. 28© emineo AG abapGit @emineo Twitter wall
  • 29. 29© emineo AG abapGit @emineo Questions?
  • 30. 30© emineo AG abapGit @emineo Demo - Backup
  • 31. 31© emineo AG How does abapGit work? .XML
  • 32. 32© emineo AG How does abapGit work? .ABAP
  • 33. 33© emineo AG How does abapGit work? One package (+ subpackages) = one git repository Paket: $DSAG_DEMO
  • 34. 34© emineo AG How does abapGit work? Repository view
  • 35. 35© emineo AG How does abapGit work? Object changed
  • 36. 36© emineo AG How does abapGit work? Diff
  • 37. 37© emineo AG How does abapGit work? Stage and commit
  • 38. 38© emineo AG How does abapGit work? Commit history
  • 39. 39© emineo AG How does abapGit work? https://github.com/christianguenter2/DSAG_DEMO.git DSAG_DEMO repository on GitHub
  • 40. 40© emineo AG How does abapGit work? Commit history
  • 41. 41© emineo AG How does abapGit work? Diff