SlideShare ist ein Scribd-Unternehmen logo
1 von 40
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?

KPTの基本と、その活用法
KPTの基本と、その活用法KPTの基本と、その活用法
KPTの基本と、その活用法ESM SEC
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)akira6592
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
30分で理解するLet's Encryptの仕組みとSSL証明書の使い方
30分で理解するLet's Encryptの仕組みとSSL証明書の使い方30分で理解するLet's Encryptの仕組みとSSL証明書の使い方
30分で理解するLet's Encryptの仕組みとSSL証明書の使い方法林浩之
 
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介Daisuke Ikeda
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Yahoo!デベロッパーネットワーク
 
GitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyo
GitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyoGitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyo
GitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyoYahoo!デベロッパーネットワーク
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)株式会社MonotaRO Tech Team
 
図解gitworkflows(7)
図解gitworkflows(7)図解gitworkflows(7)
図解gitworkflows(7)ktateish
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理H2O Space. Co., Ltd.
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザktateish
 
アジャイル開発の中の設計
アジャイル開発の中の設計アジャイル開発の中の設計
アジャイル開発の中の設計Takuya Okamoto
 
コミュニティと人の縁
コミュニティと人の縁コミュニティと人の縁
コミュニティと人の縁Takuya Okamoto
 
OpenWhiskを使ってみた
OpenWhiskを使ってみたOpenWhiskを使ってみた
OpenWhiskを使ってみたKozo Fukugauchi
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should knowTakuto Wada
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しようAmazon Web Services Japan
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウムT. Suwa
 

Was ist angesagt? (20)

KPTの基本と、その活用法
KPTの基本と、その活用法KPTの基本と、その活用法
KPTの基本と、その活用法
 
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
30分で理解するLet's Encryptの仕組みとSSL証明書の使い方
30分で理解するLet's Encryptの仕組みとSSL証明書の使い方30分で理解するLet's Encryptの仕組みとSSL証明書の使い方
30分で理解するLet's Encryptの仕組みとSSL証明書の使い方
 
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
手作業なしの安定環境実現に向けたZabbix活用方法紹介+Zabbix2.4最新機能紹介
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
GitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyo
GitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyoGitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyo
GitHubを導入したいとき、どう説得していこう #GitHubSatelliteTokyo
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
 
図解gitworkflows(7)
図解gitworkflows(7)図解gitworkflows(7)
図解gitworkflows(7)
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
 
アジャイル開発の中の設計
アジャイル開発の中の設計アジャイル開発の中の設計
アジャイル開発の中の設計
 
Za atsu-20170328
Za atsu-20170328Za atsu-20170328
Za atsu-20170328
 
コミュニティと人の縁
コミュニティと人の縁コミュニティと人の縁
コミュニティと人の縁
 
Fiberの使いどころ
Fiberの使いどころFiberの使いどころ
Fiberの使いどころ
 
OpenWhiskを使ってみた
OpenWhiskを使ってみたOpenWhiskを使ってみた
OpenWhiskを使ってみた
 
いつやるの?Git入門
いつやるの?Git入門いつやるの?Git入門
いつやるの?Git入門
 
The only one big thing every programmer should know
The only one big thing every programmer should knowThe only one big thing every programmer should know
The only one big thing every programmer should know
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
 

Ä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 predigenFotiosKaramitsos
 
Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanCollabNet
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und GerritStefan Lay
 
Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Stefan 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 cloudAndreas 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/2018Kai 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 Fachanwendungengedoplan
 
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 HirtVerein FM Konferenz
 
2012_10 SNoUG Building Social Software
2012_10 SNoUG Building Social Software2012_10 SNoUG Building Social Software
2012_10 SNoUG Building Social SoftwareRoman Weber
 
Build Automation for Mobile
Build Automation for MobileBuild Automation for Mobile
Build Automation for Mobileinovex 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 LTSCS2 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 UnternehmenBjoern 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 UnternehmenBjoern 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
 

Ä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