SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à Wordpress version control

Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)zeeg
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answersHopeTutors1
 
SEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouSEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouLa Red DBAccess
 
Ci in jenkins with openSUSE
Ci in jenkins with openSUSECi in jenkins with openSUSE
Ci in jenkins with openSUSEBen Chou
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Jen Wong
 
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018AgileNetwork
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins WayNicolas De Loof
 
Integrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementIntegrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementChris Sterling
 
DevOps Workshops Fall 2016
DevOps Workshops Fall 2016DevOps Workshops Fall 2016
DevOps Workshops Fall 2016Kelly Looney
 
Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenPascal Rapicault
 
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBeesJava / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBeesParis Open Source Summit
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)Jérôme Petazzoni
 
Time Series Data Storage in MongoDB
Time Series Data Storage in MongoDBTime Series Data Storage in MongoDB
Time Series Data Storage in MongoDBsky_jackson
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integrationPhilip Johnson
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroPaul Boos
 
Considerations about Eye Gaze interfaces for people with disabilities: from t...
Considerations about Eye Gaze interfaces for people with disabilities: from t...Considerations about Eye Gaze interfaces for people with disabilities: from t...
Considerations about Eye Gaze interfaces for people with disabilities: from t...Jacques Chueke
 
Bodily Interaction Lecture 1 Slides
Bodily Interaction Lecture 1 SlidesBodily Interaction Lecture 1 Slides
Bodily Interaction Lecture 1 SlidesFerhat Şen
 

Similaire à Wordpress version control (20)

Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)Continuous Deployment at Disqus (Pylons Minicon)
Continuous Deployment at Disqus (Pylons Minicon)
 
Varieties of Self-Awareness and Their Uses in Natural and Artificial Systems ...
Varieties of Self-Awareness and Their Uses in Natural and Artificial Systems ...Varieties of Self-Awareness and Their Uses in Natural and Artificial Systems ...
Varieties of Self-Awareness and Their Uses in Natural and Artificial Systems ...
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
SEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for YouSEI Webinar Series: Making Agile Work for You
SEI Webinar Series: Making Agile Work for You
 
Ci in jenkins with openSUSE
Ci in jenkins with openSUSECi in jenkins with openSUSE
Ci in jenkins with openSUSE
 
Agile Evolution
Agile EvolutionAgile Evolution
Agile Evolution
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
 
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
DevOps - IaC | Talk | AGILE GURUGRAM 2018 | 23 - 24 March, 2018
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
 
Integrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio ManagementIntegrating Quality into Project Portfolio Management
Integrating Quality into Project Portfolio Management
 
DevOps Workshops Fall 2016
DevOps Workshops Fall 2016DevOps Workshops Fall 2016
DevOps Workshops Fall 2016
 
Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with Maven
 
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBeesJava / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
 
DevOps: IT's Automation Revolution
DevOps: IT's Automation RevolutionDevOps: IT's Automation Revolution
DevOps: IT's Automation Revolution
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)
 
Time Series Data Storage in MongoDB
Time Series Data Storage in MongoDBTime Series Data Storage in MongoDB
Time Series Data Storage in MongoDB
 
Introduction to continuous integration
Introduction to continuous integrationIntroduction to continuous integration
Introduction to continuous integration
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
 
Considerations about Eye Gaze interfaces for people with disabilities: from t...
Considerations about Eye Gaze interfaces for people with disabilities: from t...Considerations about Eye Gaze interfaces for people with disabilities: from t...
Considerations about Eye Gaze interfaces for people with disabilities: from t...
 
Bodily Interaction Lecture 1 Slides
Bodily Interaction Lecture 1 SlidesBodily Interaction Lecture 1 Slides
Bodily Interaction Lecture 1 Slides
 

Dernier

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
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...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

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