Getting Started With Subversion

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Getting Started With Subversion - Presentation Transcript

    1. Getting started with Subversion
      Jordan Hatch
    2. What is subversion?
      Version control system
      Open Source
      Easy to set up
    3. Why Version Control?
    4. Keep Project organised
      File and project history
      Works with any text-based files
      More than one person editing
      Easy to branch/merge projects
      Small footprint on server
    5. A Backup System
      Rollback changes on files
      Find out who changed what!
    6. Setting Up Subversion
    7. Choose the server…
      svnserve
      Easy to set up
      Can be used with SSH
      Apache HTTP Server
      Harder to set up
      HTML repository browsing
      Multiple authentication methods
    8. svnserve
      Available for multiple platforms
      Windows: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html
      Mac: http://developer.apple.com/mac/library/documentation/Darwin/ Reference/ManPages/man8/svnserve.8.html
      Linux Package Manager
    9. Creating a repository
      Linux & Mac OS X:
      $ svnadmin create /home/jordan/repo
      Windows:
      svnadmin create C:Repo
    10. Choose A Client…
      Command Line!
      “Out of the box” SVN support on Mac OS X
      Easy to install on Linux
      Binaries for Windows – http://subversion.tigris.org/
      GUIs
      Tortoise SVN – Windows only
      IDE Plugins
      Versions App for Mac
    11. SVN Basics
    12. Repository layout
      No forced structure
      Most commonly-used way…
    13. REPOSITORY LAYOUT
      trunk – Main project development
      branches – Experimental and release branches
      tags – “Snapshot” of a project
    14. Importing Your Project
      $ svn import myproject /path/to/repo
      -m “Importing my project”
      Adding myproject/page.php
      Adding myproject/style.css
      Adding myproject/includes
      Adding myproject/includes/db.php
      Committed revision 1.
    15. Checking out Project
      $ svn checkout /path/to/repo/project
      A myproject/page.php
      A myproject/style.css
      A myproject/includes
      A myproject/includes/db.php
      Checked out revision 1.
    16. Committing changes
      $ svn status
      A myproject/login.php
      A myproject/logout.php
      M myproject/page.php
      M myproject/style.css
      M myproject/includes/db.php
    17. Committing Changes
      $ svn commit -m “Added login page.”
      Sending myproject/login.php
      Sending myproject/logout.php
      Sending myproject/page.php
      Sending myproject/style.css
      Sending myproject/includes/db.php
      Transmitting file data .
      Committed revision 3.
    18. Resolving Conflicts
      $ svn status
      C myproject/login.php
    19. Resolving Conflicts
      Four ways of resolving conflicts:
      Overwrite with your version of the file
      Overwrite with the existing version
      Merge the changes manually
      Merge using a merge tool
    20. RESOLVING CONFLICTS
      $ svn resolve --accept working myproject/login.php
      Resolved conflicted state of ‘myproject/login.php'
      $ svn commit -m “Added login session check.”
      Sending myproject/login.php
      Transmitting file data .
      Committed revision 6.
    21. Creating Branches & Tags
      It’s just a copy of a folder…
      Merge changes back into trunk later
      $ svn copy /project/trunk /project/branches/1.0
      $ svn copy /project/trunk /project/tags/1.0
      $ svn copy /project/branches/1.0 /project/tags/1.1
    22. SVN Examples
    23. Release branches
      Used often in open source projects
      Very flexible
      Allows for maintenance releases while core is worked on for next major release.
    24. Release Branches
      tags
      1.0
      1.0.1
      1.5
      1.5.1
      1.7
      branches
      1.7
      1.5
      1.0
      trunk
    25. Seen in the wild…
      WordPress’ SVN
      Zend Framework SVN
    26. Branching Concepts
      Feature Branches
      Allows for experimentation
      Vendor Branches
      Keeping track of code libraries
      Allows for modifications to suit your needs
    27. Conclusion
      You need version control!
      SVN is open-source and (fairly) easy to set up…
      Use branches and tags to experiment with your code.
      Organise it however you like.
    28. And IF You Get Stuck…
      http://svnbook.red-bean.com
      Everything you need to know about SVN.
    29. Thanks (:
      Jordan Hatch - @1jh
      http://www.jordanh.net/
    SlideShare Zeitgeist 2009

    + Jordan HatchJordan Hatch Nominate

    custom

    153 views, 0 favs, 1 embeds more stats

    My talk at BarCamp Blackpool on Subversion.

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 153
      • 135 on SlideShare
      • 18 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 7
    Most viewed embeds
    • 18 views on http://www.jordanh.net

    more

    All embeds
    • 18 views on http://www.jordanh.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories