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

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...Arun Gupta
 
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 ApplicationArun Gupta
 
Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oomday
 
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 2011Arun Gupta
 
Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Arun Gupta
 
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...Alex Gorbachev
 
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)IBM Danmark
 
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_workshopDigicomp Academy AG
 
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 2011Arun Gupta
 
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 2011Arun Gupta
 
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
 
GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011GlassFish Community Update @ JavaOne 2011
GlassFish Community Update @ JavaOne 2011Arun Gupta
 
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 WatchdogConFoo
 
CompatibleOne @ OpenWorldForum 2011
CompatibleOne @ OpenWorldForum 2011CompatibleOne @ OpenWorldForum 2011
CompatibleOne @ OpenWorldForum 2011CompatibleOne
 

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

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 systemsTim Staley
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & GitCraig Smith
 
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?Leonid Mamchenkov
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control SystemKMS Technology
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlJeremy Coates
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to gitJoel 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

Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialTed Naleid
 
Continuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesContinuous Delivery with Grails and CloudBees
Continuous Delivery with Grails and CloudBeesMarco Vermeulen
 
あなたはどっち? クラウドでDebian // Debianでクラウド
あなたはどっち? クラウドでDebian // Debianでクラウドあなたはどっち? クラウドでDebian // Debianでクラウド
あなたはどっち? クラウドでDebian // DebianでクラウドYasuhiro Araki, Ph.D
 
Hyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computingHyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computingAhmet Mutlu
 
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 PipelinesDoKC
 
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 practiceOpenCity Community
 
Cloud Foundry Anniversary: Technical Slides
Cloud Foundry Anniversary: Technical Slides Cloud Foundry Anniversary: Technical Slides
Cloud Foundry Anniversary: Technical Slides marklucovsky
 
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 stackDellCloudEdge
 
OWF12/Open Cloud Strategies Openstackinaction enovance
OWF12/Open Cloud Strategies Openstackinaction enovanceOWF12/Open Cloud Strategies Openstackinaction enovance
OWF12/Open Cloud Strategies Openstackinaction enovanceParis 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 actioneNovance
 
Nuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo DistributionsNuxeo World Session: Nuxeo Distributions
Nuxeo World Session: Nuxeo DistributionsNuxeo
 
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. Meltonharryvanhaaren
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for DummiesRoel Hartman
 
Docking your services_with_docker
Docking your services_with_dockerDocking your services_with_docker
Docking your services_with_dockerTikal Knowledge
 
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-andreadisdandre
 
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...Codemotion
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesWojciech Barczyński
 

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

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
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 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
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 UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
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 ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
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 ModelAtlassian
 
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 SystemAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
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 APIsAtlassian
 
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 PluginAtlassian
 
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 BuildingAtlassian
 
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 MatterAtlassian
 
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 MindAtlassian
 
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...Atlassian
 
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 TeamsAtlassian
 
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 TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 

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

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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 WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
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 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Dernier (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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