SlideShare ist ein Scribd-Unternehmen logo
Moderne ABAP Entwicklung mit
2© emineo AG
whoami
 Christian Günter
 emineo AG
• Sitz in Zürich
• ~80 MA
• IT Beratung
• Software Engineering
• SAP und non-SAP
 @chris_guenter
 christian.guenter@emineo.ch
3© emineo AG
Agenda
Was?
Warum?
Wie?
Live Demo
4© emineo AG
Was ist git?
Was ist git?
 Versionverwaltungssystem
 Dezentral und dateibasiert
 2005 erschaffen von Linus Torvalds
 Open Source
 De facto Standard in nicht SAP Softwareentwicklung
 Bekannte git Hoster: GitHub, GitLab, BitBucket, SCP…
5© emineo AG
Was is git?
Source: OpenSAP - SAP Cloud Platform Version Control with Git by Arnaldo Cavazos
6© emineo AG
 Git client implementiert in ABAP
 Open Source Projekt
 2014 gestartet von Lars Hvam Petersen
 MIT Lizenz
 Gehostet auf GitHub
 http://abapgit.org
Was ist abapGit?
Was ist abapGit?
7© emineo AG
Was ist abapGit?
43 Mitwirkende: u.a.
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
Was ist abapGit?
Was ist abapGit?
 Online und Offline Repositories
 ~66 000 Zeilen Code
 Min. Release 7.02
 2 700 commits
 82 Objektypen werden unterstützt (CLAS, PROG, uvam.)
9© emineo AG
Was ist abapGit?
Designziele von abapGit
 Leicht zu installieren
 Leicht zu aktualisieren
 Schmaler Fußabdruck im System
 Code soll im git Repository lesbar sein
10© emineo AG
Warum abapGit?
Warum abapGit?
 Optimierungspotenzial in der SAP Versionsverwaltung
 Versionen nur bei Transportfreigabe
 Temporäre Versionen werden gelöscht
 Entwickler hat wenig/keine Kontrolle über Versionierung
 Keine einfachen Rollbacks
 Manche Objekte ohne Versionsverwaltung:
z.B. Smartforms
11© emineo AG
Warum abapGit?
Warum abapGit?
 Eingeschränkte Nachverfolgbarkeit
 Was wurde in den letzten 2 Wochen alles geändert?
 Was wurde seit letztem Release/Transport geändert?
 Wie sah der Code vor drei Monaten aus?
12© emineo AG
Warum abapGit?
Warum abapGit?
13© emineo AG
Warum abapGit?
Warum abapGit?
 abapGit als Backup
 Experimente mit Code problemlos möglich
 Mehr Transparenz
 Enabler für DevOps
 Enabler für Code Reviews
 Kein Ersatz des SAP Transportsystems!
 abapGit als Code Archiv
14© emineo AG
Warum abapGit?
Warum abapGit?
 Installation von Open Source Projekten
 http://dotabap.org/ - Übersicht aller ABAP Projekte
 Inoffizieller Nachfolger von SAPLink
15© emineo AG
Wie funktioniert abapGit?
Online Repository
16© emineo AG
Wie funktioniert abapGit?
Offline Repository
17© emineo AG
Wie funktioniert abapGit?
Serialisierung und Deserialisierung
18© emineo AG
Wie funktioniert abapGit?
Demo
19© emineo AG
Wie funktioniert abapGit?
.XML
20© emineo AG
Wie funktioniert abapGit?
.ABAP
21© emineo AG
Wie funktioniert abapGit?
Ein Paket (+ Unterpakete) = ein git Repository
Paket: $DSAG_DEMO
22© emineo AG
Wie funktioniert abapGit?
Repository Ansicht
23© emineo AG
Wie funktioniert abapGit?
Objekt geändert
24© emineo AG
Wie funktioniert abapGit?
Diff
25© emineo AG
Wie funktioniert abapGit?
Stage und Commit
26© emineo AG
Wie funktioniert abapGit?
Commit Historie
27© emineo AG
Wie funktioniert abapGit?
https://github.com/christianguenter2/DSAG_DEMO.git
DSAG_DEMO Repository auf GitHub
28© emineo AG
Wie funktioniert abapGit?
Commit Historie
29© emineo AG
Wie funktioniert abapGit?
Diff
30© emineo AG
abapGit @emineo
abapGit @emineo
 Zwei ABAP Produkte
 Zwei SAP Entwicklungsteams
 01/2018: Start abapGit Nutzung in einem Team
 Je ein Entwicklungssystem
 BitBucket git Server
 Git ist Standard im Nicht-SAP Bereich
31© emineo AG
abapGit @emineo
04/2018: Einsatz in Produktentwicklung
32© emineo AG
abapGit @emineo
Softwareauslieferung
33© emineo AG
abapGit @emineo
 Offline Repositories
Custom Development
 Export Zip
 Commit und Push mit lokalem git Client
 Normalerweise kein Import
 Backup
 Zentrale ABAP Wissens-“Datenbank”
34© emineo AG
abapGit @emineo
 Migration von Kundenentwicklungen
Migrationen
 Zip Datei wird exportiert
 Suchen und Ersetzen -> Namenskonvention
 Zip in Offline Repository importieren
 Viele Wiederholungen
 Objekte werden in Dummy Transport gesammelt
35© emineo AG
abapGit @emineo
 Es funktioniert
Lessons learned
 Klein und einfach anfangen
 Üben mit Demo Repositories
 Pakete klein halten
 Experimentieren
 Steile lernkurve von git -> gute Online Materialien
36© emineo AG
abapGit @emineo
 Kommunikation ist wichtig
Lessons learned
 Ständiges lernen und optimieren
 abapGit wird stetig verbessert
 Bugs können selbst gefixt werden
 Vertrauen ist wichtig
 Neue Features können selbst entwickelt werden
37© emineo AG
abapGit @emineo
 Alle ABAP Produkte mit abapGit verwalten
Ziele
 Git Workflow optimieren - mehr Branching?
 Pull Requests in BitBucket nutzen
 Code Reviews in BitBucket machen
 Alle ABAP Entwicklungen sind im git
38© emineo AG
abapGit @emineo
Twitter Wall
39© emineo AG
abapGit @emineo
Fragen?
40© emineo AG
abapGit @emineo
Demo

Weitere ähnliche Inhalte

Was ist angesagt?

Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
Noa Harel
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
Alfonso Piscitelli
 
Scrum and DevOps training
Scrum and DevOps trainingScrum and DevOps training
Scrum and DevOps training
Alberto Gonzalez
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
Anwarul Islam
 
Git training
Git trainingGit training
Git training
eric7master
 
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
 
DomainService の Repository 排除と
エラー表現のパターン
DomainService の Repository 排除と
エラー表現のパターンDomainService の Repository 排除と
エラー表現のパターン
DomainService の Repository 排除と
エラー表現のパターン
hogesuzuki
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
MohanRaviRohitth
 
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
Chika SATO
 
Learning git
Learning gitLearning git
Learning git
Sid Anand
 
HANAのハナシの基本のき
HANAのハナシの基本のきHANAのハナシの基本のき
HANAのハナシの基本のき
Koji Shinkubo
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
真乙 九龍
 
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
Edward Kuo
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
🎤 Hanno Embregts 🎸
 
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
Takashi Takizawa
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
Walmyr Carvalho
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
Shuntaro Saiba
 
Introduction git
Introduction gitIntroduction git
Introduction git
Dian Sigit Prastowo
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
貴志 上坂
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
Venkat Malladi
 

Was ist angesagt? (20)

Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Scrum and DevOps training
Scrum and DevOps trainingScrum and DevOps training
Scrum and DevOps training
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
Git training
Git trainingGit training
Git training
 
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...
 
DomainService の Repository 排除と
エラー表現のパターン
DomainService の Repository 排除と
エラー表現のパターンDomainService の Repository 排除と
エラー表現のパターン
DomainService の Repository 排除と
エラー表現のパターン
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
 
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
バックアップことはじめ JPUG第29回しくみ+アプリケーション分科会(2014-05-31)
 
Learning git
Learning gitLearning git
Learning git
 
HANAのハナシの基本のき
HANAのハナシの基本のきHANAのハナシの基本のき
HANAのハナシの基本のき
 
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
【Zabbix2.0】snmpttによるトラップメッセージの編集 #Zabbix #自宅ラック勉強会
 
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
[2022 DevOpsDays Taipei] 走過 DevOps 風雨的下一步
 
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
"Will Git Be Around Forever? A List of Possible Successors" at UtrechtJUG
 
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 

Ähnlich wie Moderne abap entwicklung mit abapGit

DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
FotiosKaramitsos
 
Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - German
CollabNet
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
Stefan Lay
 
Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011
Stefan Lay
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Andreas Günzel
 
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
msohn
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
Marc Müller
 
Neues aus der TYPO3 Welt 10/2018
Neues aus der TYPO3 Welt 10/2018Neues aus der TYPO3 Welt 10/2018
Neues aus der TYPO3 Welt 10/2018
Kai Unterberg
 
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
inovex GmbH
 
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
 jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
gedoplan
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
Marc Müller
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
Verein FM Konferenz
 
2012_10 SNoUG Building Social Software
2012_10 SNoUG Building Social Software2012_10 SNoUG Building Social Software
2012_10 SNoUG Building Social Software
Roman Weber
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobile
inovex GmbH
 
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
NETWAYS
 
Update TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTSUpdate TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTS
CS2 AG
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Bjoern Reinhold
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Tommy Ziegler
 
G&L Tech News 02/17
G&L Tech News 02/17G&L Tech News 02/17

Ähnlich wie Moderne abap entwicklung mit abapGit (20)

DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 
Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - German
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 
Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
 
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
 
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
Neues aus der TYPO3 Welt 10/2018
Neues aus der TYPO3 Welt 10/2018Neues aus der TYPO3 Welt 10/2018
Neues aus der TYPO3 Welt 10/2018
 
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
Hilfe! Agile und die Digitale Transformation haben meinen Job gefressen ...
 
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
 jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen
 
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
TechDays 2016 - Der DevOps Kreislauf – Moderne Source Code Verwaltung und Pac...
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
 
2012_10 SNoUG Building Social Software
2012_10 SNoUG Building Social Software2012_10 SNoUG Building Social Software
2012_10 SNoUG Building Social Software
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobile
 
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
 
Update TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTSUpdate TYPO3 V4.5 > 6.2 LTS
Update TYPO3 V4.5 > 6.2 LTS
 
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
2008 - Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]Übersicht und Beratung von Versionsverwaltungen  für Quellcode (SCM) [2014]
Übersicht und Beratung von Versionsverwaltungen für Quellcode (SCM) [2014]
 
G&L Tech News 02/17
G&L Tech News 02/17G&L Tech News 02/17
G&L Tech News 02/17
 

Moderne abap entwicklung mit abapGit

  • 2. 2© emineo AG whoami  Christian Günter  emineo AG • Sitz in Zürich • ~80 MA • IT Beratung • Software Engineering • SAP und non-SAP  @chris_guenter  christian.guenter@emineo.ch
  • 4. 4© emineo AG Was ist git? Was ist git?  Versionverwaltungssystem  Dezentral und dateibasiert  2005 erschaffen von Linus Torvalds  Open Source  De facto Standard in nicht SAP Softwareentwicklung  Bekannte git Hoster: GitHub, GitLab, BitBucket, SCP…
  • 5. 5© emineo AG Was is git? Source: OpenSAP - SAP Cloud Platform Version Control with Git by Arnaldo Cavazos
  • 6. 6© emineo AG  Git client implementiert in ABAP  Open Source Projekt  2014 gestartet von Lars Hvam Petersen  MIT Lizenz  Gehostet auf GitHub  http://abapgit.org Was ist abapGit? Was ist abapGit?
  • 7. 7© emineo AG Was ist abapGit? 43 Mitwirkende: u.a. 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 Was ist abapGit? Was ist abapGit?  Online und Offline Repositories  ~66 000 Zeilen Code  Min. Release 7.02  2 700 commits  82 Objektypen werden unterstützt (CLAS, PROG, uvam.)
  • 9. 9© emineo AG Was ist abapGit? Designziele von abapGit  Leicht zu installieren  Leicht zu aktualisieren  Schmaler Fußabdruck im System  Code soll im git Repository lesbar sein
  • 10. 10© emineo AG Warum abapGit? Warum abapGit?  Optimierungspotenzial in der SAP Versionsverwaltung  Versionen nur bei Transportfreigabe  Temporäre Versionen werden gelöscht  Entwickler hat wenig/keine Kontrolle über Versionierung  Keine einfachen Rollbacks  Manche Objekte ohne Versionsverwaltung: z.B. Smartforms
  • 11. 11© emineo AG Warum abapGit? Warum abapGit?  Eingeschränkte Nachverfolgbarkeit  Was wurde in den letzten 2 Wochen alles geändert?  Was wurde seit letztem Release/Transport geändert?  Wie sah der Code vor drei Monaten aus?
  • 12. 12© emineo AG Warum abapGit? Warum abapGit?
  • 13. 13© emineo AG Warum abapGit? Warum abapGit?  abapGit als Backup  Experimente mit Code problemlos möglich  Mehr Transparenz  Enabler für DevOps  Enabler für Code Reviews  Kein Ersatz des SAP Transportsystems!  abapGit als Code Archiv
  • 14. 14© emineo AG Warum abapGit? Warum abapGit?  Installation von Open Source Projekten  http://dotabap.org/ - Übersicht aller ABAP Projekte  Inoffizieller Nachfolger von SAPLink
  • 15. 15© emineo AG Wie funktioniert abapGit? Online Repository
  • 16. 16© emineo AG Wie funktioniert abapGit? Offline Repository
  • 17. 17© emineo AG Wie funktioniert abapGit? Serialisierung und Deserialisierung
  • 18. 18© emineo AG Wie funktioniert abapGit? Demo
  • 19. 19© emineo AG Wie funktioniert abapGit? .XML
  • 20. 20© emineo AG Wie funktioniert abapGit? .ABAP
  • 21. 21© emineo AG Wie funktioniert abapGit? Ein Paket (+ Unterpakete) = ein git Repository Paket: $DSAG_DEMO
  • 22. 22© emineo AG Wie funktioniert abapGit? Repository Ansicht
  • 23. 23© emineo AG Wie funktioniert abapGit? Objekt geändert
  • 24. 24© emineo AG Wie funktioniert abapGit? Diff
  • 25. 25© emineo AG Wie funktioniert abapGit? Stage und Commit
  • 26. 26© emineo AG Wie funktioniert abapGit? Commit Historie
  • 27. 27© emineo AG Wie funktioniert abapGit? https://github.com/christianguenter2/DSAG_DEMO.git DSAG_DEMO Repository auf GitHub
  • 28. 28© emineo AG Wie funktioniert abapGit? Commit Historie
  • 29. 29© emineo AG Wie funktioniert abapGit? Diff
  • 30. 30© emineo AG abapGit @emineo abapGit @emineo  Zwei ABAP Produkte  Zwei SAP Entwicklungsteams  01/2018: Start abapGit Nutzung in einem Team  Je ein Entwicklungssystem  BitBucket git Server  Git ist Standard im Nicht-SAP Bereich
  • 31. 31© emineo AG abapGit @emineo 04/2018: Einsatz in Produktentwicklung
  • 32. 32© emineo AG abapGit @emineo Softwareauslieferung
  • 33. 33© emineo AG abapGit @emineo  Offline Repositories Custom Development  Export Zip  Commit und Push mit lokalem git Client  Normalerweise kein Import  Backup  Zentrale ABAP Wissens-“Datenbank”
  • 34. 34© emineo AG abapGit @emineo  Migration von Kundenentwicklungen Migrationen  Zip Datei wird exportiert  Suchen und Ersetzen -> Namenskonvention  Zip in Offline Repository importieren  Viele Wiederholungen  Objekte werden in Dummy Transport gesammelt
  • 35. 35© emineo AG abapGit @emineo  Es funktioniert Lessons learned  Klein und einfach anfangen  Üben mit Demo Repositories  Pakete klein halten  Experimentieren  Steile lernkurve von git -> gute Online Materialien
  • 36. 36© emineo AG abapGit @emineo  Kommunikation ist wichtig Lessons learned  Ständiges lernen und optimieren  abapGit wird stetig verbessert  Bugs können selbst gefixt werden  Vertrauen ist wichtig  Neue Features können selbst entwickelt werden
  • 37. 37© emineo AG abapGit @emineo  Alle ABAP Produkte mit abapGit verwalten Ziele  Git Workflow optimieren - mehr Branching?  Pull Requests in BitBucket nutzen  Code Reviews in BitBucket machen  Alle ABAP Entwicklungen sind im git
  • 38. 38© emineo AG abapGit @emineo Twitter Wall
  • 39. 39© emineo AG abapGit @emineo Fragen?
  • 40. 40© emineo AG abapGit @emineo Demo