SlideShare a Scribd company logo
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

More Related Content

What's hot

Git workflows
Git workflowsGit workflows
Git workflows
Sergiu Savva
 
SAP Fiori UX/UI
SAP Fiori UX/UISAP Fiori UX/UI
SAP Fiori UX/UI
Ankit Jain
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model
abodeltae
 
Neoito — GitLab for project management
Neoito — GitLab for project managementNeoito — GitLab for project management
Neoito — GitLab for project management
Neoito
 
10 differences between SAFe and LeSS
10 differences between SAFe and LeSS10 differences between SAFe and LeSS
10 differences between SAFe and LeSS
Stanislaw Matczak
 
OSS Governance
OSS GovernanceOSS Governance
Git workflows
Git workflowsGit workflows
Git workflows
Xpand IT
 
GitOps is IaC done right
GitOps is IaC done rightGitOps is IaC done right
GitOps is IaC done right
Chen Cheng-Wei
 
Sapui5 & Fiori
Sapui5 & FioriSapui5 & Fiori
Sapui5 & Fiori
B.Raj Shekhar
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
Otto Kekäläinen
 
Gap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOpsGap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOps
Marc Hornbeek
 
Sprint
SprintSprint
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 
An Introduction to Scaled Agile Framework (SAFe)
An Introduction to Scaled Agile Framework (SAFe)An Introduction to Scaled Agile Framework (SAFe)
An Introduction to Scaled Agile Framework (SAFe)
CA Technologies
 
Lunch and Learn Initiative
Lunch and Learn InitiativeLunch and Learn Initiative
Lunch and Learn Initiative
William Burkey, MBA
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
William Caban
 
Impact Mapping: Making an Impact over Shipping Software
Impact Mapping: Making an Impact over Shipping SoftwareImpact Mapping: Making an Impact over Shipping Software
Impact Mapping: Making an Impact over Shipping Software
Em Campbell-Pretty
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
Mack Hardy
 
sap fiori architecture
sap fiori architecturesap fiori architecture
sap fiori architecture
Phanindra Mortha
 
Git and GitHub Info Session
Git and GitHub Info SessionGit and GitHub Info Session
Git and GitHub Info Session
SawanBhattacharya
 

What's hot (20)

Git workflows
Git workflowsGit workflows
Git workflows
 
SAP Fiori UX/UI
SAP Fiori UX/UISAP Fiori UX/UI
SAP Fiori UX/UI
 
A successful Git branching model
A successful Git branching model A successful Git branching model
A successful Git branching model
 
Neoito — GitLab for project management
Neoito — GitLab for project managementNeoito — GitLab for project management
Neoito — GitLab for project management
 
10 differences between SAFe and LeSS
10 differences between SAFe and LeSS10 differences between SAFe and LeSS
10 differences between SAFe and LeSS
 
OSS Governance
OSS GovernanceOSS Governance
OSS Governance
 
Git workflows
Git workflowsGit workflows
Git workflows
 
GitOps is IaC done right
GitOps is IaC done rightGitOps is IaC done right
GitOps is IaC done right
 
Sapui5 & Fiori
Sapui5 & FioriSapui5 & Fiori
Sapui5 & Fiori
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Gap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOpsGap Survey, Assessment and Analysis for DevSecOps
Gap Survey, Assessment and Analysis for DevSecOps
 
Sprint
SprintSprint
Sprint
 
Git basics
Git basicsGit basics
Git basics
 
An Introduction to Scaled Agile Framework (SAFe)
An Introduction to Scaled Agile Framework (SAFe)An Introduction to Scaled Agile Framework (SAFe)
An Introduction to Scaled Agile Framework (SAFe)
 
Lunch and Learn Initiative
Lunch and Learn InitiativeLunch and Learn Initiative
Lunch and Learn Initiative
 
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
GitOps, Driving NGN Operations Teams 211127 #kcdgt 2021
 
Impact Mapping: Making an Impact over Shipping Software
Impact Mapping: Making an Impact over Shipping SoftwareImpact Mapping: Making an Impact over Shipping Software
Impact Mapping: Making an Impact over Shipping Software
 
Git workflows presentation
Git workflows presentationGit workflows presentation
Git workflows presentation
 
sap fiori architecture
sap fiori architecturesap fiori architecture
sap fiori architecture
 
Git and GitHub Info Session
Git and GitHub Info SessionGit and GitHub Info Session
Git and GitHub Info Session
 

Similar to #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 introduction
Hendrik Neumann
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
Sascha Junkert
 
Evolution of GitLab Frontend
Evolution of GitLab FrontendEvolution of GitLab Frontend
Evolution of GitLab Frontend
Fatih Acet
 
Cloud Native with Kyma
Cloud Native with KymaCloud Native with Kyma
Cloud Native with Kyma
Piotr Kopczynski
 
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, London
Jacek Centkowski
 
GitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLabGitLab Frontend and VueJS at GitLab
GitLab Frontend and VueJS at GitLab
Fatih 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 process
Alexander Geppart
 
Axway's Journey to the Cloud
Axway's Journey to the CloudAxway's Journey to the Cloud
Axway's Journey to the Cloud
Axway
 
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
sparkfabrik
 
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
 
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
Weaveworks
 
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 Managers
Purav 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 Trends
Noa Harel
 
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
Emerasoft, solutions to collaborate
 
SAP Hybris Commerce Technical Upgrade
SAP Hybris Commerce Technical UpgradeSAP Hybris Commerce Technical Upgrade
SAP Hybris Commerce Technical Upgrade
SAP Customer Experience
 
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
Weaveworks
 
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
Royston Lobo
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
Noa Harel
 

Similar to #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
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
 
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
 
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...
 
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)
 

Recently uploaded

Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 

Recently uploaded (20)

Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 

#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