Version Control <ul><li>Introduction / Taster </li></ul><ul><li>Use on-line resources, books or colleagues for more info <...
Version Control <ul><li>What is it </li></ul><ul><ul><li>A method for centrally storing files </li></ul></ul><ul><ul><li>K...
Version Control: Why? <ul><li>Individual </li></ul><ul><ul><li>Back-up methodology </li></ul></ul><ul><ul><li>Increments –...
Version Control: Centralised
Version Control: Distributed
Version Control: Types <ul><li>CVS – Concurrent Version System </li></ul><ul><ul><li>http://www.nongnu.org/cvs/ </li></ul>...
Subversion <ul><li>Code centralised in a repository </li></ul><ul><li>Check out a working copy into a development area on ...
Subversion <ul><li>Change log – who, when, what </li></ul><ul><li>Check for differences between current version and any ve...
Subversion Clients <ul><li>SVN command-line tool </li></ul><ul><li>HTTP (WebDav) </li></ul><ul><li>SVN+SSH </li></ul><ul><...
Subversion Resources <ul><li>Documentation, links to clients etc. at  http://subversion.tigris.org/ </li></ul><ul><li>Read...
Upcoming SlideShare
Loading in...5
×

Introduction to Version Control

4,963

Published on

Short introduction to Version Control with specific focus on Subversion

Published in: Technology
2 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,963
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
172
Comments
2
Likes
2
Embeds 0
No embeds

No notes for slide

Introduction to Version Control

  1. 1. Version Control <ul><li>Introduction / Taster </li></ul><ul><li>Use on-line resources, books or colleagues for more info </li></ul><ul><li> </li></ul><ul><li>Solution Perspective Media </li></ul>
  2. 2. Version Control <ul><li>What is it </li></ul><ul><ul><li>A method for centrally storing files </li></ul></ul><ul><ul><li>Keeping a record of changes </li></ul></ul><ul><ul><li>Who did what, when in the system </li></ul></ul><ul><ul><li>Covering yourself when things inevitably go wrong </li></ul></ul>
  3. 3. Version Control: Why? <ul><li>Individual </li></ul><ul><ul><li>Back-up methodology </li></ul></ul><ul><ul><li>Increments – know which version is live </li></ul></ul><ul><ul><li>Point in time marking aka. Tagging </li></ul></ul><ul><ul><li>Branching – release versions maintained & main development can continue </li></ul></ul><ul><ul><li>Change history – when features were added or amended </li></ul></ul><ul><li>Team </li></ul><ul><ul><li>As Individual plus: </li></ul></ul><ul><ul><li>Allow multiple developers (in remote locations) to work on same code base </li></ul></ul><ul><ul><li>Merge changes across same files – handle collisions </li></ul></ul><ul><ul><li>Answer who did what – blame / praise </li></ul></ul>
  4. 4. Version Control: Centralised
  5. 5. Version Control: Distributed
  6. 6. Version Control: Types <ul><li>CVS – Concurrent Version System </li></ul><ul><ul><li>http://www.nongnu.org/cvs/ </li></ul></ul><ul><li>SVN – Subversion http://subversion.tigris.org/ </li></ul><ul><li>Git* - http://git.or.cz/ </li></ul><ul><li>Bazaar* - http://bazaar-vcs.org/ </li></ul><ul><li>Mercurial* - http://www.selenic.com/mercurial/ </li></ul><ul><li>Monotone* - http://www.monotone.ca/ </li></ul><ul><li>VSS – Visual Source Safe – Microsoft visual tool </li></ul><ul><ul><li>* Distributed version control </li></ul></ul>
  7. 7. Subversion <ul><li>Code centralised in a repository </li></ul><ul><li>Check out a working copy into a development area on local machine </li></ul><ul><li>Make changes, test etc. </li></ul><ul><li>Changes committed back to the central repository – usually with a useful comment </li></ul><ul><li>Each work session an update is performed to get changes from other team members </li></ul>
  8. 8. Subversion <ul><li>Change log – who, when, what </li></ul><ul><li>Check for differences between current version and any version in repository </li></ul><ul><li>Create and apply patches between tags, branches and trunk </li></ul><ul><li>Recover old versions of files, roll-back when it goes wrong </li></ul><ul><li>Recover old versions of project – single version number for all files (unlike e.g. CVS) </li></ul>
  9. 9. Subversion Clients <ul><li>SVN command-line tool </li></ul><ul><li>HTTP (WebDav) </li></ul><ul><li>SVN+SSH </li></ul><ul><li>Dedicated client tools for all major platforms </li></ul><ul><li>Plug-ins for IDEs e.g. Zend Studio, Eclipse </li></ul><ul><li>Automatic integration as a network drive (user doesn't need to know it's a version control system) </li></ul>
  10. 10. Subversion Resources <ul><li>Documentation, links to clients etc. at http://subversion.tigris.org/ </li></ul><ul><li>Read Bean Book (Open Source) http://svnbook.red-bean.com/ </li></ul><ul><li>Pragmatic Version Control Using Subversion – Mike Mason, Pragmatic Bookshelf </li></ul><ul><li>Version Control with Subversion – Collins-Sussman, O'Reilly (Turtles) </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×