SlideShare a Scribd company logo
1 of 35
Download to read offline
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

DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
Simplilearn
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 

What's hot (20)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
ABAP Unit and TDD
ABAP Unit and TDDABAP Unit and TDD
ABAP Unit and TDD
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT Industry
 
A Product Manager's Place in a DevOps World
A Product Manager's Place in a DevOps WorldA Product Manager's Place in a DevOps World
A Product Manager's Place in a DevOps World
 
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
 
DevOps: Age Of CI/CD
DevOps: Age Of CI/CDDevOps: Age Of CI/CD
DevOps: Age Of CI/CD
 
The Spotify Playbook
The Spotify Playbook The Spotify Playbook
The Spotify Playbook
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
Scrum at Scale - What's it all about?
Scrum at Scale - What's it all about?Scrum at Scale - What's it all about?
Scrum at Scale - What's it all about?
 
DevOps - A Gentle Introduction
DevOps - A Gentle IntroductionDevOps - A Gentle Introduction
DevOps - A Gentle Introduction
 
Atlassian Overview
Atlassian OverviewAtlassian Overview
Atlassian Overview
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
GitHub Presentation
GitHub PresentationGitHub Presentation
GitHub Presentation
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 

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
 
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
 
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
 

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

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

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