SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
1
1
Distributed Version Control (DVCS)
in the Enterprise


Justen Stepka, Atlassian




                                     2
                                         2
Agenda
• What is DVCS?
• Migration case study
• Atlassian and DVCS




                         3
                             3
What is DVCS?




                4
                    4
Version Control Systems
• Popular options     • Common Problems
 • CVS (1990)          • Server or network downtimes
 • Subversion(2000)    • Distributed teams have network latency issues
 • Perforce            • Merging between branches is a PITA
 • ClearCase




                                                                         5
                                                                             5
VCS deployments

                                                      Alice




                                                 ll
                                             Pu
               Checkout




                                         	
  /	
  
                                         sh
                 Add




                                        Pu
               Remove
                          Remote
                Update
                          Central	
  
                 Log
                Commit
                          Repos.
                Merge
         Bob




                             Pull
                          Bamboo




                                                              6
                                                                  6
Distributed Version Control (DVCS)
• Popular options           • Benefits over VCS
 • Git                       • Localized commits
 • Mercurial                 • Full revision and branch history locally
 • Bazaar                    • No server downtime
 • BitKeeper (commercial)




                                                                          7
                                                                              7
DVCS deployments
                                                       Alice’s
                                                       Repos.


                                                 l
                                                                    Alice
                                                l
                                        /	
  Pu
                                   h	
  
                                us




                                                          Pull
                              P



              Add
            Remove
            Update
              Log    Bob’s         Push	
  /	
  Pull   Master	
  
            Commit   Repos.                            Repos.
              Diff
             Merge
      Bob




                                                         Pull
                                Pu
                                     sh
                                                                    Bamboo
                                                       Custom
                                                        Builds




                                                                             8
                                                                                 8
VCS                                                                     DVCS



                      Easy	
  branching                                                        Easy	
  Branching



                                                                    Core	
  func9onality	
  -­‐	
  tracks	
  your	
  merge	
  history,	
  even	
  
                      Painful	
  merging
                                                                                    between	
  file	
  renames



                  Tool	
  support	
  kicks	
  ass                            Tool	
  support	
  varies	
  by	
  implementa9on


                                                                        Experiment	
  with	
  local	
  commits	
  and	
  branches,	
  
            Requires	
  a	
  network	
  connec9on                       easily	
  rollback	
  changes.	
  Great	
  for	
  distributed	
  
                                                                                                  teams.


Authorita9ve	
  trunk	
  is	
  well	
  known	
  and	
  understood   Authorita9ve	
  trunk	
  must	
  be	
  defined	
  and	
  enforced




                                                                                                                                                     9
                                                                                                                                                         9
Git or Mercurial?




                    10
                     10
Git
• Great for Linux / Mac
• Windows support is limited, but upcoming
• 150+ commands, complex for newbies
• Developed using C
• Used by many open-source projects
• GitHub - http://github.com
•

                                             11
                                              11
Mercurial
• Excellent support across all platforms
• An easier learning curve than Git - similar commands to Subversion
• Smaller community adoption
• Developed using Python - extendable
• BitBucket - http://www.bitbucket.org
•



                                                                       12
                                                                        12
Whoʼs using what?
             Mercurial           Git


              Adium          Android


              Python          jQuery


             OpenJDK      Linux	
  Kernel


           OpenOffice.org         Perl


             Netbeans     Ruby	
  on	
  Rails


               Vim             Wine




                                                13
                                                 13
Desktop Tool Support
               Tool                  Mercurial                         Git


                                          	
  Linux                  	
  Linux
         Command	
  line                     	
  Mac	
                  	
  Mac
                                     	
  Windows	
           	
  Windows	
  (cygwin)


          IntelliJ	
  IDEA       	
  Mul9ple	
  plugins        	
  Na9ve	
  support



             Eclipse             	
  Mul9ple	
  plugins       	
  Mul9ple	
  plugins



         Visual	
  Studio    VisualHG	
  (most	
  popular)    Mul9ple	
  plugins




                                                                                       14
                                                                                        14
Migration Case Study




                       15
                        15
What DVCS should you use?




                            16
                             16
Personal preference
• “Mercurial is your smart friend who lies to explain things to you. Git is
  your genius coworker who signs and rolls his eyes every time you ask
  him a question.”
  http://thebuild.com/blog/2009/11/04/git-vs-mercurial/




                                                                              17
                                                                               17
WTF is moving to Mercurial
Our Team, Website Task Force
• 1 dev in Sydney, 2 devs and a graphics designer in San Francisco
• 24 hour turn around on bugs, 48 hour turn around on copy changes

Larger projects run in parallel to daily updates
Problems with Subversion
• Maintaining multiple branches is a pain in the ass
• Overhead of maintaining branches complicates our ability to have a 24 / 48 hour turn
  around
• Members of the Sydney team are far from the data, slow subversion


                                                                                         18
                                                                                          18
Key reasons for moving to Mercurial
1. Tool and platform support is better
2. Learning curve - the existing command structure mirrors Subversion




                                                                        19
                                                                         19
How much code are we talking about?




                                      20
                                       20
Migrating to Mercurial
• Mercurialʼs built in ConvertExtension
 • Converts existing CVS and Subversion repositories into a Mercurial repository

• Mercurial hgsubversion extension
 • Used to mirror and existing Subversion repository
    • local (offline) commits
    • Useful for experimenting
 • Converts an existing Subversion repository into a Mercurial repository




                                                                                   21
                                                                                    21
ConvertExtension
• Built into Mercurial - needs to be enabled in your ~/.hgrc config
• Failed several times processing our Subversion repository
• Took ~31 hours to convert 370k lines of code
• Does not support the extraction of branch or tag information




                                                                     22
                                                                      22
23
 23
hgsubversion extension
• Subversion closing utility
    • Use Mercurial as a Subversion client
    • Export your Subversion code to start a new
      share Mercurial repository

• Exports all branch and tag information
• 2 hours to convert 370k lines of code
•



                                                   24
                                                    24
Exporting the code to
• Your can either setup your own server, or
• Experiment with BitBucket as your code hosting provider
 • branching visualization
 • user management




                                                            25
                                                             25
26
 26
Atlassian and DVCS




                     27
                      27
JIRA and DVCS
                      Integrate with FishEye
        +             Alpha support for Mercurial with FishEye May 2010
                      Git support with FishEye 2.0 June 2009
 JIRA       FishEye


                      JIRA 4 and 4.1
        +             Released in Sept 2007
                      Updated release June 2010, actively developed
 JIRA       Plugin




        +
                      Released August 2009
                      JIRA 3.12 and 3.13
 JIRA       Plugin

                                                                          28
                                                                           28
Bamboo and DVCS

          +
                              Dog-food testing internally
                              Expected in the next release, later this year
 Bamboo        Integration




                              Bamboo 2.2 - 2.5
          +                   Released March 2010
 Bamboo       GitHub Plugin




                                                                              29
                                                                               29
Wrap-up
 DVCS is a shift in the way we use version control
 • “Instead of asking what problems it solves, you should be asking what new
   possibilities it offers”

• Git and Mercurial are emerging as the two main standards
• Atlassian is going to expand support for Git and Mercurial
• Several teams at Atlassian have, or are making the switch to Mercurial
• Subversion to DVCS bridges exist if youʼd like to experiment without
  making the full switch
 • If youʼre experimenting with Mercurial, use the hgsubversion extension
                                                                               30
                                                                                30
Resources
• Hg Init: a Mercurial tutorial - http://hginit.com
• BitBucket - http://www.bitbucket.org
• Github - http://www.github.com
• hgsubversion - http://bitbucket.org/durin32/hgsubversion




                                                             31
                                                              31

Contenu connexe

Tendances

Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oom
day
 
20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop
Digicomp Academy AG
 
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
Benoit Hudzia
 
Server Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and WatchdogServer Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and Watchdog
ConFoo
 
CompatibleOne @ OpenWorldForum 2011
CompatibleOne @ OpenWorldForum 2011CompatibleOne @ OpenWorldForum 2011
CompatibleOne @ OpenWorldForum 2011
CompatibleOne
 

Tendances (17)

Tim Cramer, Eucaday
Tim Cramer, EucadayTim Cramer, Eucaday
Tim Cramer, Eucaday
 
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE Application
 
Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oom
 
What’s new System Center 2012 SP1, VMM
What’s new System Center 2012 SP1, VMMWhat’s new System Center 2012 SP1, VMM
What’s new System Center 2012 SP1, VMM
 
Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011
 
Xen.org Latinoware 2009
Xen.org Latinoware 2009Xen.org Latinoware 2009
Xen.org Latinoware 2009
 
Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7
 
UTHOC2 - Under The Hood of Oracle Clusterware 2.0 - Grid Infrastructure by Al...
UTHOC2 - Under The Hood of Oracle Clusterware 2.0 - Grid Infrastructure by Al...UTHOC2 - Under The Hood of Oracle Clusterware 2.0 - Grid Infrastructure by Al...
UTHOC2 - Under The Hood of Oracle Clusterware 2.0 - Grid Infrastructure by Al...
 
Fremtidens platform til koncernsystemer (IBM System z)
Fremtidens platform til koncernsystemer (IBM System z)Fremtidens platform til koncernsystemer (IBM System z)
Fremtidens platform til koncernsystemer (IBM System z)
 
20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop
 
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
 
Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011Java EE Technical Keynote at JavaOne Latin America 2011
Java EE Technical Keynote at JavaOne Latin America 2011
 
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...Enhancing Live Migration Process for CPU and/or  memory intensive VMs running...
Enhancing Live Migration Process for CPU and/or memory intensive VMs running...
 
GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011
 
Server Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and WatchdogServer Administration in Python with Fabric, Cuisine and Watchdog
Server Administration in Python with Fabric, Cuisine and Watchdog
 
CompatibleOne @ OpenWorldForum 2011
CompatibleOne @ OpenWorldForum 2011CompatibleOne @ OpenWorldForum 2011
CompatibleOne @ OpenWorldForum 2011
 

En vedette

Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
Joel Krebs
 

En vedette (9)

Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systems
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
Alfresco in an hour
Alfresco in an hourAlfresco in an hour
Alfresco in an hour
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
 

Similaire à Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010

あなたはどっち? クラウドでDebian // Debianでクラウド
あなたはどっち? クラウドでDebian // Debianでクラウドあなたはどっち? クラウドでDebian // Debianでクラウド
あなたはどっち? クラウドでDebian // Debianでクラウド
Yasuhiro Araki, Ph.D
 
Dell openstack boston meetup dell crowbar and open stack
Dell openstack boston meetup   dell crowbar and open stackDell openstack boston meetup   dell crowbar and open stack
Dell openstack boston meetup dell crowbar and open stack
DellCloudEdge
 
OWF12/Open Cloud Strategies Openstackinaction enovance
OWF12/Open Cloud Strategies Openstackinaction enovanceOWF12/Open Cloud Strategies Openstackinaction enovance
OWF12/Open Cloud Strategies Openstackinaction enovance
Paris Open Source Summit
 
Open stack in action enovance-quantum in action
Open stack in action enovance-quantum in actionOpen stack in action enovance-quantum in action
Open stack in action enovance-quantum in action
eNovance
 
Docking your services_with_docker
Docking your services_with_dockerDocking your services_with_docker
Docking your services_with_docker
Tikal Knowledge
 

Similaire à Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010 (20)

Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With Mercurial
 
Continuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesContinuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBees
 
あなたはどっち? クラウドでDebian // Debianでクラウド
あなたはどっち? クラウドでDebian // Debianでクラウドあなたはどっち? クラウドでDebian // Debianでクラウド
あなたはどっち? クラウドでDebian // Debianでクラウド
 
Hyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computingHyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computing
 
Git 101
Git 101Git 101
Git 101
 
Dok Talks #119 - Cloud-Native Data Pipelines
Dok Talks #119 - Cloud-Native Data PipelinesDok Talks #119 - Cloud-Native Data Pipelines
Dok Talks #119 - Cloud-Native Data Pipelines
 
Learn OpenStack from trystack.cn ——Folsom in practice
Learn OpenStack from trystack.cn  ——Folsom in practiceLearn OpenStack from trystack.cn  ——Folsom in practice
Learn OpenStack from trystack.cn ——Folsom in practice
 
Cloud Foundry Anniversary: Technical Slides
Cloud Foundry Anniversary: Technical Slides Cloud Foundry Anniversary: Technical Slides
Cloud Foundry Anniversary: Technical Slides
 
Dell openstack boston meetup dell crowbar and open stack
Dell openstack boston meetup   dell crowbar and open stackDell openstack boston meetup   dell crowbar and open stack
Dell openstack boston meetup dell crowbar and open stack
 
OWF12/Open Cloud Strategies Openstackinaction enovance
OWF12/Open Cloud Strategies Openstackinaction enovanceOWF12/Open Cloud Strategies Openstackinaction enovance
OWF12/Open Cloud Strategies Openstackinaction enovance
 
Open stack in action enovance-quantum in action
Open stack in action enovance-quantum in actionOpen stack in action enovance-quantum in action
Open stack in action enovance-quantum in action
 
Nuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo DistributionsNuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo Distributions
 
Building For Mer
Building For MerBuilding For Mer
Building For Mer
 
DPDK Integration: A Product's Journey - Roger B. Melton
DPDK Integration: A Product's Journey - Roger B. MeltonDPDK Integration: A Product's Journey - Roger B. Melton
DPDK Integration: A Product's Journey - Roger B. Melton
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for Dummies
 
Docking your services_with_docker
Docking your services_with_dockerDocking your services_with_docker
Docking your services_with_docker
 
2011 04-dsi-javaee-in-the-cloud-andreadis
2011 04-dsi-javaee-in-the-cloud-andreadis2011 04-dsi-javaee-in-the-cloud-andreadis
2011 04-dsi-javaee-in-the-cloud-andreadis
 
Nova states summit
Nova states summitNova states summit
Nova states summit
 
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challenges
 

Plus de Atlassian

Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
Atlassian
 

Plus de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Distributed Version Control Systems in the Enterprise - Atlassian Summit 2010

  • 1. 1 1
  • 2. Distributed Version Control (DVCS) in the Enterprise Justen Stepka, Atlassian 2 2
  • 3. Agenda • What is DVCS? • Migration case study • Atlassian and DVCS 3 3
  • 5. Version Control Systems • Popular options • Common Problems • CVS (1990) • Server or network downtimes • Subversion(2000) • Distributed teams have network latency issues • Perforce • Merging between branches is a PITA • ClearCase 5 5
  • 6. VCS deployments Alice ll Pu Checkout  /   sh Add Pu Remove Remote Update Central   Log Commit Repos. Merge Bob Pull Bamboo 6 6
  • 7. Distributed Version Control (DVCS) • Popular options • Benefits over VCS • Git • Localized commits • Mercurial • Full revision and branch history locally • Bazaar • No server downtime • BitKeeper (commercial) 7 7
  • 8. DVCS deployments Alice’s Repos. l Alice l /  Pu h   us Pull P Add Remove Update Log Bob’s Push  /  Pull Master   Commit Repos. Repos. Diff Merge Bob Pull Pu sh Bamboo Custom Builds 8 8
  • 9. VCS DVCS Easy  branching Easy  Branching Core  func9onality  -­‐  tracks  your  merge  history,  even   Painful  merging between  file  renames Tool  support  kicks  ass Tool  support  varies  by  implementa9on Experiment  with  local  commits  and  branches,   Requires  a  network  connec9on easily  rollback  changes.  Great  for  distributed   teams. Authorita9ve  trunk  is  well  known  and  understood Authorita9ve  trunk  must  be  defined  and  enforced 9 9
  • 11. Git • Great for Linux / Mac • Windows support is limited, but upcoming • 150+ commands, complex for newbies • Developed using C • Used by many open-source projects • GitHub - http://github.com • 11 11
  • 12. Mercurial • Excellent support across all platforms • An easier learning curve than Git - similar commands to Subversion • Smaller community adoption • Developed using Python - extendable • BitBucket - http://www.bitbucket.org • 12 12
  • 13. Whoʼs using what? Mercurial Git Adium Android Python jQuery OpenJDK Linux  Kernel OpenOffice.org Perl Netbeans Ruby  on  Rails Vim Wine 13 13
  • 14. Desktop Tool Support Tool Mercurial Git  Linux  Linux Command  line  Mac    Mac  Windows    Windows  (cygwin) IntelliJ  IDEA  Mul9ple  plugins  Na9ve  support Eclipse  Mul9ple  plugins  Mul9ple  plugins Visual  Studio VisualHG  (most  popular) Mul9ple  plugins 14 14
  • 16. What DVCS should you use? 16 16
  • 17. Personal preference • “Mercurial is your smart friend who lies to explain things to you. Git is your genius coworker who signs and rolls his eyes every time you ask him a question.” http://thebuild.com/blog/2009/11/04/git-vs-mercurial/ 17 17
  • 18. WTF is moving to Mercurial Our Team, Website Task Force • 1 dev in Sydney, 2 devs and a graphics designer in San Francisco • 24 hour turn around on bugs, 48 hour turn around on copy changes Larger projects run in parallel to daily updates Problems with Subversion • Maintaining multiple branches is a pain in the ass • Overhead of maintaining branches complicates our ability to have a 24 / 48 hour turn around • Members of the Sydney team are far from the data, slow subversion 18 18
  • 19. Key reasons for moving to Mercurial 1. Tool and platform support is better 2. Learning curve - the existing command structure mirrors Subversion 19 19
  • 20. How much code are we talking about? 20 20
  • 21. Migrating to Mercurial • Mercurialʼs built in ConvertExtension • Converts existing CVS and Subversion repositories into a Mercurial repository • Mercurial hgsubversion extension • Used to mirror and existing Subversion repository • local (offline) commits • Useful for experimenting • Converts an existing Subversion repository into a Mercurial repository 21 21
  • 22. ConvertExtension • Built into Mercurial - needs to be enabled in your ~/.hgrc config • Failed several times processing our Subversion repository • Took ~31 hours to convert 370k lines of code • Does not support the extraction of branch or tag information 22 22
  • 23. 23 23
  • 24. hgsubversion extension • Subversion closing utility • Use Mercurial as a Subversion client • Export your Subversion code to start a new share Mercurial repository • Exports all branch and tag information • 2 hours to convert 370k lines of code • 24 24
  • 25. Exporting the code to • Your can either setup your own server, or • Experiment with BitBucket as your code hosting provider • branching visualization • user management 25 25
  • 26. 26 26
  • 28. JIRA and DVCS Integrate with FishEye + Alpha support for Mercurial with FishEye May 2010 Git support with FishEye 2.0 June 2009 JIRA FishEye JIRA 4 and 4.1 + Released in Sept 2007 Updated release June 2010, actively developed JIRA Plugin + Released August 2009 JIRA 3.12 and 3.13 JIRA Plugin 28 28
  • 29. Bamboo and DVCS + Dog-food testing internally Expected in the next release, later this year Bamboo Integration Bamboo 2.2 - 2.5 + Released March 2010 Bamboo GitHub Plugin 29 29
  • 30. Wrap-up DVCS is a shift in the way we use version control • “Instead of asking what problems it solves, you should be asking what new possibilities it offers” • Git and Mercurial are emerging as the two main standards • Atlassian is going to expand support for Git and Mercurial • Several teams at Atlassian have, or are making the switch to Mercurial • Subversion to DVCS bridges exist if youʼd like to experiment without making the full switch • If youʼre experimenting with Mercurial, use the hgsubversion extension 30 30
  • 31. Resources • Hg Init: a Mercurial tutorial - http://hginit.com • BitBucket - http://www.bitbucket.org • Github - http://www.github.com • hgsubversion - http://bitbucket.org/durin32/hgsubversion 31 31