SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
SVN to Git Migration
Technology
➔
    Gitolite.
➔
    Atlassian Suite.
➔
    Internal system ”Octopus”.
Migrating
 the code
git-svn
➔
    Slow...
➔
    Didn't handle shallow merges well.
➔
    Our old branches didn't map well.
➔
    Works fine for small repos.
➔
    Not right for our repo.
svn-all-fast-export
➔
    Faster.
➔
    Direct access to git from C libs.
➔
    Easier to configure.
svn-all-fast-export
# rules­map
create repository bigcommerce
end repository 
match /trunk/ 
   repository bigcommerce 
   branch master 
end match
...
match /branches/([^/]+)/
   repository bigcommerce
   branch 1
end match
...
match /tags/7.3.23/
   repository bigcommerce
   branch refs/tags/7.3.23
   annotated true
end match
svn-all-fast-export
# svn­authors
anna.pomroy = Anna Pomroy <anna.pomroy@bigcommerce.com>
chris.beckett = Chris Beckett <chris.beckett@bigcommerce.com>
chris.boulton = Chris Boulton <chris.boulton@bigcommerce.com>
...

# import command
svn­all­fast­export ­­identity­map svn­authors ­­rules 
map ­­add­metadata /var/svn/bigcommerce
svn-all-fast-export
➔
    Problem:
       
           Post migration branch amnesia.
       
           Only affected some branches.
➔
    Solution(s):
       
           Patch from the original svn branch.
       
           Rebranch in git, resolve lots of conflicts and
            pay close attention!
svn-all-fast-export
➔
    Problem:
       
           Wrong revision used to create a branch on
            import.
➔
    Solution:
       
           Fix it in the source & submit a patch!
       
           Check & double check...
How are we
 using git?
SVN branching model
                                        Tues       Mon            Tues       Mon


Stability
                        Feature-Y



            Feature-X



       Trunk


                                                                     RC-02




                                                              x
                                    RC-01




                                                           tfi
                                                         Ho
                                                   1.0                       1.2


                                            Time
Gitflow branching model
                                    Tues       Mon   Tues        Mon


Stability
                        Feature/y



            Feature/x



     Develop




                                     Release/1.0       Release/1.3


    master                                                           1.3
                                               1.0   1.2             1.3


                                        Time
Rome wasn't
built in a day...
Identified issues
➔
    svn:ignore.
       
           Create .gitignore
➔
    Empty directories.
       
           Fill with .empty files
➔
    Commit hooks.
       
           Use gitty for hook management.
Unidentified problems

➔
    ”Time & tide waits for no man”.
       
           We were fixing the deployment system
            ”Octopus” on the day.
       
           Last minute cherry-picks to tags/branches to
             get them working.
Why did we do it?
                           ”...what if anything is
    ”I miss my git            blocking us from
                            switching to git for
staging area already”          source control?”




  ”Maybe we should          ”f**k; I keep
  evaluate git more”      typing git status”
Immediate Benefits
➔
    Decentralised, remote work.
➔
    Much, much faster.
➔
    Staged commits, stashes.
➔
    Flexible & powerful cmd line.
Questions?

Contenu connexe

Tendances (20)

Using Subversion and Git Together
Using Subversion and Git TogetherUsing Subversion and Git Together
Using Subversion and Git Together
 
Git commands
Git commandsGit commands
Git commands
 
Getting started with git svn
Getting started with git svnGetting started with git svn
Getting started with git svn
 
Basic Git
Basic GitBasic Git
Basic Git
 
Git introduction workshop for scientists
Git introduction workshop for scientists Git introduction workshop for scientists
Git introduction workshop for scientists
 
Git
GitGit
Git
 
Advanced Git Presentation By Swawibe
Advanced Git Presentation By SwawibeAdvanced Git Presentation By Swawibe
Advanced Git Presentation By Swawibe
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
Git basic
Git basicGit basic
Git basic
 
Git basics
Git basicsGit basics
Git basics
 
Git basics
Git basicsGit basics
Git basics
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Basic principles of Git
Basic principles of GitBasic principles of Git
Basic principles of Git
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Version Control Systems with git (and github) as an example
Version Control Systems with git (and github) as an exampleVersion Control Systems with git (and github) as an example
Version Control Systems with git (and github) as an example
 
Subversion in a distributed world
Subversion in a distributed worldSubversion in a distributed world
Subversion in a distributed world
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Git in 5 Minutes
Git in 5 MinutesGit in 5 Minutes
Git in 5 Minutes
 

En vedette

Five Minute Fleet Market Findings
Five Minute Fleet Market FindingsFive Minute Fleet Market Findings
Five Minute Fleet Market Findingscwrighttelematics
 
Practical eCommerce with WooCommerce
Practical eCommerce with WooCommercePractical eCommerce with WooCommerce
Practical eCommerce with WooCommerceBrian Krogsgard
 
Final project for eme 2040
Final project for eme 2040Final project for eme 2040
Final project for eme 2040ellapeters92
 
長野市放課後子ども総合プラン有料化の方針
長野市放課後子ども総合プラン有料化の方針長野市放課後子ども総合プラン有料化の方針
長野市放課後子ども総合プラン有料化の方針長野市議会議員小泉一真
 
Python - پایتون
Python - پایتونPython - پایتون
Python - پایتونefazati
 
United States Armed Forces Decoded
United States Armed Forces DecodedUnited States Armed Forces Decoded
United States Armed Forces Decodedgranimal
 
Power Notes Atomic Structure Day 3
Power Notes   Atomic Structure Day 3Power Notes   Atomic Structure Day 3
Power Notes Atomic Structure Day 3jmori1
 
Kewajipan menunaikan solat
Kewajipan menunaikan solatKewajipan menunaikan solat
Kewajipan menunaikan solatawatifz83
 
Cells homeostasis_and_disease
Cells  homeostasis_and_diseaseCells  homeostasis_and_disease
Cells homeostasis_and_diseasellVictorGmll
 
Overview of the Virginia Education Wizard
Overview of the Virginia Education WizardOverview of the Virginia Education Wizard
Overview of the Virginia Education Wizardchjensen
 
Cameco and indigenous development case study
Cameco and indigenous development   case studyCameco and indigenous development   case study
Cameco and indigenous development case studyWayne Dunn
 

En vedette (20)

Five Minute Fleet Market Findings
Five Minute Fleet Market FindingsFive Minute Fleet Market Findings
Five Minute Fleet Market Findings
 
Big era 2
Big era 2Big era 2
Big era 2
 
Mm wcmc v12
Mm wcmc v12Mm wcmc v12
Mm wcmc v12
 
Practical eCommerce with WooCommerce
Practical eCommerce with WooCommercePractical eCommerce with WooCommerce
Practical eCommerce with WooCommerce
 
Final project for eme 2040
Final project for eme 2040Final project for eme 2040
Final project for eme 2040
 
長野市放課後子ども総合プラン有料化の方針
長野市放課後子ども総合プラン有料化の方針長野市放課後子ども総合プラン有料化の方針
長野市放課後子ども総合プラン有料化の方針
 
Python - پایتون
Python - پایتونPython - پایتون
Python - پایتون
 
United States Armed Forces Decoded
United States Armed Forces DecodedUnited States Armed Forces Decoded
United States Armed Forces Decoded
 
Традо питание по дошам
Традо питание по дошамТрадо питание по дошам
Традо питание по дошам
 
Notam 01-01-17
Notam 01-01-17Notam 01-01-17
Notam 01-01-17
 
Power Notes Atomic Structure Day 3
Power Notes   Atomic Structure Day 3Power Notes   Atomic Structure Day 3
Power Notes Atomic Structure Day 3
 
Jyrahb
JyrahbJyrahb
Jyrahb
 
100 quotes
100 quotes100 quotes
100 quotes
 
What do you know about the moon
What do you know about the moonWhat do you know about the moon
What do you know about the moon
 
Kewajipan menunaikan solat
Kewajipan menunaikan solatKewajipan menunaikan solat
Kewajipan menunaikan solat
 
India
IndiaIndia
India
 
Cells homeostasis_and_disease
Cells  homeostasis_and_diseaseCells  homeostasis_and_disease
Cells homeostasis_and_disease
 
Overview of the Virginia Education Wizard
Overview of the Virginia Education WizardOverview of the Virginia Education Wizard
Overview of the Virginia Education Wizard
 
Accesspro3
Accesspro3Accesspro3
Accesspro3
 
Cameco and indigenous development case study
Cameco and indigenous development   case studyCameco and indigenous development   case study
Cameco and indigenous development case study
 

Similaire à Subversion to Git Migration

Similaire à Subversion to Git Migration (20)

Git
GitGit
Git
 
Git
GitGit
Git
 
With git
With gitWith git
With git
 
Wokshop de Git
Wokshop de Git Wokshop de Git
Wokshop de Git
 
M.Mozūras - git
M.Mozūras - gitM.Mozūras - git
M.Mozūras - git
 
Git and git hub
Git and git hubGit and git hub
Git and git hub
 
Moving to Git
Moving to GitMoving to Git
Moving to Git
 
インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門インフラエンジニアのためのGit入門
インフラエンジニアのためのGit入門
 
How to use git without rage
How to use git without rageHow to use git without rage
How to use git without rage
 
Git
GitGit
Git
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
 
Using Git as your VCS with Bioconductor
Using Git as your VCS with BioconductorUsing Git as your VCS with Bioconductor
Using Git as your VCS with Bioconductor
 
Switching to Git
Switching to GitSwitching to Git
Switching to Git
 
Gitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de BranchesGitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de Branches
 
Git basic stanley hsiao 2010_12_15
Git basic stanley hsiao 2010_12_15Git basic stanley hsiao 2010_12_15
Git basic stanley hsiao 2010_12_15
 
Git
GitGit
Git
 
Git
GitGit
Git
 
git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 

Dernier

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 

Dernier (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 

Subversion to Git Migration