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!
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:epo
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
16. 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.
17. 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
20. 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
21. 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.
22. 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
26. Seen in the wild⊠WordPressâ SVN Zend Framework SVN
27. Branching Concepts Feature Branches Allows for experimentation Vendor Branches Keeping track of code libraries Allows for modifications to suit your needs
28. 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.
29. And IF You Get Stuck⊠http://svnbook.red-bean.com Everything you need to know about SVN.