SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Source Control
     Landscape


   Lorna Jane Mitchell
PHP London, October 2010
About Me
   Lorna Jane Mitchell
   Freelance PHP consultant/developer/trainer
   Speaker and Writer
   Based in Leeds, UK (in town for FOWA)
   Homepage: http://lornajane.net
   Twitter: @lornajane
Source Control
   Tool
   History
   Subversion
   The future: DVCS
Subversion (svn)
Creator             CollabNet

URL                 http://subversion.apache.org

Maintainer          Apache

Users               PHP
                    Sourceforge
                    FreeBSD
                    Apache Software
                    Foundation

License             Apache/BSD style

Documentation       Excellent, more mature
                    Red Bean Book


                                                   4
Subversion: The Roapmap
   Taken from:
    ●   http://lwn.net/Articles/381794/

      Subversion exists to be universally recognized and
    adopted as an open-source, centralized version control
     system characterized by its reliability as a safe haven
          for valuable data; the simplicity of its model
    and usage; and its ability to support the needs of a wide
       variety of users and projects, from individuals to
                large-scale enterprise operations.



                                                                5
Git
Creator          Linus Torvalds

URL              http://git-scm.com/

Maintainer       Junio Hamano

Users            Linux kernel
                 Ruby on Rails
                 CakePHP
                 Debian
                 GNOME

License          GPL

Documentation    "terse", a lot of
                 documentation for an
                 unfamiliar system
                                        6
Bazaar (bzr)
Creator              Martin Pool

URL                  http://bazaar.canonical.com/

Maintainer           Canonical

Users                Ubuntu
                     MySQL
                     Inkscape
                     Squid


License              GPL

Documentation        Excellent! Aimed at
                     beginners, UI designed to
                     be intuitive
                                                    7
Mercurial (hg)
Creator            Matt Mackall

URL                http://mercurial.selenic.com/

Maintainer         Matt Mackall

Users              Mozilla
                   OpenOffice.org
                   SymbianOS
                   NetBeans


License            GPL

Documentation      Good, online book and
                   command line help

                                                   8
Features
   Atomic commits
   File renames
   Symbolic links
   Pre/Post event hooks
   Merge tracking
   Tags
   EOL conversions


                                 9
Protocols
   Everything supports SSH and HTTP(S)
   Distributed systems support email
   Bazaar supports FTP
   Git supports rsync




                                          10
Centralised vs Distributed Source
             Control




                                    11
Centralised Source Control
   Traditional model
   Subversion uses this
   Other products can do it




                                     12
Centralised Source Control




                             13
Distributed Source Control




                             14
Distributed Source Control
   Same function as centralised source control
   Very different approach
   Steeper learning curve
   Key concepts
    ●   local repositories
    ●   revisions
    ●   branching



                                                  15
Local Repository
   Clone a whole repo
   It's FAST
   Can commit without sharing
   Can rewrite history




                                   16
Snapshots vs Changesets
   From a Joel Spolsky post:


         With distributed version control, the
         distributed part is actually not the most
         interesting part.
         The interesting part is that these systems
         think in terms of changes, not in terms of
         versions



                                                      17
Snapshots vs Changesets
   Subversion commit is a snapshot of the
    codebase
   For a DCVS, it's a set of changes
   Makes it easier to share changes
   Can be applied in different orders
   Cherry-picking
Branching
   Branches in DCVS are not just copies
   Working copy can switch between them
   Private branching
The Social Aspect
Hosted Code Solutions
   Combat the complexity of DCVS
   Supporting tools
   e.g. GitHub
Code Hosting and Collaboration
   Provide repository space
   Repo browsing, linked projects
   Forums and mailing lists
   Wiki (or similar: launchpad has blueprints)
   Publish downloadable versions
   Message other collaborators



                                                  22
Code Hosting Providers

GitHub                    git
http://github.com/

Bitbucket                 hg
http://bitbucket.org/

Google Code               svn, hg
http://code.google.com/

Launchpad                 bzr
https://launchpad.net/

SourceForge               svn, bzr, hg, git (and cvs)
http://sourceforge.net/

                                                        23
Tools and Choices
Trac
   Trac supports all mentioned products
   Code browsing
   Commit messages update issues
GUI Tools
   Moving target!
   Improving IDE support
   Tortoise* products
   Limited support for git on windows
Building Bridges
   Bridge between SVN repo and local
    ●   bzr-svn https://launchpad.net/bzr-svn
    ●   git-svn http://www.kernel.org/pub/software/scm/git/docs/git-svn.html
   Local distributed-style repo
   Communicates with central SVN server
   Pulls complete history
    ●   diff, log fast and offline
   Work offline, commit later

                                                                               27
Access Control
   SVN has granular access control
   Can use various apache mechanisms
   Control access by path
   DCVS are much newer, access control uses
    hooks
   Can control writes
   What about reads?
Cost of Transition
   Steeper learning curve
   Implementation costs
    ●   tool migration
    ●   process changes
    ●   supporting tool migration
    ●   user training (ongoing!)
   Hype and dismissive attitudes are unhelpful



                                                  29
Making Choices
   Global team of expert geeks - use DCVS (any
    one)
   Colocated team of mixed ability - use SVN
   Everything else is a sliding scale!
   Consider
    ●   Your people
    ●   Your admins
    ●   The documentation, support and community of your
        chosen solution
                                                      30
Any Questions?




                 31
Thanks!


   @lornajane
http://lornajane.net

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Docker Presentation
Docker PresentationDocker Presentation
Docker Presentation
 
Build and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldBuild and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes world
 
Multi-OS Continuous Packaging with docker and Project-Builder.org
Multi-OS Continuous Packaging with docker and Project-Builder.orgMulti-OS Continuous Packaging with docker and Project-Builder.org
Multi-OS Continuous Packaging with docker and Project-Builder.org
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
Docker
DockerDocker
Docker
 
Innovating Out in the Open
Innovating Out in the Open Innovating Out in the Open
Innovating Out in the Open
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
Introduction to Docker Container
Introduction to Docker ContainerIntroduction to Docker Container
Introduction to Docker Container
 
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKYocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
 
Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019
 
Rkt Container Engine
Rkt Container EngineRkt Container Engine
Rkt Container Engine
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Introduction to Containers - From Docker to Kubernetes and everything in between
Introduction to Containers - From Docker to Kubernetes and everything in betweenIntroduction to Containers - From Docker to Kubernetes and everything in between
Introduction to Containers - From Docker to Kubernetes and everything in between
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 

Similar a The Source Control Landscape

Git presentation
Git presentationGit presentation
Git presentation
jordimash
 
Understanding Distributed Source Control
Understanding Distributed Source ControlUnderstanding Distributed Source Control
Understanding Distributed Source Control
Lorna Mitchell
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
Samnang Chhun
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
Vinoth Kannan
 

Similar a The Source Control Landscape (20)

Git presentation
Git presentationGit presentation
Git presentation
 
Understanding Distributed Source Control
Understanding Distributed Source ControlUnderstanding Distributed Source Control
Understanding Distributed Source Control
 
Collabograte
CollabograteCollabograte
Collabograte
 
The architecture of oak
The architecture of oakThe architecture of oak
The architecture of oak
 
Samba management Console
Samba management ConsoleSamba management Console
Samba management Console
 
Whether you should migrate to git
Whether you should migrate to gitWhether you should migrate to git
Whether you should migrate to git
 
Picking a distro_1_
Picking a distro_1_Picking a distro_1_
Picking a distro_1_
 
Version Control System - for Agile Software Project Management.
Version Control System - for Agile Software Project Management.Version Control System - for Agile Software Project Management.
Version Control System - for Agile Software Project Management.
 
Mercurial presentation
Mercurial presentationMercurial presentation
Mercurial presentation
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
 
The Lives of Others: Open-Source Development Practices Elsewhere
The Lives of Others: Open-Source Development Practices ElsewhereThe Lives of Others: Open-Source Development Practices Elsewhere
The Lives of Others: Open-Source Development Practices Elsewhere
 
Subversion and bug tracking
Subversion and bug trackingSubversion and bug tracking
Subversion and bug tracking
 
XNAT Open Source Development
XNAT Open Source DevelopmentXNAT Open Source Development
XNAT Open Source Development
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
Digital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationDigital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: Information
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Delivering Infrastructure-as-a-Service with Open Source Software
Delivering Infrastructure-as-a-Service with Open Source SoftwareDelivering Infrastructure-as-a-Service with Open Source Software
Delivering Infrastructure-as-a-Service with Open Source Software
 
Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
 

Más de Lorna Mitchell

Más de Lorna Mitchell (20)

OAuth: Trust Issues
OAuth: Trust IssuesOAuth: Trust Issues
OAuth: Trust Issues
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 
Best Practice in API Design
Best Practice in API DesignBest Practice in API Design
Best Practice in API Design
 
Git, GitHub and Open Source
Git, GitHub and Open SourceGit, GitHub and Open Source
Git, GitHub and Open Source
 
Business 101 for Developers: Time and Money
Business 101 for Developers: Time and MoneyBusiness 101 for Developers: Time and Money
Business 101 for Developers: Time and Money
 
Things I wish web graduates knew
Things I wish web graduates knewThings I wish web graduates knew
Things I wish web graduates knew
 
Teach a Man To Fish (phpconpl edition)
Teach a Man To Fish (phpconpl edition)Teach a Man To Fish (phpconpl edition)
Teach a Man To Fish (phpconpl edition)
 
Web services tutorial
Web services tutorialWeb services tutorial
Web services tutorial
 
Join In With Joind.In
Join In With Joind.InJoin In With Joind.In
Join In With Joind.In
 
Tool Up Your LAMP Stack
Tool Up Your LAMP StackTool Up Your LAMP Stack
Tool Up Your LAMP Stack
 
Going Freelance
Going FreelanceGoing Freelance
Going Freelance
 
Best Practice in Web Service Design
Best Practice in Web Service DesignBest Practice in Web Service Design
Best Practice in Web Service Design
 
Coaching Development Teams: Teach A Man To Fish
Coaching Development Teams: Teach A Man To FishCoaching Development Teams: Teach A Man To Fish
Coaching Development Teams: Teach A Man To Fish
 
Zend Certification Preparation Tutorial
Zend Certification Preparation TutorialZend Certification Preparation Tutorial
Zend Certification Preparation Tutorial
 
Implementing OAuth with PHP
Implementing OAuth with PHPImplementing OAuth with PHP
Implementing OAuth with PHP
 
Web Services Tutorial
Web Services TutorialWeb Services Tutorial
Web Services Tutorial
 
Object Oriented Programming in PHP
Object Oriented Programming in PHPObject Oriented Programming in PHP
Object Oriented Programming in PHP
 
Example Presentation
Example PresentationExample Presentation
Example Presentation
 
Could You Telecommute?
Could You Telecommute?Could You Telecommute?
Could You Telecommute?
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 

Último

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
 

Último (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

The Source Control Landscape

  • 1. Source Control Landscape Lorna Jane Mitchell PHP London, October 2010
  • 2. About Me  Lorna Jane Mitchell  Freelance PHP consultant/developer/trainer  Speaker and Writer  Based in Leeds, UK (in town for FOWA)  Homepage: http://lornajane.net  Twitter: @lornajane
  • 3. Source Control  Tool  History  Subversion  The future: DVCS
  • 4. Subversion (svn) Creator CollabNet URL http://subversion.apache.org Maintainer Apache Users PHP Sourceforge FreeBSD Apache Software Foundation License Apache/BSD style Documentation Excellent, more mature Red Bean Book 4
  • 5. Subversion: The Roapmap  Taken from: ● http://lwn.net/Articles/381794/ Subversion exists to be universally recognized and adopted as an open-source, centralized version control system characterized by its reliability as a safe haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations. 5
  • 6. Git Creator Linus Torvalds URL http://git-scm.com/ Maintainer Junio Hamano Users Linux kernel Ruby on Rails CakePHP Debian GNOME License GPL Documentation "terse", a lot of documentation for an unfamiliar system 6
  • 7. Bazaar (bzr) Creator Martin Pool URL http://bazaar.canonical.com/ Maintainer Canonical Users Ubuntu MySQL Inkscape Squid License GPL Documentation Excellent! Aimed at beginners, UI designed to be intuitive 7
  • 8. Mercurial (hg) Creator Matt Mackall URL http://mercurial.selenic.com/ Maintainer Matt Mackall Users Mozilla OpenOffice.org SymbianOS NetBeans License GPL Documentation Good, online book and command line help 8
  • 9. Features  Atomic commits  File renames  Symbolic links  Pre/Post event hooks  Merge tracking  Tags  EOL conversions 9
  • 10. Protocols  Everything supports SSH and HTTP(S)  Distributed systems support email  Bazaar supports FTP  Git supports rsync 10
  • 11. Centralised vs Distributed Source Control 11
  • 12. Centralised Source Control  Traditional model  Subversion uses this  Other products can do it 12
  • 15. Distributed Source Control  Same function as centralised source control  Very different approach  Steeper learning curve  Key concepts ● local repositories ● revisions ● branching 15
  • 16. Local Repository  Clone a whole repo  It's FAST  Can commit without sharing  Can rewrite history 16
  • 17. Snapshots vs Changesets  From a Joel Spolsky post: With distributed version control, the distributed part is actually not the most interesting part. The interesting part is that these systems think in terms of changes, not in terms of versions 17
  • 18. Snapshots vs Changesets  Subversion commit is a snapshot of the codebase  For a DCVS, it's a set of changes  Makes it easier to share changes  Can be applied in different orders  Cherry-picking
  • 19. Branching  Branches in DCVS are not just copies  Working copy can switch between them  Private branching
  • 21. Hosted Code Solutions  Combat the complexity of DCVS  Supporting tools  e.g. GitHub
  • 22. Code Hosting and Collaboration  Provide repository space  Repo browsing, linked projects  Forums and mailing lists  Wiki (or similar: launchpad has blueprints)  Publish downloadable versions  Message other collaborators 22
  • 23. Code Hosting Providers GitHub git http://github.com/ Bitbucket hg http://bitbucket.org/ Google Code svn, hg http://code.google.com/ Launchpad bzr https://launchpad.net/ SourceForge svn, bzr, hg, git (and cvs) http://sourceforge.net/ 23
  • 25. Trac  Trac supports all mentioned products  Code browsing  Commit messages update issues
  • 26. GUI Tools  Moving target!  Improving IDE support  Tortoise* products  Limited support for git on windows
  • 27. Building Bridges  Bridge between SVN repo and local ● bzr-svn https://launchpad.net/bzr-svn ● git-svn http://www.kernel.org/pub/software/scm/git/docs/git-svn.html  Local distributed-style repo  Communicates with central SVN server  Pulls complete history ● diff, log fast and offline  Work offline, commit later 27
  • 28. Access Control  SVN has granular access control  Can use various apache mechanisms  Control access by path  DCVS are much newer, access control uses hooks  Can control writes  What about reads?
  • 29. Cost of Transition  Steeper learning curve  Implementation costs ● tool migration ● process changes ● supporting tool migration ● user training (ongoing!)  Hype and dismissive attitudes are unhelpful 29
  • 30. Making Choices  Global team of expert geeks - use DCVS (any one)  Colocated team of mixed ability - use SVN  Everything else is a sliding scale!  Consider ● Your people ● Your admins ● The documentation, support and community of your chosen solution 30
  • 32. Thanks! @lornajane http://lornajane.net