Lecture Notes On Software Configuration Management: Zia Syed Carnegie Mellon University

Download as pdf or txt
Download as pdf or txt
You are on page 1of 58

15-413

Lecture Notes on
Software Configuration
Management
Zia Syed
2
Carnegie Mellon University

Original slides by Guenter Teubner


Technische Universitaet Muenchen
Institut fuer Informatik

Guenter Teubner 15-413 Software Engineering Fall 1998 1


Outline of the Lecture

v Software Configuration Management (SCM)


w Motivation: Why software configuration management?
w Definition: What is software configuration management?
v Terminology and Methodology
w What are Configuration Items, Baselines, etc. ?
w What goes under version control?
v Software Configuration Management Plans
w Standards (Example: IEEE 828-1990)
w Basic elements of IEEE 828-1990
v Configuration Management Tools
v CVS at a glance
w The basics of CVS
w Examples for the most common use cases
Guenter Teubner 15-413 Software Engineering Fall 1998 2
Why Software Configuration Management ?

v The problem:
w Multiple people have to work on software that is changing
w More than one version of the software has to be supported:
– Released systems
– Custom configured systems (different functionality)
– System(s) under development
w Software must run on different machines and operating
systems

í Need for coordination


v Software Configuration Management
w manages evolving software systems
w controls the costs involved in making changes to a system

Guenter Teubner 15-413 Software Engineering Fall 1998 3


What is Software Configuration Management

v Definition:
w A set of management disciplines within the software
engineering process to develop a baseline.

Forward Definition!
v Description:
w Software Configuration Management encompasses the
disciplines and techniques of initiating, evaluating and
controlling change to software products during and after the
software engineering process.

v Standards (approved by ANSI)


w IEEE 828: Software Configuration Management Plans
w IEEE 1042: Guide to Software Configuration Management

Guenter Teubner 15-413 Software Engineering Fall 1998 4


SCM Activities

v Software Configuration Management (SCM) Activities:


w Configuration identification (labeling and identification)
w Baseline management
w Change control (mechanism needed to coordinate parallel
activities)
w Reviews (status accounting, audits)
w Release management

v No fixed rules:
w SCM functions are usually performed in different ways
(formally, informally) depending on the project type and life-
cycle phase (research, development, maintenance).

Guenter Teubner 15-413 Software Engineering Fall 1998 5


Terminology and Methodology

v What are
w Configuration Items
w Baselines
w SCM Directories
w Versions, Revisions and Releases

í The usage of the terminology presented here is not strict


but varies for different configuration management
systems. We will see for example that the configuration
management system used for this class uses different
names than those mentioned in the IEEE standards.

Guenter Teubner 15-413 Software Engineering Fall 1998 6


Terminology: Configuration Item

“An aggregation of hardware, software, or both, that is


designated for configuration management and treated as a
single entity in the configuration management process.”

v Software configuration items are not only program code segments


but all type of documents according to development, e.g
í all type of code files
í drivers for tests
í analysis or design documents
í user or developer manuals
í system configurations (e.g. version of compiler used)

v In some systems, not only software but also hardware


configuration items (CPUs, bus speed frequencies) exist!

Guenter Teubner 15-413 Software Engineering Fall 1998 7


Finding Configuration Items (CIs)

v Large projects typically produce thousands of entities


(files, documents, ...) which must be uniquely identified.

v But not every entity needs to be configured all the time.


Issues:
w What: Selection of CIs (What should be managed?)
w When: When do you start to place an entity under
configuration control?

í Starting too early introduces too much bureaucracy


í Starting too late introduces chaos

Guenter Teubner 15-413 Software Engineering Fall 1998 8


Finding Configuration Items (continued)

v Some of these entities must be maintained for the


lifetime of the software. This includes also the phase,
when the software is no longer developed but still in
use; perhaps by industrial customers who are expecting
proper support for lots of years.
v An entity naming scheme should be defined
so that related documents have related names.

v Selecting the right configuration items is a skill that


takes practice
w Very similar to object modeling
w Use techniques similar to object modeling for finding CIs

Guenter Teubner 15-413 Software Engineering Fall 1998 9


Configuration Identification is similar to Object Identification
STARS CI
STARS CI

promote()
release()

Models Subsystems Documents

Object Model Dynamic Model RAD SPMP ....

Repair Inspection ....

.... Code Documents Unit Test ....


Guenter Teubner 15-413 Software Engineering Fall 1998 10
STARS
Tasks for the Configuration Managers in STARS

Define
Defineconfiguration
configurationitems
items

Guenter Teubner 15-413 Software Engineering Fall 1998 11


Terminology: Baseline

“A specification or product that has been formally reviewed


and agreed to by responsible management, that thereafter
serves as the basis for further development, and can be
changed only through formal change control procedures.”

Examples:
Baseline A: The API of a program is completely defined; the bodies of
the methods are empty.
Baseline B: All data access methods are implemented and tested;
programming of the GUI can start.
Baseline C: GUI is implemented, test-phase can start.

Guenter Teubner 15-413 Software Engineering Fall 1998 12


More on Baselines
v As systems are developed, a series of baselines is
developed, usually after a review (analysis review, design
review, code review, system testing, client acceptance, ...)
w Developmental baseline (RAD, SDD, Integration Test, ...)
– Goal: Coordinate engineering activities.
w Functional baseline (first prototype, alpha release, beta release)
– Goal: Get first customer experiences with functional system.
w Product baseline (product)
– Goal: Coordinate sales and customer support.
v Many naming scheme for baselines exist (1.0, 6.01a, ...)
v 3 digit scheme:
7.5.5

Release Version Revision


(Customer) (Developer) (Developer)

Guenter Teubner 15-413 Software Engineering Fall 1998 13


Baselines in SCM

Baseline A (developmental)
All changes relative to baseline A

Baseline B (functional)
All changes relative to baseline B

Baseline C (beta test)


All changes relative to baseline C

Official Release

Guenter Teubner 15-413 Software Engineering Fall 1998 14


SCM Directories

v Programmer’s Directory (IEEE: Dynamic Library)


w Library for holding newly created or modified software
entities. The programmer’s workspace is controlled by the
programmer only.
v Master Directory (IEEE: Controlled Library)
w Manages the current baseline(s) and for controlling changes
made to them. Entry is controlled, usually after verification.
Changes must be authorized.
v Software Repository (IEEE: Static Library)
w Archive for the various baselines released for general use.
Copies of these baselines may be made available to
requesting organizations.

Guenter Teubner 15-413 Software Engineering Fall 1998 15


Standard SCM Directories

v Programmer’s Directory
w (IEEE Std: “Dynamic Library”)
w Completely under control of one
programmer.
Promotion
v Master Directory
w (IEEE Std: “Controlled Library”) Central source
w Central directory of all code archive
promotions.
Release
v Software Repository
w (IEEE Std: “Static Library”)
Foo’95 Foo’98
w Externally released baselines.

Guenter Teubner 15-413 Software Engineering Fall 1998 16


Controlling Changes

v Two types of controlling change:


w Promotion: The internal development state of a software is changed.
w Release: A set of promotions is distributed outside the development
organization.

Promote Release
Policy Policy
User
Master Software Repository
Programmer
Promotion Directory Release
v Approaches for controlling change to libraries (Change Policy)
w Informal (good for research type environments)
w Formal approach (good for externally developed CIs and for releases)

Guenter Teubner 15-413 Software Engineering Fall 1998 17


Change Policies

v Whenever a promotion or a release is performed, one or


more policies apply. The purpose of change policies is
to guarantee that each version, revision or release (see
next slide) conforms to commonly accepted criteria.

v Examples for change policies:


No developer is allowed to promote source code which cannot
be compiled without errors and warnings.

No baseline can be released without having been beta-tested


by at least 500 external persons.

Guenter Teubner 15-413 Software Engineering Fall 1998 18


Tasks for the Configuration Managers in STARS

Define
Defineconfiguration
configurationitems
items

Define
Definepromote
promote/release
/releasepolicies
policies

Guenter Teubner 15-413 Software Engineering Fall 1998 19


Version vs. Revision vs. Release

v Version:
w An initial release or re-release of a configuration item
associated with a complete compilation or recompilation of
the item. Different versions have different functionality.

v Revision:
w Change to a version that corrects only errors in the
design/code, but does not affect the documented
functionality.

v Release:
w The formal distribution of an approved version.

Guenter Teubner 15-413 Software Engineering Fall 1998 20


SCM planning

v Software configuration management planning starts


during the early phases of a project.

v The outcome of the SCM planning phase is the


Software Configuration Management Plan (SCMP)
which might be extended or revised during the rest of
the project.

v The SCMP can either follow a public standard like the


IEEE 828, or an internal (e.g. company specific)
standard.

Guenter Teubner 15-413 Software Engineering Fall 1998 21


The Software Configuration Management Plan

v Defines the types of documents to be managed and a


document naming scheme.
v Defines who takes responsibility for the CM procedures
and creation of baselines.
v Defines policies for change control and version
management.
v Describes the tools which should be used to assist the
CM process and any limitations on their use.
v Defines the configuration management database used to
record configuration information.

Guenter Teubner 15-413 Software Engineering Fall 1998 22


Outline of a Software Configuration
Management Plan (SCMP, IEEE 828-1990)

v 1. Introduction v 4. Schedule (WHEN?)


w Describes purpose, scope of w Establishes the sequence and
application, key terms and coordination of the SCM
references activities with project mile
stones.
v 2. Management (WHO?)
w Identifies the responsibilities v 5. Resources (HOW?)
and authorities for w Identifies tools and
accomplishing the planned techniques required for the
configuration management implementation of the SCMP
activities v 6. Maintenance
v 3. Activities (WHAT?) w Identifies activities and
w Identifies the activities to be responsibilities on how the
performed in applying to the SCMP will be kept current
project. during the life-cycle of the
project.

Guenter Teubner 15-413 Software Engineering Fall 1998 23


Tasks for the Configuration Managers in STARS

Define
Defineconfiguration
configurationitems
items

Define
Definepromote
promote/release
/releasepolicies
policies

Define
Defineresponsibilities
responsibilities

Guenter Teubner 15-413 Software Engineering Fall 1998 24


Tailoring the SCMP

v The IEEE standard allows quite a bit flexibility for


preparing an SCMP.

v To conform to the rest of the project, the SCMP may be


w tailored upward:
– to add information
– to use a specific format
w tailored downward
– Some SCMP components might not apply to a particular project.
– Instead of omitting the associated section, mention its
applicability.
– Information that has not been decided on at the time the SCMP
is approved should be marked as “to be determined”.

Guenter Teubner 15-413 Software Engineering Fall 1998 25


Conformance to the IEEE Standard 828-1990

v Presentation format & Minimum information


w A separate document or a section embedded in another
document titled “Software Configuration Management Plan”.
w 6 Sections: Introduction, Management, Activities, Schedules,
Resources and Plan Maintenance
v Consistency Criteria:
w All activities defined in the SCMP are assigned to an
organizational unit or person and they are associated with
resources to accomplish the activities.
w All identified Configuration items have defined processes for
baseline establishment and change control.
v If the above criteria are met, the SCMP can include the
following sentence:
“This SCMP conforms with the requirements of IEEE Std 828-1990.”

Guenter Teubner 15-413 Software Engineering Fall 1998 26


Tools for Software Configuration Management

v Software configuration management is normally


supported by tools with different functionality.

v Examples:
w RCS
– very old but still in use; only version control system
w CVS
– based on RCS, allows concurrent working without locking
w Perforce
– Repository server; keeps track of developer’s activities
w ClearCase
– Multiple servers, process modeling, policy check mechanisms

Guenter Teubner 15-413 Software Engineering Fall 1998 27


Tasks for the Configuration Managers in STARS
SCMP following the IEEE 828-1990 standard

Define
Defineconfiguration
configurationitems
items

Define
Definepromote
promote/release
/releasepolicies
policies

Define
Defineresponsibilities
responsibilities

Set
Setup
upconfiguration
configurationmanagement
managementsystem
system

Guenter Teubner 15-413 Software Engineering Fall 1998 28


Summary

v Software Configuration Management is an elementary


part of the project management plan to manage evolving
software systems and coordinate changes to them.
v SCM is performed by following a SCM plan. This plan
can either follow a public standard (e.g. IEEE 828) or an
internal standard.
v It is necessary to tailor a standard to a particular project:
w Large projects need detailed plans to be successful
w Small projects can’t afford the bureaucracy of such plans
v SCM is supported by tools. Their functionality varies
from simple version storage tools to very sophisticated
systems with automated procedures for policy checks
and support for the creation of SCM documents.

Guenter Teubner 15-413 Software Engineering Fall 1998 29


CVS
Concurrent Version System

Guenter Teubner 15-413 Software Engineering Fall 1998 30


CVS at a glance

v We will use CVS (Concurrent Version System) as


version management system for this project during
development. CVS is a shell-based, freely available
configuration management system with a very short
learning time for standard users.

v For easy access, we provide also a web-interface to the


repository which allows no changes to the repository.

v The Configuration Manager of the project is ???. He will


install and operate the system and provide basic help
for the other students.

Guenter Teubner 15-413 Software Engineering Fall 1998 31


How CVS works ...

v Configuration Manager
w Creates one central repository for all developers.
w Structures the repository by defining modules which
represent directory trees.
v Developer
w Has his/her own working directory.
w Selects the part of the repository (modules) he wants to work
with.
w Receives copies of all these modules. He can then work on his
local copies.
w Adds new files to the repository.
w Modifies existing ones.
w Resolves conflicts when two developers have edited the same
part of the same file simultaneously.

Guenter Teubner 15-413 Software Engineering Fall 1998 32


CVS Tutorial Operations

v Setting up a master directory (CVS: Repository)

v Creating the programmers directory


v Adding a new file to the repository
v Getting a file from the repository
v Updating a file in your local directory
v Editing a file and resolving a conflict
v Promoting your changes to a file
v Getting information about a file
v Deleting a file from the repository

Guenter Teubner 15-413 Software Engineering Fall 1998 33


Creating the programmers directory

v Before you can use CVS, you have to set the following
two environment variables:
w Variable: CVSROOT
w Value: <Directory has to be defined>
w Variable: EDITOR
w Value: <Your preferred editor>
v Set this variables in your login-scripts so that you can be
sure, that they definitely exist when you are working in
the computer lab.

v Create a directory for the STARS, enter it and type


cvs checkout <module name>

Guenter Teubner 15-413 Software Engineering Fall 1998 34


Creating the programmers directory (continued)

v What is this “module name”?


w CVS doesn't work on ordinary directory trees; you need to
work within a directory that CVS created for you. Just as you
check out a book from a library before taking it home to read
it, you use the cvs checkout command to get a directory
tree from CVS before working on it. The module name
specifies, which tree you get from the repository as there can
be more than one.

v Only the configuration manager can create modules for


you. If you want to establish a new module (e.g. for
bringing also the HTML documentation under version
control), you have to contact ????.

Guenter Teubner 15-413 Software Engineering Fall 1998 35


Creating the programmers directory

There
Thereisisnothing
nothingspecial
specialto
todo
dowhen
whenyou
you
create
createthe
theworking
workingdirectory.
directory.All
Allyou
youneed
need
isisaadirectory
directory (here called Example) andtwo
(here called Example) and two
environment variables indicating where
environment variables indicating where to to
find
findthe
therepository
repositoryand
andwhich
whicheditor
editorshould
should
bebeused
usedfor
fortyping
typingcomments,
comments,etc.
etc.

Guenter Teubner 15-413 Software Engineering Fall 1998 36


Getting files from the repository

v Situation: You want to get a copy of a file you have


currently not in your local directory. If the file belongs
to a different module, you have to checkout the module.

v Command: cvs checkout module

v If you deleted a file by accident and want it back,


simply request the most recent version from the
repository. Remember that this will not bring back the
changes you made locally before!

v Command: cvs update filename

Guenter Teubner 15-413 Software Engineering Fall 1998 37


Getting files from the repository

v If you modified a file and want to revert to the previous


version.

v Command: cvs update –p –r ver file > file

Guenter Teubner 15-413 Software Engineering Fall 1998 38


Getting files from the repository

Thecvs
The cvscheckout
checkoutcommand
commandcreates
createscopies
copies
of
ofthe
thefiles
filesin
inthe
therepository
repositoryin inyour
yourlocal
local
directory.
directory.YouYoucan
canretrieve
retrieveeither
eithersingle
single
files or complete directories
files or complete directories . .

The
Theletter
letterininfront
frontof
ofthe
thefile
filename
name
indicates the performed operation
indicates the performed operation
on
onthe
thefile.
file.The meansupdated.
TheUUmeans updated.

Guenter Teubner 15-413 Software Engineering Fall 1998 39


Working with your files

Create
Createaanew
newfile
filein
inthe
theeditor
editor

You
Youcan
canwork
workwithwiththe
thefiles
filesin
inthe
theworking
working
directory
directory as if CVS does not exist. Youcan
as if CVS does not exist. You can
edit
editor
orcompile
compilethem
themand
andyou
youcan
canalso
alsocreate
create
new
newfiles (hereGoodbyeWorld.java).
files(here GoodbyeWorld.java).

Guenter Teubner 15-413 Software Engineering Fall 1998 40


Adding a file to the repository

v Situation: A file which is currently not under version


control has to be added to the repository.

v Command: cvs add filename

v You still have to do a cvs commit after this command


to make the addition(s) actually take affect.

v You may make any number of new files in your


programmers directory, but they will not be committed
to the central repository unless you do a cvs add.

Guenter Teubner 15-413 Software Engineering Fall 1998 41


Adding a file (example)

Files
Filesand
anddirectories
directoriescan
canbe
beadded
addedwith
with
thecvs
the cvsadd
addcommand.
command.The Theadded
addedfiles
files
become
become visible to other developersafter
visible to other developers after
the next cvs commit (see slides 48/49).
the next cvs commit (see slides 48/49).

Guenter Teubner 15-413 Software Engineering Fall 1998 42


Updating a local file

v Situation: You have a local, possibly outdated copy of a


file which you have edited. You now want to get the
most recent version with all changes done by other
developers (merged with your changes).

v Command: cvs update filename

v CVS will inform you, if the file


w has not changed in the meantime
w has been updated (new code only from other developers)
w has been merged (new code also from you)
w couldn’t be completely merged, because a conflict was found

Guenter Teubner 15-413 Software Engineering Fall 1998 43


Updating a local file

To
Toupdate
updateyour
yourlocal
localworking
workingdirectory,
directory,runruncvscvsupdate.
update.
You
Youget
getaalist
listof
ofall
allfiles
fileswith
withaaletter
letterindicating
indicatingthe the
performed
performed operation on the file during the update.The
operation on the file during the update. The
most common operations are “U” (file has been
most common operations are “U” (file has been updated), updated),
“M”
“M”(file
(filehas
hasbeen
beenmerged),
merged),and
and“?”“?”(file
(fileisisunknown).
unknown).
CVS
CVSdoes
doesnot
notlist
listthe
theknown,
known,unchanged
unchangedfiles. files.In
Inthis
this
example,HelloWorld.java
example, HelloWorld.javahas hasbeen
beenupdated.
updated.The Thenew
new
version prints the string three times.
version prints the string three times.

Guenter Teubner 15-413 Software Engineering Fall 1998 44


Resolving a conflict

v Situation: You asked for an update of one or more files.


During this process, you got at least one message
looking like the following:
rcsmerge: warning: conflicts during merge
cvs update: conflicts found in <filename>

v To resolve the conflict, start your favorite editor and


search the file for the following construct:
<<<<<<< filename
if (! error) {
exit (1);
}
=======
if (! error) {
exit (0);
}
>>>>>>> 1.9

Guenter Teubner 15-413 Software Engineering Fall 1998 45


Resolving a conflict (continued)

v The text from your working file appears at the top, after
the `<<<' characters; below it is the conflicting text from
the other developer. The revision number `1.9' indicates
that the conflicting change was introduced in version
1.9 of the file, making it easier for you to check the logs,
or examine the entire change with cvs diff.

v Once you've decided how the conflict should be


resolved, remove the markers from the code, and put it
in its proper state.

v Repeat this process for all files with an error message


and all occurrences within them.

Guenter Teubner 15-413 Software Engineering Fall 1998 46


Resolving a conflict
You
Youcan’t
can’tcommit
commityouryourchanges
changesififyour
your
version of a file is not up-to-date!
version of a file is not up-to-date!

Thecvs
The cvsupdate
updatecommand
commandthrows
throwsaawarning
warning
when
when a merging conflict occurs. Youhave
a merging conflict occurs. You havetoto
resolve
resolvethis
thisconflict
conflictmanually
manuallybefore
beforeyou
youcan
can
commit
commityour
yourchanges.
changes.

Guenter Teubner 15-413 Software Engineering Fall 1998 47


Resolving a conflict (continued)

These
Theseare
arethe
theconflicting
conflictinglines
linesof
ofcode.
code.The
The
developer has to select the correct version
developer has to select the correct version
and
andremove
removethe
the

Guenter Teubner 15-413 Software Engineering Fall 1998 48


Committing your changes

v Situation: You have brought your sources up-to-date


with the rest of the group and tested them, so you are
ready to commit your changes to the repository and
make them visible to the rest of the group.

v Command: cvs commit filename

v At this point, CVS will start up your favorite editor and


prompt you for a log message describing the change.
When you exit the editor, CVS will commit your
change, it is now visible to the rest of the group. When
another developer runs cvs update, CVS will merge
your changes to ‘filename’ into their working directory.

Guenter Teubner 15-413 Software Engineering Fall 1998 49


Committing your changes

For
Foreach
eachcommit,
commit,CVS
CVSrequests
requestsananentry
entryfor
forthe
the
log
logfile.
file.The
Theeditor
editorspecified
specifiedby theEDITOR
bythe EDITOR
environment
environmentvariable
variableisisused
usedtotocreate
createthese
theselog
log
file entries. Empty entries are not accepted.
file entries. Empty entries are not accepted.

Guenter Teubner 15-413 Software Engineering Fall 1998 50


Committing your changes (continued)

After
Afterentering
enteringthe
thelog
logfile
filecomments,
comments,all
all
locally
locallymade
madechanges
changesare
arecommitted
committedto
to
the
the repository. Other developers nowhave
repository. Other developers now have
access to them.
access to them.

Guenter Teubner 15-413 Software Engineering Fall 1998 51


Getting some information about a file

v Situation: You might well be curious what changes the


other developers made to a file.

v Command: cvs log filename

v You will see the log for this particular file. You get a list
of all revisions including the name of the developer, the
message describing the changes he/she did, the date
and time of the commit and the differences between the
revisions.
v You can find a description of the diff-format in the CVS
documentation on the homepage of this course!

Guenter Teubner 15-413 Software Engineering Fall 1998 52


Getting some information about a file

Thecvs
The cvslog
logcommand
commanddisplays
displaysinformation
information
about
about the revisions of a file includingthe
the revisions of a file including the
name
name of the author, date and time whenhe
of the author, date and time when he
committed a particular revision and
committed a particular revision and thethe
comment
commenthe hespecified.
specified.

Guenter Teubner 15-413 Software Engineering Fall 1998 53


Deleting a file from the repository

v Situation: One or more files are not longer being used


and have to be removed from the repository.

v Command: cvs remove filename

v You still have to do a cvs commit after this command


to make the remove(s) actually take affect.
v Note: cvs remove does not actually remove the files
from the repository. It only moves them from the
"current list" to the CVS Attic. When another person
checks out the module in the future they will not get the
files that were removed. But if you ask for older
versions, the file will be checked out of the Attic.
Guenter Teubner 15-413 Software Engineering Fall 1998 54
Deleting a file (example)

To
Toremove
removeaafile filefrom
fromthe
therepository,
repository,
remove
removeititfirst
firstfrom
fromyour
yourworking
working
directory.
directory. Otherwise you’llget
Otherwise you’ll getan
an
message
message from CVS. You can thenremove
from CVS. You can then remove
the file from the repository with
the file from the repository with the the
commandcvs
command cvsremove.
remove.This
Thisbecomes
becomes
effective
effectiveafter
afterthe nextcvs
thenext cvscommit.
commit.

Guenter Teubner 15-413 Software Engineering Fall 1998 55


CVS Basic Commands (Summary)

Adding a file to the repository cvs add filename


Getting a module (file tree) cvs checkout modulename
Updating a local file cvs update filename
Update whole module cvs update
Promote all changes done to a file cvs commit filename
Promote all changes in a module cvs commit

Deleting a file from the repository cvs delete filename


See version history for a file cvs log filename
See status of current file cvs status filename
See difference of file with original cvs diff filename

Guenter Teubner 15-413 Software Engineering Fall 1998 56


Security aspects of CVS

v Direct access (through the file system) to the repository


is restricted by using the access control mechanisms of
the Linux file system.

v Web access is restricted by


w using a password protected website
w allowing only read-access to the repository through the web

v Important: Every developer has to protect his private working


directory by establishing appropriate access rights (e.g. read
and write access only for him/her.

Guenter Teubner 15-413 Software Engineering Fall 1998 57


Where to find help on CVS?

v The direct way


w cvs -H
v The unix way
w man cvs
v The comprehensive way
w Read the documentation for CVS. You’ll find a copy on the
webpage of the project.
v Where to start in the web?
w http://www.cyclic.com
w http://konablend.se.cs.cmu.edu/PAID/Misc-
Documents/CVS/HTML/cvs_toc.html

Guenter Teubner 15-413 Software Engineering Fall 1998 58

You might also like