Version controlling with Subversion By Mursil Sayed
Workshop details • 4 sessions each of 90 min duration • 2 sessions on Version controlling • 2 sessions on Object Oriented Design
Value • Mandatory tool for collaboration especially in your final year project • Will help you to differentiate yourself from the crowd by adding value to your CV
Target Audience • Undergraduate students who are passionate about software development. • Project group members involved in Final year projects.
Assumptions • Focus on getting hands on experience and interaction. • Requires at least 4-6 hours of practice per week
Version Controlling • When and why to go for version controlling? • Version control/Revision control/ source control? • How can version controlling help you in your academic projects? • Working copy vs. repository • Save all revisions or states of a project so that previous revisions can be restored • Single users vs. Multiple users
Tools for version controlling • Subversion • VSS • CVS
Features of Subversion • Revisions • Comparing Revisions • Restoring to previous Revision • Atomic commits.
Features of Subversion Continued.. • Multiple checkouts. • Differential saving of both text and binary data • Efficient Tagging, branching and managing multiple branches of development • Efficient merging
How subversion works? • Secure mode : Accessing subversion repository hosted on a subversion server via subversion client • Fast mode: Directly accessing subversion repository via subversion client
Subversion – ArchitectureOverview Client Interface Repository Interface FSFS Apache mod_dav GUIclient apps Repository access mod_dav_svn DAV Internet (Any TCP/IP Network) Client Library svnserve SVN Commandline client apps Subversion Repository Local Working Copy Management Library Berkley DB
Subversion – ArchitectureAccess URLs • file:// Direct repository access to local or network drive.) • http:// Access via WebDAV protocol to Subversion-aware Apache server.) • https:// Same as http://, but with SSL encryption. • svn:// Unauthenticated TCP/IP access via custom protocol to an svnserve server. • svn+ssh:// Authenticated, encrytped TCP/IP access via custom protocol to an svnserve server.
What is Tortoise SVN? • TortoiseSVN is an easy-to-use SCM / source control software for Microsoft Windows and possibly the best standalone Subversion client there is.
Using TortoiseSVN • Installing TortoiseSVN • Defining the repository and working copy architecture
Subversion – ArchitectureRepository Layouts Root Root trunk Project 1 Project 1 trunk tags Project 2 branches tags Project 1 Project 2 Project 2 trunk branches tags Project 1 branches Project 2
Using TortoiseSVN continued.. • Adding files in repository • Checking out files from repository • Revisions • How multiple developers in a team works with Subversion • Checking logs and revision graphs. • Restoring to previous version.
Resources Free e-book: http://svnbook.red-bean.com/en/1.5/svn-book.pdf Go through preface, Chap#1 Fundamentals and Chap#2 Basic usage
Resources continued.. Tortoise SVN tool: http://tortoisesvn.tigris.org/ TortoiseSVN is a free and really easy to use Revision control / version control / source control software for Windows.
Resources continued.. VIDEO LINKS: Why we use SVN : http://www.youtube.com/watch?v=8wYiabh2hpM&NR=1 How to use: http://www.youtube.com/watch?v=4sUYnEylvU0&feature=related
Resources continued.. ONLINE REPOSITORIES:- 1-http://www.assembla.com/ (your code\data will be open source when you register a free repository) 2-https://www.projectlocker.com/ (500MB, your code\data will be secure and you and 4 other members of your team can view it)
Practice Tasks • Setting up a simple repository on your own computer • Go through the training material and learning basic operations of Commit, Checkout, Revert
Topics for the next session • Questions • Setting up the repository on free online server • Advance concepts of tagging, branching, rollback, merging • Shared Minds Facebookfanpage contains recording of this session