Revision Control and Issue Tracking Andrew Watkins Do I need an RCS? • Large, fast-changing projects with many authors need a Revision Control System • So do small one man band projects Why… Revision Control Use it or lose it • Everything is part of either: – The pipework – The water Revision Control Use it or lose it • Everything we do is either: – Code – Data Source Code • Everything you need to make the system: – – – – – – – Programming language files Compile Scripts Test Scripts Deploy Scripts Documentation IDE Project files Configuration files Keep it safe • So keep a copy – – – – Floppy Disk (remember those) Backup Tape DVD Another computer But… Code Changes • If it is code – then it will change: – Fix Defect – Add Feature – Environment Changes – new platform 10 PRINT "Hello Wordl" Code Changes Time – as system evolves Space – as it spreads out RCS Benefits Backup and Restore. Synchronization Short Term Undo Long Term Undo Track Changes Track Ownership Sandboxing Branch and Merge RCS Systems • Open Source – RCS – GNU, Single Files Only (1982) – CVS – Concurrent Versions System (1990) – SVN – Subversion (2000) • Commercial – Visual Source Safe – Microsoft – Clear Case (Rational - IBM) Distributed RCS • DARCS • GIT • Mercurial svn add list.txt (modify the file) svn ci list.txt -m "Changed the list" svn co list.txt (get latest version) ...edit file... svn revert list.txt (throw away changes) svn co -r2 list.txt (check out particular version) svn diff -r3:4 list.txt Branching svn copy http://path/to/trunk http://path/to/branch Merging svn merge -r5:6 http://path/to/branch svn copy http://path/to/revision http://path/to/tag Round Up • • • • Use version control. Take it slow. Keep Learning. GUI Available – Tortoise SVN – Eclipse (Subclipse) • Web Interface to repository Issue Tracking • Revision Control captures how the code has changed • Issue tracking captures why it changes • RCS contains the present • Issue Tracking contains the future What is an Issue? • An issue tracking system works with: – Bugs / Defects – New Feature requests – Tasks Trac Tickets Atlassian JIRA Issues Issues Issues Issues