160 likes | 284 Views
ITEC 370. Lecture 16 Implementation. Review. Questions? Design document on F, feedback tomorrow Midterm on F Implementation Management (MMM) Team roles Code reviews / Pair programming. Objectives. Look at version control. Scenario. You spend 4 hours working on a feature
E N D
ITEC 370 Lecture 16 Implementation
Review • Questions? • Design document on F, feedback tomorrow • Midterm on F • Implementation • Management (MMM) • Team roles • Code reviews / Pair programming
Objectives • Look at version control
Scenario • You spend 4 hours working on a feature • Another teammate also spends 4 hours working on a feature • Both work • Both include changes to the same system • Which code should be accepted?
Issues • What files are part of the repository • Who can modify each file • How are conflicts (merges) handled • Who can add files to the repository • Who can remove files from the repository • Are all changes logged so reversion is possible
Updating • When you change the repository you can leave a message • Extremely useful in maintenance • Also useful for keeping track of developers
Bad version control • Fruit can / USB key • Issues • Backup? • Source hog
Types • Simple • Only one person can write at a time • Centralized • One server to rule them all • Distributed • Spread out all over the place
Access • GUI • Integrated into IDE • Non-GUI • Command line app • Type in commands to handle it (preferred method)
Git • Free for open source, low cost for private repositories • Distributed system • Local / remote repository • Supports branching and merging • Good for experiments • Takes extra effort
Visually Alpha 1 Initial Prototype 1 Prototype 2
Starting a repository in Git • First off create content • Second, store content in a directory • Commands • gitinit • git add . • git commit –m “Initial commit”
Updating • Use git diff to see what is different between working copy and repository • Use git commit –a to add local changes to repository • Warning: Have to add new files manually • git –A . • Fun • git blame filename
Remote repository • Want to get code from someone? • gitremote add origin git@github.com:vogella/gitbook.git • Switch to a different directory • gitclone --bare . path/gitbook.git • Want to send code to someone? • git push –u name master
Guide • Excellent tutorial • Branching / merging • Specifics / examples http://www.vogella.com/articles/Git/article.html
Review • Version control • Why • What is typically used • Example of Git