Revision Control Systems - PowerPoint PPT Presentation

revision control systems n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Revision Control Systems PowerPoint Presentation
Download Presentation
Revision Control Systems

play fullscreen
1 / 15
Revision Control Systems
172 Views
Download Presentation
abner
Download Presentation

Revision Control Systems

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Revision Control Systems Carmen Serrano 4/8/08

  2. Outline • What is Revision Control? • Simple Examples • Benefits • Definitions • Best Practices • Version Control Systems • Clients

  3. What is Revision Control? • “A combination of technologies and practices for tracking and controlling changes to a project’s files, in particular to source code, documentation, and web pages.” (Fogel)

  4. Simple Examples • Manual versioning • MyAwesomeGame1.java, MyAwesomeGame2.java, MyAwesomeGame3.java… • Wikipedia • Multiple contributors per article • Edits to article become new version • Retain previous versions of article

  5. Benefits • Productivity • Interdeveloper communications • Release management • Bug management • Code stability • Attribution and authorization of changes • Experimental development

  6. Definitions • Repository – stores files under version control and information on changes. May be centralized or decentralized. • Checkout – obtaining a local copy from the repository. • Commit/check-in – a change to a local file is stored in the repository • Working copy – local copy of project (user’s private copy) • Update – incorporates changes in the repository into your working copy • Revision – a particular version of a file or set of files; also changeset, a set of changes committed as one

  7. Definitions • Tag – label for a set of files; snapshot of project • Branch – a copy of the project undergoing separate development from the main branch or “trunk” • Merge – combining two changes in a file into a new revision; also combining branches • Conflict – when a change to the same part of a file is made by two users; must be resolved manually • Lock – prevents other users from changing a file • Two models: lock-modify-unlock, copy-modify-merge

  8. Setting Up • Install on server (repository location) • Install on user machines • Optionally install GUI client • Set up repository and access

  9. Best Practices • Version all editable information • Source code, documentation, textures • Don’t include generated files • Ex: executables • Some exceptions: • Exported textures and models • Executable of release • Dependent on project and developer/manager preferences

  10. Daily Best Practices • Update before starting • Commit before leaving • Include informative comments in commit log messages (!) • Inform other programmers of commits (when appropriate)

  11. Version Controls Systems • CVS (Concurrent Versioning System) • Created by Dick Grune in 1986 • Incredibly popular, especially in open-source world • Subversion • Started in 2000; released 1.0 in 2004 • Created to fix shortcomings in CVS (and replace it) • Visual SourceSafe & Team Foundation Server • By Microsoft • Integrates with Visual Studio

  12. CVS vs. Subversion • CVS • Commonly used, well known • Subversion • Similar interface to CVS • Atomic commits • Repository flexibility • Reduced costs of branching and tagging • More efficient commits

  13. GUI Clients • WinCVS • Very popular • TortoiseCVS • Windows shell integration • TortoiseSVN • Based on TortoiseCVS • Examples

  14. References • Fogel, Karl. Producing Open Source Software: How to run a successful free software project • Nagel, William. Subversion Version Control. • Subversion Project Home. http://subversion.tigris.org/ • David, Jean-Luc, Gousset, Mickey, Gunvaldson, Erik. Professional Team Foundation Server.

  15. Homework Questions • 1. What is a commit? • 2. What is one benefit of using a revision control system?