Open Source Development With CVS
Top
Introduction
An Overview of CVS
Basic Concepts
A Day With CVS
Conventions Used In This Tour
Invoking CVS
Accessing A Repository
Starting A New Project
Checking Out A Working Copy
Version Versus Revision
Making A Change
Finding Out What You (And Others) Did -- update And diff
CVS And Implied Arguments
Committing
Revision Numbers
Detecting And Resolving Conflicts
Finding Out Who Did What (Browsing Log Messages)
Examining And Reverting Changes
The Slow Method Of Reverting
The Fast Method Of Reverting
Other Useful CVS Commands
Adding Files
Adding Directories
CVS And Binary Files
Removing Files
Removing Directories
Renaming Files And Directories
Avoiding Option Fatigue
Getting Snapshots (Dates And Tagging)
Acceptable Date Formats
Marking A Moment In Time (Tags)
Branches
Branching Basics
Merging Changes From Branch To Trunk
Multiple Merges
Creating A Tag Or Branch Without A Working Copy
Repository Administration
Getting And Installing CVS
Getting And Building CVS Under Unix
Getting And Installing CVS Under Windows
Getting And Installing CVS On A Macintosh
Limitations Of The Windows And Macintosh Versions
Anatomy Of A CVS Distribution
Informational Files
Subdirectories
The Cederqvist Manual
Other Sources Of Information
Starting A Repository
The Password-Authenticating Server
Anonymous Access
Repository Structure
RCS Format
What Happens When You Remove A File
The CVSROOT/ Administrative Directory
The config File
The modules File
The commitinfo And loginfo And rcsinfo Files
The verifymsg And rcsinfo Files
The taginfo File
The cvswrappers File
The editinfo File
The notify File
The checkoutlist File
Commit Emails
Finding Out More
Advanced CVS
Watches (CVS As Telephone)
How Watches Work
Enabling Watches In The Repository
Using Watches In Development
Ending An Editing Session
Controlling What Actions Are Watched
Finding Out Who Is Watching What
Reminding People To Use Watches
What Watches Look Like In The Repository
Log Messages And Commit Emails
Changing A Log Message After Commit
Getting Rid Of A Working Copy
History -- A Summary Of Repository Activity
Annotations -- A Detailed View Of Project Activity
Annotations And Branches
Using Keyword Expansion
Going Out On A Limb (How To Work With Branches And Survive)
Some Principles For Working With Branches
Merging Repeatedly Into The Trunk
The Dovetail Approach -- Merging In And Out Of The Trunk
The Flying Fish Approach -- A Simpler Way To Do It
Branches And Keyword Expansion -- Natural Enemies
Tracking Third-Party Sources (Vendor Branches)
Exporting For Public Distribution
The Humble Guru
Tips And Troubleshooting
The Usual Suspects
The Working Copy Administrative Area
Repository Permissions
General Troubleshooting Tips
Some Real Life Problems (With Solutions)
CVS says it is waiting for a lock; what does that mean?
CVS claims a file is failing Up-To-Date check; what do I do?
The pserver access method is not working
The pserver access method is STILL not working
My commits seem to happen in pieces instead of atomically
CVS keeps changing file permissions; why does it do that?
CVS on Windows complains it cannot find my .cvspass file; why?
My working copy is on several different branches; help?
When I do export -d I sometimes miss recent commits
I get an error about val-tags; what should I do?
I am having problems with sticky tags; how do I get rid of them?
Checkouts/updates exit with error saying cannot expand modules
I cannot seem to turn off watches
My binary files are messed up
CVS is not doing line-end conversion correctly
I need to remove a subdirectory in my project; how do I do it?
Can I copy .cvspass files or portions of them?
I just committed some files with the wrong log message
I need to move files around without losing revision history
How can I get a list of all tags in a project?
How can I get a list of all projects in a repository?
Some commands fail remotely but not locally; how should I debug?
I do not see my problem covered in this chapter
I think I have discovered a bug in CVS; what do I do?
I have implemented a new feature for CVS; to whom do I send it?
How can I keep up with changes to CVS?
CVS Reference
Commands And Options
Organization And Conventions
General Patterns In CVS Commands
Date Formats
Global Options
add
admin
annotate
checkout
commit
diff
edit
editors
export
gserver
import
init
kserver
log
login
logout
pserver
rdiff
release
remove
rtag
server
status
tag
unedit
update
watch
watchers
Keyword Substitution (RCS Keywords)
Controlling Keyword Expansion
List Of Keywords
Repository Administrative Files
Storage And Editing
Shared Syntax
Shared Variables
User Variables
checkoutlist
commitinfo
config
cvsignore
cvswrappers
editinfo
history
loginfo
modules
notify
passwd
rcsinfo
taginfo
users
val-tags
verifymsg
Run Control Files
`.cvsrc'
`.cvsignore'
`.cvspass'
`.cvswrappers'
Working Copy Files
`CVS/Base/'
(directory)
`CVS/Baserev'
`CVS/Baserev.tmp'
`CVS/Checkin.prog'
`CVS/Entries'
`CVS/Entries.Backup'
`CVS/Entries.Log'
`CVS/Entries.Static'
`CVS/Notify'
`CVS/Notify.tmp'
`CVS/Repository'
`CVS/Root'
`CVS/Tag'
`CVS/Template'
`CVS/Update.prog'
Environment Variables
$COMSPEC
$CVS_CLIENT_LOG
$CVS_CLIENT_PORT
$CVSEDITOR
$CVSIGNORE
$CVS_IGNORE_REMOTE_ROOT
$CVS_PASSFILE
$CVS_RCMD_PORT
$CVSREAD
$CVSROOT
$CVS_RSH
$CVS_SERVER
$CVS_SERVER_SLEEP
$CVSUMASK
$CVSWRAPPERS
$EDITOR
$HOME %HOMEDRIVE% %HOMEPATH%
$PATH
$TEMP $TMP $TMPDIR
$VISUAL
Third-Party Tools
pcl-cvs -- An Emacs Interface To CVS
Installing pcl-cvs
Using pcl-cvs
Error Handling In pcl-cvs
The Future Of pcl-cvs
cvsutils -- General Utilities For Use With CVS
cvsu
cvsdo
cvschroot
cvsrmadm
cvspurge
cvsdiscard
cvsco
cvsdate
cvs2cl -- Generate GNU-Style ChangeLogs
cvslock -- Lock Repositories For Atomicity
Other Packages
Writing Your Own Tools
Index
GNU General Public License
This document was generated on 11 January 2000 using
texi2html
1.56k.