Programming in Teams And how to manage your code
Agenda What is revision control? Available choices Github BitBucket Team Foundation Service (TFS) TFS Demonstration
Working in a team? Most commercial programming is done in teams To simplify project management and enforce accountability, version control is used
What is revision control? WITHOUT If a team creates a bug, it could affect how your code too You could loose old code or features that were removed Anyone could add bugs/features to a project and no one would know WITH You are isolated on your own branch, so you know who did it You can go back and see all old version of your project Someone has to approve your code submission
Lingo The Basics Repository – the database holding your code Main/Trunk – This is the primary code Working set – A file you checked out Tags – the name of the project stage Actions Check out – a downloaded file Check in – uploading the file Update – synchronizes your code Revert – toss the changes you made More complicated Branch – create a separate copy of a file or folder Diff – (I bet you know) Merge – combining branches
But how does one “branch”?
That’s how Linux is made (kinda)
Some of the Options Technologies Git Subversion Mercurial Team Foundation In the cloud GitHub Google Code BitBucket Team Foundation Service
Local Revision Control Open Source Solutions TortoiseSVN GUI for SubVersioN Includes submission graphing Git Staging Area Commits Verified Integrity
GitHub Free Unlimited public repositories Unlimited public collaborators Paid ($7-$200 /month) Same as free, but with limited number of private repositories Features Team permissions Read-only, read-write, etc. Wikis Issue Tracking Assigning tasks Easy bug reporting Code Review Comment code in GitHub See code changes
BitBucket Free Unlimited public and private repositories Up to 5 users Paid ($10 - $200 /month) More users, from 10 to unlimited Mercurial or Git
Team Foundation Service Integrated into Visual Studio 2012 Support for Eclipse, Xcode Pricing Free for 5 users, unlimited projects Agile Development Support Build and Test Support
Other Providers GOOGLE CODE For Open source 2Gb of free hosting Subversion, Mercurial, or Git support SOURCE FORGE Unlimited bandwidth Analytics Issue Tracking Open Source
Development Styles AGILE DEVELOPMENT STANDARD WATERFALL METHOD
Queue the Demo…
What did we learn? Why revision control is important Why you should probably be using it Where to go if you do decide to use it
SELECT question FROM student WHERE confused