SlideShare a Scribd company logo
Version Control for the Uninitiated
                                           A presentation by
                                          David M. Doolin
                                                     for




                            WordPress Out Of (version) Control

                                       Tuesday, May 31, 2011
                                                    6:00 PM

                                          Automattic Lounge
                                    711 The Embarcadero San Francisco, CA




    dool.in                                             1
                                         © 2011, Inventium Systems
Tuesday, May 31, 2011                                                       1
Bona Fides

         •    Who am I?

              •   Consulting: Interdisciplinary science
                  and engineering software development.

              •   Inventium Systems: hibernating.

              •   Website In A Weekend: Pivoting out of
                  internet-space into local-space; working
                  with Tech Liminal, Oakland.

         •    Landing page:         dool.in


                  I’ve used version control, starting with Concurrent Version System (CVS), since
                  1997. I’ve operated my own CVS repository, and I manage several remotely
                  hosted Subversion (SVN) repositories. I have too many projects on Github.


    dool.in                                                     2
                                                 © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                               2
Quick overview

         •    What is version control?

         •    Why you need version control.

         •    Version control tools
              Subversion and Git.

         •    Learning version control.
                                                                                       All this in 12 minutes or less!



              Disclaimer: this presentation was designed for entertainment purposes only, and abounds in vague generalizations, spurious analogies
              and metaphors which don’t. Use common sense. Verify the information in this presentation from original sources. Do not cite. Thank you.



    dool.in                                                                        3
                                                                    © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                                                                   3
What is version control?
      •   A suite of software methodologies.


      •   Keeps track of changes in files. Forever.

      •   Promotes collaboration between people across time and space.

      •   A philosophy for software engineering.




                IMPORTANT: Version control is its own thing

              No metaphor, analogy, figure of speech, long winded explanation or slide deck can
                adequately convey modern version control. You have to do it for yourself.

    dool.in                                                  4
                                              © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                            4
Almost 40 years of version control...

            1974: Source Code Control System (SCCS). (Written in SNOBOL4!)

            1982: Revision Control System (RCS).

            1986: Concurrent Version System, (CVS).

            2000: Subversion

            2005: Git


                                When I first looked in to this version control thing, I asked a Real Hacker
                                “Which one, CVS or SCCS, should I learn?”

                                His reply: “Learn both, then choose for yourself.”




    dool.in                                                  5
                                              © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                        5
Why use version control?

                                                         "It's a good idea." - Sarah Allen



      •   Collaboration with yourself & others across time.


      •   Collaboration with yourself & others across space.

      •   Automatic revisioning. You don’t have to dream up (and remember) some
          hair-brained scheme for organizing revisions of all your files. (“What was the name
          of that last file?”)




    dool.in                                               6
                                           © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                          6
Version Control - What you need to know
      •   Version control is leverage for collaboration. People can easily work
          separated by geography and time zone.

      •   Leverage works 2 ways...

          •   Positive leverage: A good team becomes excellent. An excellent team
              becomes phenomenal.

          •   Negative leverage: Teams with problems may find those problems getting
              worse via version control.

      •   Communication is key: Version control enhances collaborator’s ability to
          communicate.


                  Version control does NOT replace communication
                                                                     Version control is not magic pixie dust.




    dool.in                                             7
                                         © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                           7
(CVS)             Subversion at-a-glance

                                                                                  Beau   Pete   Ma.tt
                     Subversion operates from
                      a centralized repository


                              http://core.trac.wordpress.org/browser




                 •   CVS is sort of like C, Which
                     makes Subversion (“a better CVS”)
                     sort of like C++.

                 •   SVN: Use for any text or binary file:
                     LaTeX, WordPress source code,
                     images, this presentation, &c.


    dool.in                                                          8
                                                      © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                   8
Git at-a-glance




    dool.in                            9
                        © 2011, Inventium Systems
Tuesday, May 31, 2011                               9
Git after your first week




                        Unicorns courtesy of Cornify
    dool.in                                                         10
                                                       © 2011, Inventium Systems
Tuesday, May 31, 2011                                                              10
“Yes, but how does git feel...?”




              Jazz lover’s guide to Git versus SVN

       •   SVN Closed hole flute: Easier to
           play, sound quality good. Not as
           cool.

       •   Git Open hole flute: Harder to
           play, more flexible (microtones,
           glissados, etc), sound quality
           superb. Ineffably cooler.




    dool.in                                           11
                                         © 2011, Inventium Systems
Tuesday, May 31, 2011                                                11
Centralized versus distributed repository
                                                                           Git like distributed
                                    Ma.tt                                    cans of worms
                                               You
        Me
                                                                                              Pete
                                                                           Me




                            SVN root
        Image courtesy Coaching to Greatness




                                                                                      Ma.tt
           SVN like the mighty oak

                                                                                You              Beau

    dool.in                                                 12
                                               © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                   12
Some pros and cons
                                           Pros                                                  Cons
                        • Branching (subtree checkout) remotely is                 • Global commits.
                         easier.
                                                                                   • Centralized repository.
              • Easier to organize unrelated projects.
          SVN Handles large numbers of unrelated                                   • More prone to conflicts.
              •
                         projects with ease.                                       • Easier to bork local checkout.
                        • Only commit branch you’re working on.
                        • Local commits; reduces conflicts.           • Project promiscuity.
                        • Deployment can be trivial, host git repo on • Must commit whole tree.
                          server, commit and push. Eliminates rsync. • Difficult to check out subtree
              Git                                                       (this is a problem for WP theme
                        • Handles large complicated projects with       and plugin development).
                         ease. (Designed for Linux kernel dev.)
                        • Nacin, Jaquith, Mall, etc.                               • Cannot commit stub (empty)
                                                                                    directory.


                                   SVN evolved. Git was designed.

    dool.in                                                         13
                                                       © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                                 13
Git Project Proliferation (not that cute)
              Git’s distributed repository model can
              induce large numbers of small
              projects.

              This is surprisingly inconvenient for
              WordPress plugin and theme
              development.

              Be wary of project overindulgence.                     Starting with Git, It all seems so innocent




                        But projects seem to proliferate :(              Creating projects is simple, easy & fun!

    dool.in                                                           14
                                                         © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                                               14
Which one is better, Git or Subversion?

        1st: There is no one-size-fits-all tool which is “better” than every other tool.

        2d: Git and Subversion are going to be around a long, long time. The closer
        you are to developers, the more likely you’re going to learn both anyway.

        3d: If your main interest is WordPress development, learn Subversion now.
        Yesterday. Seriously. Then learn Git.

        4th: If you’re riding Rails, you probably already know you need to learn Git.
        Mandatory.



              My opinion: if you work with information, you won’t
              escape learning version control. It’s inevitable.

    dool.in                                           15
                                         © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                     15
Bruce Lee’s Kung Fu guide to learning
                         version control
         1. Novice stage: At first, version control is
           just “version control.” Get a repository,
           make some changes, save the changes.

         2. Practitioner stage: Committing,
           pushing, rebasing, rolling back,
           branching, merging, moving, renaming...
           the pros and cons of a dozen systems to
           explore.

         3. Mastery stage: Version control is just
           version control. It’s easy and fun!
                                                                     Image courtesy Wikipedia




              Don’t wait. Start learning version control now.
    dool.in                                           16
                                         © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                           16
With a little help from...
                                      so cool.



                                                                    portable motivation.




                        ‘Cause version control is a little like
                                      voodoo, doncha know.


    dool.in                                                    17
                                                  © 2011, Inventium Systems
Tuesday, May 31, 2011                                                                      17
Find this presentation on Slideshare




    dool.in                               18
                             © 2011, Inventium Systems
Tuesday, May 31, 2011                                    18

More Related Content

Similar to Wordpress version control (20)

PPTX
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
PPTX
Subversion and bug tracking
Amira Elsayed Ismail
 
PPT
Version Control
Matt Stoner
 
PDF
Version Control With Subversion
Samnang Chhun
 
PDF
What is version control software and why do you need it?
Leonid Mamchenkov
 
PPTX
the Version Control systemlocalized.pptx
rkalpanase
 
PPTX
Source control - what you need to know
daveymni
 
PPTX
Git&subversion
Ahmed Shawky El-faky
 
PDF
Version Control with SVN
PHPBelgium
 
PDF
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
James York
 
PPT
Version Control
Kivanc Kanturk
 
PDF
Version Control System - for Agile Software Project Management.
Bhavya Chawla
 
KEY
Make It Cooler: Using Decentralized Version Control
indiver
 
KEY
Version Control Lassosoft 2009 Lasso Developers Conference
Brian Loomis
 
PPT
FlashInTO SVN Presentation
Matthew Fabb
 
PDF
Version Control with Git
Luigi De Russis
 
PDF
Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Revelation Technologies
 
ODP
Introduction to Version Control
Jeremy Coates
 
PDF
Unite dvcs deck-uk-john stevenson
Atlassian
 
PDF
Unite dvcs deck-uk-john stevenson
Atlassian
 
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
Subversion and bug tracking
Amira Elsayed Ismail
 
Version Control
Matt Stoner
 
Version Control With Subversion
Samnang Chhun
 
What is version control software and why do you need it?
Leonid Mamchenkov
 
the Version Control systemlocalized.pptx
rkalpanase
 
Source control - what you need to know
daveymni
 
Git&subversion
Ahmed Shawky El-faky
 
Version Control with SVN
PHPBelgium
 
The Junior Developer Survival Guide - GDI Ann Arbor 2/10/15
James York
 
Version Control
Kivanc Kanturk
 
Version Control System - for Agile Software Project Management.
Bhavya Chawla
 
Make It Cooler: Using Decentralized Version Control
indiver
 
Version Control Lassosoft 2009 Lasso Developers Conference
Brian Loomis
 
FlashInTO SVN Presentation
Matthew Fabb
 
Version Control with Git
Luigi De Russis
 
Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Revelation Technologies
 
Introduction to Version Control
Jeremy Coates
 
Unite dvcs deck-uk-john stevenson
Atlassian
 
Unite dvcs deck-uk-john stevenson
Atlassian
 

Recently uploaded (20)

PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PPTX
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PDF
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
July Patch Tuesday
Ivanti
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Français Patch Tuesday - Juillet
Ivanti
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Ad

Wordpress version control

  • 1. Version Control for the Uninitiated A presentation by David M. Doolin for WordPress Out Of (version) Control Tuesday, May 31, 2011 6:00 PM Automattic Lounge 711 The Embarcadero San Francisco, CA dool.in 1 © 2011, Inventium Systems Tuesday, May 31, 2011 1
  • 2. Bona Fides • Who am I? • Consulting: Interdisciplinary science and engineering software development. • Inventium Systems: hibernating. • Website In A Weekend: Pivoting out of internet-space into local-space; working with Tech Liminal, Oakland. • Landing page: dool.in I’ve used version control, starting with Concurrent Version System (CVS), since 1997. I’ve operated my own CVS repository, and I manage several remotely hosted Subversion (SVN) repositories. I have too many projects on Github. dool.in 2 © 2011, Inventium Systems Tuesday, May 31, 2011 2
  • 3. Quick overview • What is version control? • Why you need version control. • Version control tools Subversion and Git. • Learning version control. All this in 12 minutes or less! Disclaimer: this presentation was designed for entertainment purposes only, and abounds in vague generalizations, spurious analogies and metaphors which don’t. Use common sense. Verify the information in this presentation from original sources. Do not cite. Thank you. dool.in 3 © 2011, Inventium Systems Tuesday, May 31, 2011 3
  • 4. What is version control? • A suite of software methodologies. • Keeps track of changes in files. Forever. • Promotes collaboration between people across time and space. • A philosophy for software engineering. IMPORTANT: Version control is its own thing No metaphor, analogy, figure of speech, long winded explanation or slide deck can adequately convey modern version control. You have to do it for yourself. dool.in 4 © 2011, Inventium Systems Tuesday, May 31, 2011 4
  • 5. Almost 40 years of version control... 1974: Source Code Control System (SCCS). (Written in SNOBOL4!) 1982: Revision Control System (RCS). 1986: Concurrent Version System, (CVS). 2000: Subversion 2005: Git When I first looked in to this version control thing, I asked a Real Hacker “Which one, CVS or SCCS, should I learn?” His reply: “Learn both, then choose for yourself.” dool.in 5 © 2011, Inventium Systems Tuesday, May 31, 2011 5
  • 6. Why use version control? "It's a good idea." - Sarah Allen • Collaboration with yourself & others across time. • Collaboration with yourself & others across space. • Automatic revisioning. You don’t have to dream up (and remember) some hair-brained scheme for organizing revisions of all your files. (“What was the name of that last file?”) dool.in 6 © 2011, Inventium Systems Tuesday, May 31, 2011 6
  • 7. Version Control - What you need to know • Version control is leverage for collaboration. People can easily work separated by geography and time zone. • Leverage works 2 ways... • Positive leverage: A good team becomes excellent. An excellent team becomes phenomenal. • Negative leverage: Teams with problems may find those problems getting worse via version control. • Communication is key: Version control enhances collaborator’s ability to communicate. Version control does NOT replace communication Version control is not magic pixie dust. dool.in 7 © 2011, Inventium Systems Tuesday, May 31, 2011 7
  • 8. (CVS) Subversion at-a-glance Beau Pete Ma.tt Subversion operates from a centralized repository http://core.trac.wordpress.org/browser • CVS is sort of like C, Which makes Subversion (“a better CVS”) sort of like C++. • SVN: Use for any text or binary file: LaTeX, WordPress source code, images, this presentation, &c. dool.in 8 © 2011, Inventium Systems Tuesday, May 31, 2011 8
  • 9. Git at-a-glance dool.in 9 © 2011, Inventium Systems Tuesday, May 31, 2011 9
  • 10. Git after your first week Unicorns courtesy of Cornify dool.in 10 © 2011, Inventium Systems Tuesday, May 31, 2011 10
  • 11. “Yes, but how does git feel...?” Jazz lover’s guide to Git versus SVN • SVN Closed hole flute: Easier to play, sound quality good. Not as cool. • Git Open hole flute: Harder to play, more flexible (microtones, glissados, etc), sound quality superb. Ineffably cooler. dool.in 11 © 2011, Inventium Systems Tuesday, May 31, 2011 11
  • 12. Centralized versus distributed repository Git like distributed Ma.tt cans of worms You Me Pete Me SVN root Image courtesy Coaching to Greatness Ma.tt SVN like the mighty oak You Beau dool.in 12 © 2011, Inventium Systems Tuesday, May 31, 2011 12
  • 13. Some pros and cons Pros Cons • Branching (subtree checkout) remotely is • Global commits. easier. • Centralized repository. • Easier to organize unrelated projects. SVN Handles large numbers of unrelated • More prone to conflicts. • projects with ease. • Easier to bork local checkout. • Only commit branch you’re working on. • Local commits; reduces conflicts. • Project promiscuity. • Deployment can be trivial, host git repo on • Must commit whole tree. server, commit and push. Eliminates rsync. • Difficult to check out subtree Git (this is a problem for WP theme • Handles large complicated projects with and plugin development). ease. (Designed for Linux kernel dev.) • Nacin, Jaquith, Mall, etc. • Cannot commit stub (empty) directory. SVN evolved. Git was designed. dool.in 13 © 2011, Inventium Systems Tuesday, May 31, 2011 13
  • 14. Git Project Proliferation (not that cute) Git’s distributed repository model can induce large numbers of small projects. This is surprisingly inconvenient for WordPress plugin and theme development. Be wary of project overindulgence. Starting with Git, It all seems so innocent But projects seem to proliferate :( Creating projects is simple, easy & fun! dool.in 14 © 2011, Inventium Systems Tuesday, May 31, 2011 14
  • 15. Which one is better, Git or Subversion? 1st: There is no one-size-fits-all tool which is “better” than every other tool. 2d: Git and Subversion are going to be around a long, long time. The closer you are to developers, the more likely you’re going to learn both anyway. 3d: If your main interest is WordPress development, learn Subversion now. Yesterday. Seriously. Then learn Git. 4th: If you’re riding Rails, you probably already know you need to learn Git. Mandatory. My opinion: if you work with information, you won’t escape learning version control. It’s inevitable. dool.in 15 © 2011, Inventium Systems Tuesday, May 31, 2011 15
  • 16. Bruce Lee’s Kung Fu guide to learning version control 1. Novice stage: At first, version control is just “version control.” Get a repository, make some changes, save the changes. 2. Practitioner stage: Committing, pushing, rebasing, rolling back, branching, merging, moving, renaming... the pros and cons of a dozen systems to explore. 3. Mastery stage: Version control is just version control. It’s easy and fun! Image courtesy Wikipedia Don’t wait. Start learning version control now. dool.in 16 © 2011, Inventium Systems Tuesday, May 31, 2011 16
  • 17. With a little help from... so cool. portable motivation. ‘Cause version control is a little like voodoo, doncha know. dool.in 17 © 2011, Inventium Systems Tuesday, May 31, 2011 17
  • 18. Find this presentation on Slideshare dool.in 18 © 2011, Inventium Systems Tuesday, May 31, 2011 18