Revision Control Systems - PowerPoint PPT Presentation

Revision control systems l.jpg
Download
1 / 15

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?.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Revision control systems l.jpg

Revision Control Systems

Carmen Serrano

4/8/08


Outline l.jpg

Outline

  • What is Revision Control?

  • Simple Examples

  • Benefits

  • Definitions

  • Best Practices

  • Version Control Systems

  • Clients


What is revision control l.jpg

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)


Simple examples l.jpg

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


Benefits l.jpg

Benefits

  • Productivity

  • Interdeveloper communications

  • Release management

  • Bug management

  • Code stability

  • Attribution and authorization of changes

  • Experimental development


Definitions l.jpg

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


Definitions7 l.jpg

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


Setting up l.jpg

Setting Up

  • Install on server (repository location)

  • Install on user machines

  • Optionally install GUI client

  • Set up repository and access


Best practices l.jpg

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


Daily best practices l.jpg

Daily Best Practices

  • Update before starting

  • Commit before leaving

  • Include informative comments in commit log messages (!)

  • Inform other programmers of commits (when appropriate)


Version controls systems l.jpg

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


Cvs vs subversion l.jpg

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


Gui clients l.jpg

GUI Clients

  • WinCVS

    • Very popular

  • TortoiseCVS

    • Windows shell integration

  • TortoiseSVN

    • Based on TortoiseCVS

    • Examples


References l.jpg

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.


Homework questions l.jpg

Homework Questions

  • 1. What is a commit?

  • 2. What is one benefit of using a revision control system?


  • Login