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 Code
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
Merging svn merge -r5:6
svn copy
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