SlideShare a Scribd company logo
1 of 18
Download to read offline
Real-World Git
Stuff We Didn’t Cover Last Time
Stuff to Cover
1. Migrating from Subversion
2. Branching strategies
3. Branch-management commands
a. Merge
b. Rebase
c. Interactive rebase
d. Cherry pick
Migrating from Subversion
Three aspects:
1. Import commits
2. Clean up metadata
a. Authors
b. Tags
3. eHarmony infrastructure
Best practice:
Repository per
artifact
Easier Way
git svn clone <subversion_url>
• Built into git, brings in all commits and branches
• Can import Subversion subdirectories
http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git
• Authors looks like this in history:
rwarren <rwarren@4c93b258-373f-11de-
be05-5f7a86268029>
• Subversion tags become Git branches
More Complete Way
1. Get svn2git from
https://github.com/nirvdrum/svn2git
2. Build list of authors in your history
• Manually, or:
svn log ^/ --xml | grep -P
"^<author" | sort -u | perl -pe
's/<author>(.*?)</author>/$1 = /'
More Complete Way
3. Import: svn2git <subversion_url>
<local_dir> --authors
<authors_file>
https://wiki.corp.eharmony.com/display/MAT/Matching+SVN+to+Git+migration
• Subversion tags are recognized as Git tags
• Authors look like this in the history:
Rick Warren <rwarren@eharmony.com>
Either Way
1. Push to Git repository:
$ git remote add origin <git_url>
$ git push origin --all
$ git push origin --tags
2. Set up eHarmony stuff
a. Add build/release jobs in Jenkins
b. Add repositories to Crucible
Branching Strategies
Remember:
• Everything is a branch. It ain’t no thing, y’all.
• You can rename or rebase your branch if you
screw up (but you’ll cause pain to your team)
• Stuff happens: keep one branch releasable.
What We Do in Matching
• Release from master, and keep it releasable
• Do stories on branches: “MAT-1234_feature”
• When master released, merge to branch
• Preliminary QA acceptance on branch
• Merge to master, release, accept again
Fancier: Git Flow
• master == latest release
• develop == latest integration, accumulating
merges until next release
• Specialized branches, off develop:
features, hot fixes, release stabilization
• Built directly into some Git clients
http://nvie.com/posts/a-successful-git-branching-model/
Rebasing
• Replay the commits of one branch on top of another branch
• Use as an alternative to merge, if you value “clean” history
http://git-scm.com/book/ch3-6.html
before after
Interactive Rebasing
Do any of these apply to you?
• Big, coarse commits: you fear sharing changes too
early.
• Lots going on in your working copy: you lose track
of what you’ve changed, and occasionally revert a
file by accident.
• Five minutes after committing, you realize you
missed something.
Solution: Interactive Rebase
• Commit early and often, to checkpoint each fine-
grained change.
• Wait to push until ready to share.
• Squash and reorder unshared commits in the
mean time.
older
newer
git rebase -i
$ git rebase -i HEAD~5
In editor:
pick 2174c26 MAT-1234: Pruned dependencies
pick 4d1d456 MAT-5678: Improved validation
pick aedba8f MAT-9876: Updated API
pick 6727eca MAT-5432: Removed cruft
pick 0afb08b MAT-1098: Fixed bean name
git rebase -i
pick: Keep commit
reword: Change message
squash: Combine with previous
pick 2174c26 MAT-1234: Pruned dependencies
pick 4d1d456 MAT-5678: Improved validation
pick aedba8f MAT-9876: Updated API
pick 6727eca MAT-5432: Removed cruft
pick 0afb08b MAT-1098: Fixed bean name
Word of Warning
• Commits are immutable
• Rebasing doesn’t delete old commits; it just
makes new ones
• Rebasing can’t remove those old commits from
others’ local repositories
• Don’t rebase any commits that you’ve pushed
Cherry Pick
• Copy commit(s) from history onto current branch
• Leaves source branch alone
• Use when merging is impossible or premature
http://git-scm.com/docs/git-cherry-pick
Please Enjoy Git
Responsibly

More Related Content

What's hot

Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2Omar Fathy
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshareRakesh Sukumar
 
Version control git day02
Version control   git day02Version control   git day02
Version control git day02Gourav Varma
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Omar Fathy
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...WSO2
 
Version control git day01
Version control   git day01Version control   git day01
Version control git day01Gourav Varma
 
Migrating to git
Migrating to gitMigrating to git
Migrating to gitXpand IT
 
HacktoberFest-Git&GitHub
HacktoberFest-Git&GitHubHacktoberFest-Git&GitHub
HacktoberFest-Git&GitHubGDSCIIITBbsr
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucketMedhat Dawoud
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucketSumin Byeon
 
Workshop on Git and GitHub
Workshop on Git and GitHubWorkshop on Git and GitHub
Workshop on Git and GitHubDSCVSSUT
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersNoam Kfir
 
Cheltenham Geeks - git talk/interactive session
Cheltenham Geeks - git talk/interactive sessionCheltenham Geeks - git talk/interactive session
Cheltenham Geeks - git talk/interactive sessionMatt Breckon
 

What's hot (20)

Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2Introduction to Git and GitHub Part 2
Introduction to Git and GitHub Part 2
 
Git 101
Git 101Git 101
Git 101
 
Introduction to github slideshare
Introduction to github slideshareIntroduction to github slideshare
Introduction to github slideshare
 
Git presentation
Git presentationGit presentation
Git presentation
 
Version control git day02
Version control   git day02Version control   git day02
Version control git day02
 
Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1Introduction to Git and GitHub Part 1
Introduction to Git and GitHub Part 1
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
 
Version control git day01
Version control   git day01Version control   git day01
Version control git day01
 
Migrating to git
Migrating to gitMigrating to git
Migrating to git
 
Git & GitHub N00bs
Git & GitHub N00bsGit & GitHub N00bs
Git & GitHub N00bs
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
 
HacktoberFest-Git&GitHub
HacktoberFest-Git&GitHubHacktoberFest-Git&GitHub
HacktoberFest-Git&GitHub
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Workshop on Git and GitHub
Workshop on Git and GitHubWorkshop on Git and GitHub
Workshop on Git and GitHub
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS Users
 
Cheltenham Geeks - git talk/interactive session
Cheltenham Geeks - git talk/interactive sessionCheltenham Geeks - git talk/interactive session
Cheltenham Geeks - git talk/interactive session
 
Webinar : SVN to GIT Migration
Webinar : SVN to GIT Migration Webinar : SVN to GIT Migration
Webinar : SVN to GIT Migration
 

Viewers also liked

El respeto a todos nos toca
El respeto a todos nos tocaEl respeto a todos nos toca
El respeto a todos nos tocaAlvaro Tovar
 
Construyendo nuestra vida ibe callao #12
Construyendo nuestra vida ibe callao #12Construyendo nuestra vida ibe callao #12
Construyendo nuestra vida ibe callao #12IBE Callao
 
Ester, llamada para el momento oportuno # 3 ibe callao
Ester, llamada para el momento oportuno # 3 ibe callaoEster, llamada para el momento oportuno # 3 ibe callao
Ester, llamada para el momento oportuno # 3 ibe callaoIBE Callao
 
Libro rick warren - el poder de transformar su vida
Libro   rick warren - el poder de transformar su vidaLibro   rick warren - el poder de transformar su vida
Libro rick warren - el poder de transformar su vidaVICTOR CASTRO
 
Cuidando lo que amamos y lo que tenemos 8
Cuidando lo que amamos y lo que tenemos 8Cuidando lo que amamos y lo que tenemos 8
Cuidando lo que amamos y lo que tenemos 8IBE Callao
 
Restaurando nuestro arbol genealogico i ibe pachacutec
Restaurando nuestro arbol genealogico i ibe pachacutecRestaurando nuestro arbol genealogico i ibe pachacutec
Restaurando nuestro arbol genealogico i ibe pachacutecIBE Callao
 
Usando nuestros hombros aniversario 2014 ibe callao
Usando nuestros hombros aniversario 2014 ibe callaoUsando nuestros hombros aniversario 2014 ibe callao
Usando nuestros hombros aniversario 2014 ibe callaoIBE Callao
 
Convicciones que transforman #11 ibe callao
Convicciones que transforman #11  ibe callaoConvicciones que transforman #11  ibe callao
Convicciones que transforman #11 ibe callaoIBE Callao
 
La seguridad de la salvación iii aniversario ibe callao
La seguridad de la salvación iii aniversario ibe callaoLa seguridad de la salvación iii aniversario ibe callao
La seguridad de la salvación iii aniversario ibe callaoIBE Callao
 
Como entender a mi pareja ibe callao 2015
Como entender a mi pareja ibe callao 2015Como entender a mi pareja ibe callao 2015
Como entender a mi pareja ibe callao 2015IBE Callao
 
Lo que debo de saber antes de ofrendar
Lo que debo de saber antes de ofrendarLo que debo de saber antes de ofrendar
Lo que debo de saber antes de ofrendarAron Perez
 
Orando por los planes futuros Parte 2 - 19.12.2012
Orando por los planes futuros Parte 2 - 19.12.2012Orando por los planes futuros Parte 2 - 19.12.2012
Orando por los planes futuros Parte 2 - 19.12.2012iacymcallao
 
La seguridad de la salvación iv aniversario ibe callao
La seguridad de la salvación iv aniversario ibe callaoLa seguridad de la salvación iv aniversario ibe callao
La seguridad de la salvación iv aniversario ibe callaoIBE Callao
 
Si la cama hablara ibe callao minis matrimonios
Si la cama hablara ibe callao minis matrimoniosSi la cama hablara ibe callao minis matrimonios
Si la cama hablara ibe callao minis matrimoniosIBE Callao
 
Ser como jesus servidores ibe callao marzo 2016 ok
Ser como jesus servidores ibe callao marzo 2016 okSer como jesus servidores ibe callao marzo 2016 ok
Ser como jesus servidores ibe callao marzo 2016 okIBE Callao
 
Una vida-con-proposito3819
Una vida-con-proposito3819Una vida-con-proposito3819
Una vida-con-proposito3819Aron Perez
 
Cómo vivir sin que peleas nos distancien ibe callao ministerio matrimonios
Cómo vivir sin que peleas nos distancien ibe callao ministerio matrimoniosCómo vivir sin que peleas nos distancien ibe callao ministerio matrimonios
Cómo vivir sin que peleas nos distancien ibe callao ministerio matrimoniosIBE Callao
 
Rick Warren - Liderazgo con Propósito Especialmente pata Ti.
Rick Warren - Liderazgo con Propósito Especialmente pata Ti.Rick Warren - Liderazgo con Propósito Especialmente pata Ti.
Rick Warren - Liderazgo con Propósito Especialmente pata Ti.Ariel Skromne S
 

Viewers also liked (20)

El respeto a todos nos toca
El respeto a todos nos tocaEl respeto a todos nos toca
El respeto a todos nos toca
 
Construyendo nuestra vida ibe callao #12
Construyendo nuestra vida ibe callao #12Construyendo nuestra vida ibe callao #12
Construyendo nuestra vida ibe callao #12
 
Ester, llamada para el momento oportuno # 3 ibe callao
Ester, llamada para el momento oportuno # 3 ibe callaoEster, llamada para el momento oportuno # 3 ibe callao
Ester, llamada para el momento oportuno # 3 ibe callao
 
Libro rick warren - el poder de transformar su vida
Libro   rick warren - el poder de transformar su vidaLibro   rick warren - el poder de transformar su vida
Libro rick warren - el poder de transformar su vida
 
Cuidando lo que amamos y lo que tenemos 8
Cuidando lo que amamos y lo que tenemos 8Cuidando lo que amamos y lo que tenemos 8
Cuidando lo que amamos y lo que tenemos 8
 
Restaurando nuestro arbol genealogico i ibe pachacutec
Restaurando nuestro arbol genealogico i ibe pachacutecRestaurando nuestro arbol genealogico i ibe pachacutec
Restaurando nuestro arbol genealogico i ibe pachacutec
 
Usando nuestros hombros aniversario 2014 ibe callao
Usando nuestros hombros aniversario 2014 ibe callaoUsando nuestros hombros aniversario 2014 ibe callao
Usando nuestros hombros aniversario 2014 ibe callao
 
Convicciones que transforman #11 ibe callao
Convicciones que transforman #11  ibe callaoConvicciones que transforman #11  ibe callao
Convicciones que transforman #11 ibe callao
 
La seguridad de la salvación iii aniversario ibe callao
La seguridad de la salvación iii aniversario ibe callaoLa seguridad de la salvación iii aniversario ibe callao
La seguridad de la salvación iii aniversario ibe callao
 
Como entender a mi pareja ibe callao 2015
Como entender a mi pareja ibe callao 2015Como entender a mi pareja ibe callao 2015
Como entender a mi pareja ibe callao 2015
 
El perdon 02 (matrimonios)
El perdon 02 (matrimonios)El perdon 02 (matrimonios)
El perdon 02 (matrimonios)
 
Lo que debo de saber antes de ofrendar
Lo que debo de saber antes de ofrendarLo que debo de saber antes de ofrendar
Lo que debo de saber antes de ofrendar
 
Orando por los planes futuros Parte 2 - 19.12.2012
Orando por los planes futuros Parte 2 - 19.12.2012Orando por los planes futuros Parte 2 - 19.12.2012
Orando por los planes futuros Parte 2 - 19.12.2012
 
La seguridad de la salvación iv aniversario ibe callao
La seguridad de la salvación iv aniversario ibe callaoLa seguridad de la salvación iv aniversario ibe callao
La seguridad de la salvación iv aniversario ibe callao
 
Si la cama hablara ibe callao minis matrimonios
Si la cama hablara ibe callao minis matrimoniosSi la cama hablara ibe callao minis matrimonios
Si la cama hablara ibe callao minis matrimonios
 
Ser como jesus servidores ibe callao marzo 2016 ok
Ser como jesus servidores ibe callao marzo 2016 okSer como jesus servidores ibe callao marzo 2016 ok
Ser como jesus servidores ibe callao marzo 2016 ok
 
El perdon 03 (matrimonios)
El perdon 03 (matrimonios)El perdon 03 (matrimonios)
El perdon 03 (matrimonios)
 
Una vida-con-proposito3819
Una vida-con-proposito3819Una vida-con-proposito3819
Una vida-con-proposito3819
 
Cómo vivir sin que peleas nos distancien ibe callao ministerio matrimonios
Cómo vivir sin que peleas nos distancien ibe callao ministerio matrimoniosCómo vivir sin que peleas nos distancien ibe callao ministerio matrimonios
Cómo vivir sin que peleas nos distancien ibe callao ministerio matrimonios
 
Rick Warren - Liderazgo con Propósito Especialmente pata Ti.
Rick Warren - Liderazgo con Propósito Especialmente pata Ti.Rick Warren - Liderazgo con Propósito Especialmente pata Ti.
Rick Warren - Liderazgo con Propósito Especialmente pata Ti.
 

Similar to Real-World Git

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubBigBlueHat
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubVenkat Malladi
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github Max Claus Nunes
 
Git and GitHub (1).pptx
Git and GitHub (1).pptxGit and GitHub (1).pptx
Git and GitHub (1).pptxBetelAddisu
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configurationKishor Kumar
 
Git tutorial
Git tutorialGit tutorial
Git tutorialmobaires
 
An introduction to Git
An introduction to GitAn introduction to Git
An introduction to GitMuhil Vannan
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubKim Moir
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践Terry Wang
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdfTilton2
 
Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideRaghavendraVattikuti1
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践Terry Wang
 

Similar to Real-World Git (20)

The Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHubThe Basics of Open Source Collaboration With Git and GitHub
The Basics of Open Source Collaboration With Git and GitHub
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 
Git and GitHub (1).pptx
Git and GitHub (1).pptxGit and GitHub (1).pptx
Git and GitHub (1).pptx
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Git basic
Git basicGit basic
Git basic
 
An introduction to Git
An introduction to GitAn introduction to Git
An introduction to Git
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
 
Git 101
Git 101Git 101
Git 101
 
Git training v10
Git training v10Git training v10
Git training v10
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Techoalien git
Techoalien gitTechoalien git
Techoalien git
 
Git
GitGit
Git
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slide
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践
 

More from Rick Warren

Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaRick Warren
 
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to ProductionLetters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to ProductionRick Warren
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data DistributionRick Warren
 
Data-centric Invocable Services
Data-centric Invocable ServicesData-centric Invocable Services
Data-centric Invocable ServicesRick Warren
 
Engineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsEngineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsRick Warren
 
Scaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and DevicesScaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and DevicesRick Warren
 
DDS in a Nutshell
DDS in a NutshellDDS in a Nutshell
DDS in a NutshellRick Warren
 
Java 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final SubmissionJava 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final SubmissionRick Warren
 
Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)Rick Warren
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionRick Warren
 
Web-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionWeb-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionRick Warren
 
Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)Rick Warren
 
Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1Rick Warren
 
Mapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric ModelMapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric ModelRick Warren
 
Large-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceLarge-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceRick Warren
 
Data-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureData-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureRick Warren
 
Extensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDSExtensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDSRick Warren
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSRick Warren
 
Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)Rick Warren
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDSRick Warren
 

More from Rick Warren (20)

Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
 
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to ProductionLetters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data Distribution
 
Data-centric Invocable Services
Data-centric Invocable ServicesData-centric Invocable Services
Data-centric Invocable Services
 
Engineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsEngineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable Systems
 
Scaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and DevicesScaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and Devices
 
DDS in a Nutshell
DDS in a NutshellDDS in a Nutshell
DDS in a Nutshell
 
Java 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final SubmissionJava 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final Submission
 
Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised Submission
 
Web-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionWeb-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised Submission
 
Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)
 
Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1
 
Mapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric ModelMapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric Model
 
Large-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceLarge-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and Finance
 
Data-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureData-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System Architecture
 
Extensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDSExtensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDS
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDS
 
Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 

Recently uploaded

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 

Recently uploaded (20)

Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 

Real-World Git

  • 1. Real-World Git Stuff We Didn’t Cover Last Time
  • 2. Stuff to Cover 1. Migrating from Subversion 2. Branching strategies 3. Branch-management commands a. Merge b. Rebase c. Interactive rebase d. Cherry pick
  • 3. Migrating from Subversion Three aspects: 1. Import commits 2. Clean up metadata a. Authors b. Tags 3. eHarmony infrastructure Best practice: Repository per artifact
  • 4. Easier Way git svn clone <subversion_url> • Built into git, brings in all commits and branches • Can import Subversion subdirectories http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git • Authors looks like this in history: rwarren <rwarren@4c93b258-373f-11de- be05-5f7a86268029> • Subversion tags become Git branches
  • 5. More Complete Way 1. Get svn2git from https://github.com/nirvdrum/svn2git 2. Build list of authors in your history • Manually, or: svn log ^/ --xml | grep -P "^<author" | sort -u | perl -pe 's/<author>(.*?)</author>/$1 = /'
  • 6. More Complete Way 3. Import: svn2git <subversion_url> <local_dir> --authors <authors_file> https://wiki.corp.eharmony.com/display/MAT/Matching+SVN+to+Git+migration • Subversion tags are recognized as Git tags • Authors look like this in the history: Rick Warren <rwarren@eharmony.com>
  • 7. Either Way 1. Push to Git repository: $ git remote add origin <git_url> $ git push origin --all $ git push origin --tags 2. Set up eHarmony stuff a. Add build/release jobs in Jenkins b. Add repositories to Crucible
  • 8. Branching Strategies Remember: • Everything is a branch. It ain’t no thing, y’all. • You can rename or rebase your branch if you screw up (but you’ll cause pain to your team) • Stuff happens: keep one branch releasable.
  • 9. What We Do in Matching • Release from master, and keep it releasable • Do stories on branches: “MAT-1234_feature” • When master released, merge to branch • Preliminary QA acceptance on branch • Merge to master, release, accept again
  • 10. Fancier: Git Flow • master == latest release • develop == latest integration, accumulating merges until next release • Specialized branches, off develop: features, hot fixes, release stabilization • Built directly into some Git clients http://nvie.com/posts/a-successful-git-branching-model/
  • 11. Rebasing • Replay the commits of one branch on top of another branch • Use as an alternative to merge, if you value “clean” history http://git-scm.com/book/ch3-6.html before after
  • 12. Interactive Rebasing Do any of these apply to you? • Big, coarse commits: you fear sharing changes too early. • Lots going on in your working copy: you lose track of what you’ve changed, and occasionally revert a file by accident. • Five minutes after committing, you realize you missed something.
  • 13. Solution: Interactive Rebase • Commit early and often, to checkpoint each fine- grained change. • Wait to push until ready to share. • Squash and reorder unshared commits in the mean time.
  • 14. older newer git rebase -i $ git rebase -i HEAD~5 In editor: pick 2174c26 MAT-1234: Pruned dependencies pick 4d1d456 MAT-5678: Improved validation pick aedba8f MAT-9876: Updated API pick 6727eca MAT-5432: Removed cruft pick 0afb08b MAT-1098: Fixed bean name
  • 15. git rebase -i pick: Keep commit reword: Change message squash: Combine with previous pick 2174c26 MAT-1234: Pruned dependencies pick 4d1d456 MAT-5678: Improved validation pick aedba8f MAT-9876: Updated API pick 6727eca MAT-5432: Removed cruft pick 0afb08b MAT-1098: Fixed bean name
  • 16. Word of Warning • Commits are immutable • Rebasing doesn’t delete old commits; it just makes new ones • Rebasing can’t remove those old commits from others’ local repositories • Don’t rebase any commits that you’ve pushed
  • 17. Cherry Pick • Copy commit(s) from history onto current branch • Leaves source branch alone • Use when merging is impossible or premature http://git-scm.com/docs/git-cherry-pick