SlideShare a Scribd company logo
4 abapGit Use Cases That Will Blow Your Mind
(and gCTS won’t help a bit)
December 2022
Public
Marc Bernard Tools
Essential for SAP® Customers & Partners
M B T
Disclaimer
The information in this presentation is confidential and proprietary to Marc Bernard Tools (“MBT”) and may not be disclosed without the permission of MBT. Except for
your obligation to protect confidential information, this presentation is not subject to your license agreement or any other service or subscription agreement with MBT.
MBT has no obligation to pursue any course of business outlined in this presentation or any related document, or to develop or release any functionality mentioned
therein.
This presentation, or any related document and MBT's strategy and possible future developments, products and or platforms directions and functionality are all subject
to change and may be changed by MBT at any time for any reason without notice. The information in this presentation is not a commitment, promise or legal obligation
to deliver any material, code or functionality. This presentation is provided without a warranty of any kind, either express or implied, including but not limited to, the
implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This presentation is for informational purposes and may not be incorporated
into a contract. MBT assumes no responsibility for errors or omissions in this presentation, except if such damages were caused by MBT’s intentional or gross negligence.
All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned
not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions.
© ABAPConf 2022. All rights reserved. Public | 2
Marc Bernard 🚀
Building awesome open-source tools
for SAP customers, partners, and developers
Bootstrapping 💥 Marc Bernard Tools 💥 Top Contributor to
© ABAPConf 2022. All rights reserved. Public | 3
For the Record
This is not a feature comparison
between abapGit and SAP gCTS
gCTS is in active development
Some things mentioned here might be possible with gCTS
already or will be possible in a future release
© ABAPConf 2022. All rights reserved. Public | 4
Disclaimer
All characters and events
depicted in this talk are entirely fictitious.
Any similarity to actual events or persons,
living or dead, is purely coincidental.
© ABAPConf 2022. All rights reserved. Public | 5
Code on the Fly, Literally
How abapGit saves the day
when there’s no access to the internet
© ABAPConf 2022. All rights reserved. Public | 6
Scenario
• You are a developer of a new solution
• A customer calls and wants to sign a big contract for it
• But one more feature is required… by tomorrow
• You’re in North America and the customer in Europe
• There’s no internet on the plane
• The customer SAP system is not connected to the web
© ABAPConf 2022. All rights reserved. Public | 7
Challenge
Can you get the job done?
Code the changes,
bring them to the customer,
and merge them into their dev system
and meet the deadline?
© ABAPConf 2022. All rights reserved. Public | 8
What You Need
• Laptop with ABAP docker image
• abapGit with an “offline repository”
• USB stick
• … and an overnight flight to Europe
© ABAPConf 2022. All rights reserved. Public | 9
© ABAPConf 2022. All rights reserved. Public | 10
Demo: offline repositories
• Implement the required feature during the flight
• When done use abapGit to export the project to ZIP file
• At customer, if necessary, install abapGit
• Import you ZIP file
• View and check diffs
(customer might have changed things)
• Merge changes
© ABAPConf 2022. All rights reserved. Public | 11
Demo: offline repositories
Sharing is Caring
How you can share code among colleagues or
contribute to the ABAP open-source community
© ABAPConf 2022. All rights reserved. Public | 12
Scenario
• You have developed a diff3 library in your ERP dev system
• Your colleague in CRM has the same requirements
• The systems are on different releases and
not connected by any transport route
• If you make changes, your colleague needs them too
• Company policy prohibits using external git servers
© ABAPConf 2022. All rights reserved. Public | 13
Challenge
Can you get the job done?
Find a way to share your development objects,
and automate the synchronization process?
© ABAPConf 2022. All rights reserved. Public | 14
What You Need
• abapGit installed on ERP and CRM dev systems
• Git server inside your firewall
(you can use an ABAP system for that: abapGitServer)
• Background jobs to push or pull the repositories
© ABAPConf 2022. All rights reserved. Public | 15
© ABAPConf 2022. All rights reserved. Public | 16
Demo: background mode
Demo: background mode
• Create a repository on your internal git server
• Push your diff3 library and future changes to the repo
• Provide repo read access to your colleague
• Pull library from repo into the CRM system
• Setup automatic background sync in the CRM abapGit
© ABAPConf 2022. All rights reserved. Public | 17
Intermezzo: sponsor us
© ABAPConf 2022. All rights reserved. Public | 18
https://abapgit.org
Travel Back in Time
How to protect your ABAP apps and restore any part
of them to any point in time on any release
© ABAPConf 2022. All rights reserved. Public | 19
Scenario
• You need to reverse some changes to your code
(typical “it used to work before” case)
• But you don’t remember who made the change or why it was
made
© ABAPConf 2022. All rights reserved. Public | 20
Challenge
Can you get the job done?
Find out who made the change,
when it was done, and by whom,
and restore only the relevant object?
© ABAPConf 2022. All rights reserved. Public | 21
What You Need
• Git blame and commit history
• abapGit with “selective pull”
© ABAPConf 2022. All rights reserved. Public | 22
Demo: blame and commit history
© ABAPConf 2022. All rights reserved. Public | 23
Demo: blame and commit history
• Use git blame to identify who made the change and
when
• Find the corresponding commit and copy the SHA1
• Change the remote settings of your repository to
“Commit” and paste the SHA1 code
• View diffs and perform a selective pull
© ABAPConf 2022. All rights reserved. Public | 24
Feel the Fear and Do It Anyway
How you can change or even delete any code or
config and stay cool as a cucumber
© ABAPConf 2022. All rights reserved. Public | 25
Scenario
• You are refactoring a lot of code
• The task will take several months
• It’s not clear if the planned changes will work correctly
• Old code is turned into comments, just in case
© ABAPConf 2022. All rights reserved. Public | 26
Challenge
Can you get the job done?
Refactor the solution
without turning your code base
into a complete mess?
© ABAPConf 2022. All rights reserved. Public | 27
Bonus Scenario
• Your company needs to cut expenses and fires some
employees
• In his last minutes, a malicious developer runs a program
deleting dozens of packages in your dev system
• Last backup is a week old, and many things were not even
transported
© ABAPConf 2022. All rights reserved. Public | 28
Challenge
Can you get the job done?
Are you able to restore all developments
to their most recent state?
© ABAPConf 2022. All rights reserved. Public | 29
What You Need
• abapGit
• Backup of all development to git repositories
• Regular commits
© ABAPConf 2022. All rights reserved. Public | 30
© ABAPConf 2022. All rights reserved. Public | 31
Demo: delete & restore
Thank You!
M B T
© ABAPConf 2022. All rights reserved. Public | 32
Contact Information
Marc Bernard
Founder and CEO of Marc Bernard Tools
marc@marcbernardtools.com
@marcfbe
https://github.com/mbtools
Learn More
© ABAPConf 2022. All rights reserved. Public | 33
Resources
• https://abapgit.org/
• https://docs.abapgit.org/
• https://github.com/AntonSikidin/elitechat
• https://github.com/Marc-Bernard-Tools/ABAP-Diff3
• https://github.com/abapGit/CI
© ABAPConf 2022. All rights reserved. Public | 34
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of Marc Bernard Tools (“MBT”). The information
contained herein may be changed without prior notice. Some software products marketed by MBT and its distributors contain proprietary software components of other software
vendors. National product specifications may vary.
These materials are provided by MBT for informational purposes only, without representation or warranty of any kind, and MBT shall not be liable for errors or omissions with
respect to the materials. The only warranties for MBT products and services are those that are set forth in the express warranty statements accompanying such products and
services if any. Nothing herein should be construed as constituting an additional warranty.
In particular, MBT has no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned
therein. This document, or any related presentation and MBT’s strategy and possible future developments, products, and/or platform directions and functionality are all subject to
change and may be changed by MBT at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any
material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations.
Readers are cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions.
SAP® and its solutions and services are the trademarks or registered trademarks of SAP SE in Germany and in several other countries.
MBT products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of MBT in Canada and other countries. All other product and
service names mentioned are the trademarks of their respective companies.
See http://marcbernardtools.com/legal for additional trademark information and notices.
© 2022 Marc Bernard Tools. All rights reserved.
© ABAPConf 2022. All rights reserved. Public | 35
Marc Bernard Tools
Essential for SAP® Customers & Partners
M B T

More Related Content

What's hot

GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
Omar Fathy
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
Simplilearn
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
CodeOps Technologies LLP
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
DevOps.com
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
JEMLI Fathi
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
Knoldus Inc.
 
Difference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs BitbucketDifference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs Bitbucket
jeetendra mandal
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
Ihor Odynets
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
LGS, GBHS&IC, University Of South-Asia, TARA-Technologies
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
J On The Beach
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
Weaveworks
 
#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit
Christian Günter
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
Batyr Nuryyev
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
Nicola Baldi
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
Taisuke Inoue
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
Noa Harel
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...
Weaveworks
 
Cloud Pub_Sub
Cloud Pub_SubCloud Pub_Sub
Cloud Pub_Sub
Knoldus Inc.
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
Wojciech Barczyński
 

What's hot (20)

GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
CI/CD Best Practices for Your DevOps Journey
CI/CD Best  Practices for Your DevOps JourneyCI/CD Best  Practices for Your DevOps Journey
CI/CD Best Practices for Your DevOps Journey
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
Gitlab CI/CD
Gitlab CI/CDGitlab CI/CD
Gitlab CI/CD
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
Difference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs BitbucketDifference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs Bitbucket
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
 
GitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott RigbyGitOps for Helm Users by Scott Rigby
GitOps for Helm Users by Scott Rigby
 
#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Introducing GitLab (September 2018)
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
 
GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...GitOps - Modern best practices for high velocity app dev using cloud native t...
GitOps - Modern best practices for high velocity app dev using cloud native t...
 
Cloud Pub_Sub
Cloud Pub_SubCloud Pub_Sub
Cloud Pub_Sub
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
 

Similar to abapGit Use Cases

BTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdf
BTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdfBTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdf
BTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdf
samimbangalore
 
SFMUG April 2020
SFMUG April 2020SFMUG April 2020
SFMUG April 2020
Jeff Canada
 
IBM Interconnect 2017 - Maximo update
IBM Interconnect 2017 - Maximo updateIBM Interconnect 2017 - Maximo update
IBM Interconnect 2017 - Maximo update
Cyrus Sorab
 
Guiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic WorldGuiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic World
Eric de Jager
 
Ensure the integration of Microservices with Consumer Driven Contracts
Ensure the integration of Microservices with Consumer Driven ContractsEnsure the integration of Microservices with Consumer Driven Contracts
Ensure the integration of Microservices with Consumer Driven Contracts
Ingo Griebsch
 
The convergence of reporting and interactive BI on Hadoop
The convergence of reporting and interactive BI on HadoopThe convergence of reporting and interactive BI on Hadoop
The convergence of reporting and interactive BI on Hadoop
DataWorks Summit
 
Design Dynamics: Elevating UiPath Apps with UX Wireframes
Design Dynamics: Elevating UiPath Apps with UX WireframesDesign Dynamics: Elevating UiPath Apps with UX Wireframes
Design Dynamics: Elevating UiPath Apps with UX Wireframes
DianaGray10
 
Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019
Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019
Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019
Jitendra Kansal
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk Introduction
Ioana Baldini
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Alfonso Martino
 
SAP TechEd 2018 OPP103 – An Introduction to DevOps
SAP TechEd 2018 OPP103 – An Introduction to DevOpsSAP TechEd 2018 OPP103 – An Introduction to DevOps
SAP TechEd 2018 OPP103 – An Introduction to DevOps
SAP Cloud Platform
 
Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03
Wiiisdom
 
SAP Leonardo Blockchain Services and Use-Cases
SAP Leonardo Blockchain Services and Use-CasesSAP Leonardo Blockchain Services and Use-Cases
SAP Leonardo Blockchain Services and Use-Cases
Nagesh Caparthy
 
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
Erin Schnabel
 
DevOps Thinking for the Line of Business
DevOps Thinking for the Line of BusinessDevOps Thinking for the Line of Business
DevOps Thinking for the Line of Business
Sanjeev Sharma
 
IBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and ScenariosIBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and Scenarios
Niklas Heidloff
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
0xdaryl
 
Snowflake: The most cost-effective agile and scalable data warehouse ever!
Snowflake: The most cost-effective agile and scalable data warehouse ever!Snowflake: The most cost-effective agile and scalable data warehouse ever!
Snowflake: The most cost-effective agile and scalable data warehouse ever!
Visual_BI
 
PhillyForce 2018 - Salesforce Platform Keynote
PhillyForce 2018  - Salesforce Platform KeynotePhillyForce 2018  - Salesforce Platform Keynote
PhillyForce 2018 - Salesforce Platform Keynote
andyinthecloud
 

Similar to abapGit Use Cases (20)

BTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdf
BTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdfBTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdf
BTP+Onboarding+Webinar+-+SAP+Build+Apps+January+2024.pdf
 
SFMUG April 2020
SFMUG April 2020SFMUG April 2020
SFMUG April 2020
 
IBM Interconnect 2017 - Maximo update
IBM Interconnect 2017 - Maximo updateIBM Interconnect 2017 - Maximo update
IBM Interconnect 2017 - Maximo update
 
Guiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic WorldGuiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic World
 
Ensure the integration of Microservices with Consumer Driven Contracts
Ensure the integration of Microservices with Consumer Driven ContractsEnsure the integration of Microservices with Consumer Driven Contracts
Ensure the integration of Microservices with Consumer Driven Contracts
 
The convergence of reporting and interactive BI on Hadoop
The convergence of reporting and interactive BI on HadoopThe convergence of reporting and interactive BI on Hadoop
The convergence of reporting and interactive BI on Hadoop
 
Design Dynamics: Elevating UiPath Apps with UX Wireframes
Design Dynamics: Elevating UiPath Apps with UX WireframesDesign Dynamics: Elevating UiPath Apps with UX Wireframes
Design Dynamics: Elevating UiPath Apps with UX Wireframes
 
Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019
Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019
Build Cross-Platform application using Mobile Development Kit - #sitBCN 2019
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk Introduction
 
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptxMulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
Mulesoft Meetup Roma - Monitoring Framework & DevOps.pptx
 
SAP TechEd 2018 OPP103 – An Introduction to DevOps
SAP TechEd 2018 OPP103 – An Introduction to DevOpsSAP TechEd 2018 OPP103 – An Introduction to DevOps
SAP TechEd 2018 OPP103 – An Introduction to DevOps
 
Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03
 
SAP Leonardo Blockchain Services and Use-Cases
SAP Leonardo Blockchain Services and Use-CasesSAP Leonardo Blockchain Services and Use-Cases
SAP Leonardo Blockchain Services and Use-Cases
 
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
 
Marketing Plan
Marketing PlanMarketing Plan
Marketing Plan
 
DevOps Thinking for the Line of Business
DevOps Thinking for the Line of BusinessDevOps Thinking for the Line of Business
DevOps Thinking for the Line of Business
 
IBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and ScenariosIBM Social Business Toolkit SDK - Playground and Scenarios
IBM Social Business Toolkit SDK - Playground and Scenarios
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
Snowflake: The most cost-effective agile and scalable data warehouse ever!
Snowflake: The most cost-effective agile and scalable data warehouse ever!Snowflake: The most cost-effective agile and scalable data warehouse ever!
Snowflake: The most cost-effective agile and scalable data warehouse ever!
 
PhillyForce 2018 - Salesforce Platform Keynote
PhillyForce 2018  - Salesforce Platform KeynotePhillyForce 2018  - Salesforce Platform Keynote
PhillyForce 2018 - Salesforce Platform Keynote
 

Recently uploaded

Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
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
 
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
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
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
 
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
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
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
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
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
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
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
 

Recently uploaded (20)

Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
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
 
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
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
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 ⚡️
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
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)
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
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
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
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
 

abapGit Use Cases

  • 1. 4 abapGit Use Cases That Will Blow Your Mind (and gCTS won’t help a bit) December 2022 Public Marc Bernard Tools Essential for SAP® Customers & Partners M B T
  • 2. Disclaimer The information in this presentation is confidential and proprietary to Marc Bernard Tools (“MBT”) and may not be disclosed without the permission of MBT. Except for your obligation to protect confidential information, this presentation is not subject to your license agreement or any other service or subscription agreement with MBT. MBT has no obligation to pursue any course of business outlined in this presentation or any related document, or to develop or release any functionality mentioned therein. This presentation, or any related document and MBT's strategy and possible future developments, products and or platforms directions and functionality are all subject to change and may be changed by MBT at any time for any reason without notice. The information in this presentation is not a commitment, promise or legal obligation to deliver any material, code or functionality. This presentation is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This presentation is for informational purposes and may not be incorporated into a contract. MBT assumes no responsibility for errors or omissions in this presentation, except if such damages were caused by MBT’s intentional or gross negligence. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions. © ABAPConf 2022. All rights reserved. Public | 2
  • 3. Marc Bernard 🚀 Building awesome open-source tools for SAP customers, partners, and developers Bootstrapping 💥 Marc Bernard Tools 💥 Top Contributor to © ABAPConf 2022. All rights reserved. Public | 3
  • 4. For the Record This is not a feature comparison between abapGit and SAP gCTS gCTS is in active development Some things mentioned here might be possible with gCTS already or will be possible in a future release © ABAPConf 2022. All rights reserved. Public | 4
  • 5. Disclaimer All characters and events depicted in this talk are entirely fictitious. Any similarity to actual events or persons, living or dead, is purely coincidental. © ABAPConf 2022. All rights reserved. Public | 5
  • 6. Code on the Fly, Literally How abapGit saves the day when there’s no access to the internet © ABAPConf 2022. All rights reserved. Public | 6
  • 7. Scenario • You are a developer of a new solution • A customer calls and wants to sign a big contract for it • But one more feature is required… by tomorrow • You’re in North America and the customer in Europe • There’s no internet on the plane • The customer SAP system is not connected to the web © ABAPConf 2022. All rights reserved. Public | 7
  • 8. Challenge Can you get the job done? Code the changes, bring them to the customer, and merge them into their dev system and meet the deadline? © ABAPConf 2022. All rights reserved. Public | 8
  • 9. What You Need • Laptop with ABAP docker image • abapGit with an “offline repository” • USB stick • … and an overnight flight to Europe © ABAPConf 2022. All rights reserved. Public | 9
  • 10. © ABAPConf 2022. All rights reserved. Public | 10 Demo: offline repositories
  • 11. • Implement the required feature during the flight • When done use abapGit to export the project to ZIP file • At customer, if necessary, install abapGit • Import you ZIP file • View and check diffs (customer might have changed things) • Merge changes © ABAPConf 2022. All rights reserved. Public | 11 Demo: offline repositories
  • 12. Sharing is Caring How you can share code among colleagues or contribute to the ABAP open-source community © ABAPConf 2022. All rights reserved. Public | 12
  • 13. Scenario • You have developed a diff3 library in your ERP dev system • Your colleague in CRM has the same requirements • The systems are on different releases and not connected by any transport route • If you make changes, your colleague needs them too • Company policy prohibits using external git servers © ABAPConf 2022. All rights reserved. Public | 13
  • 14. Challenge Can you get the job done? Find a way to share your development objects, and automate the synchronization process? © ABAPConf 2022. All rights reserved. Public | 14
  • 15. What You Need • abapGit installed on ERP and CRM dev systems • Git server inside your firewall (you can use an ABAP system for that: abapGitServer) • Background jobs to push or pull the repositories © ABAPConf 2022. All rights reserved. Public | 15
  • 16. © ABAPConf 2022. All rights reserved. Public | 16 Demo: background mode
  • 17. Demo: background mode • Create a repository on your internal git server • Push your diff3 library and future changes to the repo • Provide repo read access to your colleague • Pull library from repo into the CRM system • Setup automatic background sync in the CRM abapGit © ABAPConf 2022. All rights reserved. Public | 17
  • 18. Intermezzo: sponsor us © ABAPConf 2022. All rights reserved. Public | 18 https://abapgit.org
  • 19. Travel Back in Time How to protect your ABAP apps and restore any part of them to any point in time on any release © ABAPConf 2022. All rights reserved. Public | 19
  • 20. Scenario • You need to reverse some changes to your code (typical “it used to work before” case) • But you don’t remember who made the change or why it was made © ABAPConf 2022. All rights reserved. Public | 20
  • 21. Challenge Can you get the job done? Find out who made the change, when it was done, and by whom, and restore only the relevant object? © ABAPConf 2022. All rights reserved. Public | 21
  • 22. What You Need • Git blame and commit history • abapGit with “selective pull” © ABAPConf 2022. All rights reserved. Public | 22
  • 23. Demo: blame and commit history © ABAPConf 2022. All rights reserved. Public | 23
  • 24. Demo: blame and commit history • Use git blame to identify who made the change and when • Find the corresponding commit and copy the SHA1 • Change the remote settings of your repository to “Commit” and paste the SHA1 code • View diffs and perform a selective pull © ABAPConf 2022. All rights reserved. Public | 24
  • 25. Feel the Fear and Do It Anyway How you can change or even delete any code or config and stay cool as a cucumber © ABAPConf 2022. All rights reserved. Public | 25
  • 26. Scenario • You are refactoring a lot of code • The task will take several months • It’s not clear if the planned changes will work correctly • Old code is turned into comments, just in case © ABAPConf 2022. All rights reserved. Public | 26
  • 27. Challenge Can you get the job done? Refactor the solution without turning your code base into a complete mess? © ABAPConf 2022. All rights reserved. Public | 27
  • 28. Bonus Scenario • Your company needs to cut expenses and fires some employees • In his last minutes, a malicious developer runs a program deleting dozens of packages in your dev system • Last backup is a week old, and many things were not even transported © ABAPConf 2022. All rights reserved. Public | 28
  • 29. Challenge Can you get the job done? Are you able to restore all developments to their most recent state? © ABAPConf 2022. All rights reserved. Public | 29
  • 30. What You Need • abapGit • Backup of all development to git repositories • Regular commits © ABAPConf 2022. All rights reserved. Public | 30
  • 31. © ABAPConf 2022. All rights reserved. Public | 31 Demo: delete & restore
  • 32. Thank You! M B T © ABAPConf 2022. All rights reserved. Public | 32 Contact Information Marc Bernard Founder and CEO of Marc Bernard Tools marc@marcbernardtools.com @marcfbe https://github.com/mbtools
  • 33. Learn More © ABAPConf 2022. All rights reserved. Public | 33
  • 34. Resources • https://abapgit.org/ • https://docs.abapgit.org/ • https://github.com/AntonSikidin/elitechat • https://github.com/Marc-Bernard-Tools/ABAP-Diff3 • https://github.com/abapGit/CI © ABAPConf 2022. All rights reserved. Public | 34
  • 35. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of Marc Bernard Tools (“MBT”). The information contained herein may be changed without prior notice. Some software products marketed by MBT and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by MBT for informational purposes only, without representation or warranty of any kind, and MBT shall not be liable for errors or omissions with respect to the materials. The only warranties for MBT products and services are those that are set forth in the express warranty statements accompanying such products and services if any. Nothing herein should be construed as constituting an additional warranty. In particular, MBT has no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation and MBT’s strategy and possible future developments, products, and/or platform directions and functionality are all subject to change and may be changed by MBT at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions. SAP® and its solutions and services are the trademarks or registered trademarks of SAP SE in Germany and in several other countries. MBT products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of MBT in Canada and other countries. All other product and service names mentioned are the trademarks of their respective companies. See http://marcbernardtools.com/legal for additional trademark information and notices. © 2022 Marc Bernard Tools. All rights reserved. © ABAPConf 2022. All rights reserved. Public | 35 Marc Bernard Tools Essential for SAP® Customers & Partners M B T