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 o C e d
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 -r 2 list. txt (check out particular version)
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