Concurrent Versions System - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Concurrent Versions System

Description:

Checkout, Commit, Update ... cvs add Add new file/directory to repository. cvs remove Remove an entry from the repository. ... Use a common log message for all ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 18
Provided by: warrenjone
Category:

less

Transcript and Presenter's Notes

Title: Concurrent Versions System


1
Concurrent Versions System
  • Overview of CVS architecture.
  • Repository structure.
  • Basic development tasks in WinCvs.
  • Branching and merging.
  • Other CVS interfaces

2
CVS Features
  • Concurrent access by multiple developers
  • Multiple development lines in a single repository
  • Grouping sources into modules
  • Symbolic source tagging
  • Diffs between versions
  • Configurable logging support
  • Binary files support
  • Repository event triggers

3
The CVS Repository
ewacvs/data1/cvsroot
CVSROOT
shr project1 project2 project3 devkits
ar cgi doc install reports util
web

unix nt
cgipr
esapps forms
  • Resides on a server
  • No working files inside the repository

4
CVS Usage ModelCheckout, Commit, Update
  • Checkout Makes private copy in working
    directory Can check out anywhere Check out
    multiple copies, multiple versions
  • Update Brings working copy up to date with
    repository
  • Commit Commit changes to the repository
    when finished Working copies must be up to date
    with repository

5
CVS and the Development Cycle
  • 1. Check out source files in working directory.
  • 2. Edit source files.
  • 3. Unit test your code.
  • 4. Update working files to merge in changes from
    other developers (if necessary).
  • 5. Test again if the sources were merged on step
    4.
  • 6. Commit changes.
  • 7. Repeat from step 2 until you have a new
    release.
  • 8. Tag the release.

6
Common CVS commands
  • cvs cvs-options command cmd-options files
  • cvs checkout Check out source for editing.
  • cvs update Bring working files into sync with
    repository.
  • cvs commit check files into the repository
  • cvs add Add new file/directory to repository.
  • cvs remove Remove an entry from the repository.
  • cvs status Show status of checked out files.
  • cvs log Show revision history for files.
  • cvs diff Compare working files to version in
    repository or versions inside the repository.
  • cvs tag Label the sources.

7
When to update/commit
  • Update frequently so you have the most recent
    changes in your private copy.
  • Commit only when you have automated, passing,
    unit tests for the module you are committing.
  • You may commit related files in a single
    operation. Use a common log message for all the
    files.

8
Ideal development with CVS
Developer A
checkout
update
checkin
development
repository
Developer B
9
Real development with CVS
Developer A
repository
Developer B
10
Branch if you need ...
  • to create sustaining (patch) releases
  • to have multiple development lines from a single
    repository
  • to do experimental development to merge later or
    forget about it
  • to keep temporary state of development without
    affecting builds

11
Working on branches
12
Client-server architecture
  • separate server (UNIX or NT)
  • no shared filesystems
  • a server process per connection

ewacvs
13
WinCVS on your desktop
  • Configuration
  • Main screen
  • Checking out the sources
  • Viewing source history
  • Diff
  • Commit
  • Update
  • Tag

14
CVSweb
Other CVS clients
15
jCVS
Other CVS clients
16
CVS online
  • Official CVS site http//www.cvshome.org
  • WinCvs http//www.wincvs.org
  • jCVS http//www.jcvs.org/
  • TortoiseCVS http//www.tortoisecvs.org/

17
OBSOLETE SLIDE!Concurrent checkout
Checkout does not lock the files in repository
Master Repository foo.c
checkout latest
checkout branch rel_1_fix
checkout V1.1
checkout V1.2
checkout latest
Karen
Patrick
Brigid
Michael
Chris
commit
checkin
checkin
X
X
V1.8 or 1.9
V1.2.2.2
checkin prohibited
V1.8 or 1.9
Write a Comment
User Comments (0)
About PowerShow.com