1 / 15

Revision Control Systems

Revision Control Systems. Carmen Serrano 4/8/08. Outline. What is Revision Control? Simple Examples Benefits Definitions Best Practices Version Control Systems Clients. What is Revision Control?.

abner
Download Presentation

Revision Control Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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?

More Related