trans-coord-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

trans-coord/manual/cvs cvs.dvi.gz cvs.html cvs....


From: Pavel Kharitonov
Subject: trans-coord/manual/cvs cvs.dvi.gz cvs.html cvs....
Date: Mon, 28 Dec 2015 15:58:35 +0000

CVSROOT:        /web/trans-coord
Module name:    trans-coord
Changes by:     Pavel Kharitonov <ineiev>       15/12/28 15:58:34

Added files:
        manual/cvs     : cvs.dvi.gz cvs.html cvs.html.gz 
                         cvs.html_node.tar.gz cvs.info.tar.gz cvs.pdf 
                         cvs.texi.tar.gz cvs.txt cvs.txt.gz index.html 
        manual/cvs/html_node: A-sample-session.html 
                              Accessing-branches.html 
                              Adding-and-removing.html Adding-files.html 
                              Administrative-files.html 
                              Alias-modules.html Ampersand-modules.html 
                              Assigning-revisions.html Attic.html 
                              Avoiding-substitution.html BUGS.html 
                              Backing-up.html 
                              Binary-files-in-imports.html 
                              Binary-files.html Binary-howto.html 
                              Binary-why.html 
                              Branches-and-revisions.html 
                              Branches-motivation.html 
                              Branching-and-merging.html Builds.html 
                              CVS-commands.html CVS-in-repository.html 
                              CVSROOT-storage.html Choosing-a-model.html 
                              Cleaning-up.html 
                              Committing-your-changes.html 
                              Common-options.html Compatibility.html 
                              Concurrency.html Conflicts-example.html 
                              Connecting-via-fork.html 
                              Connecting-via-rsh.html Connection.html 
                              Creating-a-branch.html 
                              Creating-a-repository.html Credits.html 
                              Defining-the-module.html 
                              Editing-files.html 
                              Environment-variables.html 
                              Error-messages.html 
                              Excluding-directories.html 
                              Exit-status.html File-permissions.html 
                              File-status.html First-import.html 
                              From-files.html 
                              From-other-version-control-systems.html 
                              From-scratch.html 
                              GSSAPI-authenticated.html 
                              Getting-Notified.html 
                              Getting-the-source.html 
                              Global-options.html History-browsing.html 
                              Index.html Informing-others.html 
                              Inside.html 
                              Intro-administrative-files.html 
                              Invoking-CVS.html 
                              Keeping-a-checked-out-copy.html 
                              Kerberos-authenticated.html 
                              Keyword-list.html 
                              Keyword-substitution.html 
                              Keywords-in-imports.html Line-formats.html 
                              Line-group-formats.html Locks.html 
                              Log-keyword.html Magic-branch-numbers.html 
                              Merging-a-branch.html 
                              Merging-adds-and-removals.html 
                              Merging-and-keywords.html 
                              Merging-more-than-once.html 
                              Merging-two-revisions.html 
                              Modifying-tags.html Module-options.html 
                              Module-program-options.html 
                              Moving-a-repository.html 
                              Moving-directories.html Moving-files.html 
                              Multiple-developers.html 
                              Multiple-repositories.html 
                              Multiple-vendor-branches.html 
                              Other-problems.html Outside.html 
                              Overview.html Password-authenticated.html 
                              Password-authentication-client.html 
                              Password-authentication-security.html 
                              Password-authentication-server.html 
                              Read_002donly-access.html 
                              Recursive-behavior.html 
                              Regular-modules.html 
                              Remote-repositories.html 
                              Removing-directories.html 
                              Removing-files.html Rename-by-copying.html 
                              Repository-files.html 
                              Repository-storage.html Repository.html 
                              Reverting-local-changes.html 
                              Revision-management.html 
                              Revision-numbers.html Revisions.html 
                              Server-requirements.html 
                              Server-temporary-directory.html 
                              Setting-a-watch.html 
                              Setting-up-the-files.html 
                              Special-Files.html 
                              Specifying-a-repository.html 
                              Starting-a-new-project.html 
                              Sticky-tags.html Structure.html 
                              Substitution-modes.html 
                              Tagging-add_002fremove.html 
                              Tagging-by-date_002ftag.html 
                              Tagging-the-working-directory.html 
                              Tags.html Tracking-sources.html 
                              Trigger-Script-Security.html 
                              Trigger-Scripts.html Troubleshooting.html 
                              Update-imports.html Updating-a-file.html 
                              Using-keywords.html Variables.html 
                              Versions-revisions-releases.html 
                              Viewing-differences.html 
                              Watch-information.html 
                              Watches-Compatibility.html Watches.html 
                              What-is-CVS-not_003f.html 
                              What-is-CVS_003f.html When-to-commit.html 
                              Windows-permissions.html 
                              Working-directory-storage.html 
                              Wrappers.html _007e_002f_002ecvsrc.html 
                              add-examples.html add-options.html 
                              add.html admin-options.html admin.html 
                              annotate-example.html 
                              annotate-options.html annotate.html 
                              checkout-examples.html 
                              checkout-options.html checkout.html 
                              checkoutlist.html commit-examples.html 
                              commit-files.html commit-options.html 
                              commit.html commitinfo.html config.html 
                              cvsignore.html diff-examples.html 
                              diff-options.html diff.html 
                              editinfo-example.html editinfo.html 
                              export-options.html export.html 
                              history-database.html history-file.html 
                              history-options.html history.html 
                              import-examples.html import-options.html 
                              import-output.html import.html index.html 
                              log-examples.html log-messages.html 
                              log-options.html log.html 
                              loginfo-example.html loginfo.html 
                              modules.html rcsinfo.html 
                              rdiff-examples.html rdiff-options.html 
                              rdiff.html release-examples.html 
                              release-options.html release-output.html 
                              release.html remove-examples.html 
                              remove-options.html remove.html 
                              syntax.html taginfo.html 
                              update-options.html update-output.html 
                              update.html user_002ddefined-logging.html 
                              verifymsg.html 

Log message:
        Add cvs manual RT #1073518.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.dvi.gz?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.html.gz?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.html_node.tar.gz?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.info.tar.gz?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.pdf?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.texi.tar.gz?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.txt?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/cvs.txt.gz?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/index.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/A-sample-session.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Accessing-branches.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Adding-and-removing.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Adding-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Administrative-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Alias-modules.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Ampersand-modules.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Assigning-revisions.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Attic.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Avoiding-substitution.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/BUGS.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Backing-up.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Binary-files-in-imports.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Binary-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Binary-howto.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Binary-why.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Branches-and-revisions.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Branches-motivation.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Branching-and-merging.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Builds.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/CVS-commands.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/CVS-in-repository.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/CVSROOT-storage.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Choosing-a-model.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Cleaning-up.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Committing-your-changes.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Common-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Compatibility.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Concurrency.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Conflicts-example.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Connecting-via-fork.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Connecting-via-rsh.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Connection.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Creating-a-branch.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Creating-a-repository.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Credits.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Defining-the-module.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Editing-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Environment-variables.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Error-messages.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Excluding-directories.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Exit-status.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/File-permissions.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/File-status.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/First-import.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/From-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/From-other-version-control-systems.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/From-scratch.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/GSSAPI-authenticated.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Getting-Notified.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Getting-the-source.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Global-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/History-browsing.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Index.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Informing-others.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Inside.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Intro-administrative-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Invoking-CVS.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Keeping-a-checked-out-copy.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Kerberos-authenticated.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Keyword-list.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Keyword-substitution.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Keywords-in-imports.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Line-formats.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Line-group-formats.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Locks.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Log-keyword.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Magic-branch-numbers.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Merging-a-branch.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Merging-adds-and-removals.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Merging-and-keywords.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Merging-more-than-once.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Merging-two-revisions.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Modifying-tags.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Module-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Module-program-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Moving-a-repository.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Moving-directories.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Moving-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Multiple-developers.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Multiple-repositories.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Multiple-vendor-branches.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Other-problems.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Outside.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Overview.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Password-authenticated.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Password-authentication-client.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Password-authentication-security.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Password-authentication-server.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Read_002donly-access.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Recursive-behavior.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Regular-modules.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Remote-repositories.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Removing-directories.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Removing-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Rename-by-copying.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Repository-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Repository-storage.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Repository.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Reverting-local-changes.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Revision-management.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Revision-numbers.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Revisions.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Server-requirements.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Server-temporary-directory.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Setting-a-watch.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Setting-up-the-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Special-Files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Specifying-a-repository.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Starting-a-new-project.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Sticky-tags.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Structure.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Substitution-modes.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Tagging-add_002fremove.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Tagging-by-date_002ftag.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Tagging-the-working-directory.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Tags.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Tracking-sources.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Trigger-Script-Security.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Trigger-Scripts.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Troubleshooting.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Update-imports.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Updating-a-file.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Using-keywords.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Variables.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Versions-revisions-releases.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Viewing-differences.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Watch-information.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Watches-Compatibility.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Watches.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/What-is-CVS-not_003f.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/What-is-CVS_003f.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/When-to-commit.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Windows-permissions.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Working-directory-storage.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/Wrappers.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/_007e_002f_002ecvsrc.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/add-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/add-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/add.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/admin-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/admin.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/annotate-example.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/annotate-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/annotate.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/checkout-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/checkout-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/checkout.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/checkoutlist.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/commit-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/commit-files.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/commit-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/commit.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/commitinfo.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/config.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/cvsignore.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/diff-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/diff-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/diff.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/editinfo-example.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/editinfo.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/export-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/export.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/history-database.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/history-file.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/history-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/history.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/import-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/import-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/import-output.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/import.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/index.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/log-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/log-messages.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/log-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/log.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/loginfo-example.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/loginfo.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/modules.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/rcsinfo.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/rdiff-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/rdiff-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/rdiff.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/release-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/release-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/release-output.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/release.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/remove-examples.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/remove-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/remove.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/syntax.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/taginfo.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/update-options.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/update-output.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/update.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/user_002ddefined-logging.html?cvsroot=trans-coord&rev=1.1
http://web.cvs.savannah.gnu.org/viewcvs/trans-coord/manual/cvs/html_node/verifymsg.html?cvsroot=trans-coord&rev=1.1

Patches:
Index: cvs.dvi.gz
===================================================================
RCS file: cvs.dvi.gz
diff -N cvs.dvi.gz
Binary files /dev/null and /tmp/cvsxK6bcI differ

Index: cvs.html
===================================================================
RCS file: cvs.html
diff -N cvs.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ cvs.html    28 Dec 2015 15:57:42 -0000      1.1
@@ -0,0 +1,15873 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="#Top" rel="start" title="Top">
+<link href="#Index" rel="index" title="Index">
+<link href="#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="dir.html#Top" rel="up" title="(dir)">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<h1 class="settitle" align="center">CVS&mdash;Concurrent Versions System 
v1.11.23</h1>
+
+
+
+
+
+
+
+
+
+
+
+
+<a name="SEC_Overview"></a>
+<h2 class="shortcontents-heading">Short Table of Contents</h2>
+
+<div class="shortcontents">
+<ul class="no-bullet">
+<li><a name="stoc-Overview-1" href="#toc-Overview-1">1 Overview</a></li>
+<li><a name="stoc-The-Repository" href="#toc-The-Repository">2 The 
Repository</a></li>
+<li><a name="stoc-Starting-a-project-with-CVS" 
href="#toc-Starting-a-project-with-CVS">3 Starting a project with CVS</a></li>
+<li><a name="stoc-Revisions-1" href="#toc-Revisions-1">4 Revisions</a></li>
+<li><a name="stoc-Branching-and-merging-1" 
href="#toc-Branching-and-merging-1">5 Branching and merging</a></li>
+<li><a name="stoc-Recursive-behavior-1" href="#toc-Recursive-behavior-1">6 
Recursive behavior</a></li>
+<li><a 
name="stoc-Adding_002c-removing_002c-and-renaming-files-and-directories" 
href="#toc-Adding_002c-removing_002c-and-renaming-files-and-directories">7 
Adding, removing, and renaming files and directories</a></li>
+<li><a name="stoc-History-browsing-1" href="#toc-History-browsing-1">8 History 
browsing</a></li>
+<li><a name="stoc-Handling-binary-files" href="#toc-Handling-binary-files">9 
Handling binary files</a></li>
+<li><a name="stoc-Multiple-developers-1" href="#toc-Multiple-developers-1">10 
Multiple developers</a></li>
+<li><a name="stoc-Revision-management-1" href="#toc-Revision-management-1">11 
Revision management</a></li>
+<li><a name="stoc-Keyword-substitution-1" 
href="#toc-Keyword-substitution-1">12 Keyword substitution</a></li>
+<li><a name="stoc-Tracking-third_002dparty-sources" 
href="#toc-Tracking-third_002dparty-sources">13 Tracking third-party 
sources</a></li>
+<li><a name="stoc-How-your-build-system-interacts-with-CVS" 
href="#toc-How-your-build-system-interacts-with-CVS">14 How your build system 
interacts with CVS</a></li>
+<li><a name="stoc-Special-Files-1" href="#toc-Special-Files-1">15 Special 
Files</a></li>
+<li><a name="stoc-Guide-to-CVS-commands" 
href="#toc-Guide-to-CVS-commands">Appendix A Guide to CVS commands</a></li>
+<li><a name="stoc-Quick-reference-to-CVS-commands" 
href="#toc-Quick-reference-to-CVS-commands">Appendix B Quick reference to CVS 
commands</a></li>
+<li><a name="stoc-Reference-manual-for-Administrative-files" 
href="#toc-Reference-manual-for-Administrative-files">Appendix C Reference 
manual for Administrative files</a></li>
+<li><a name="stoc-All-environment-variables-which-affect-CVS" 
href="#toc-All-environment-variables-which-affect-CVS">Appendix D All 
environment variables which affect CVS</a></li>
+<li><a name="stoc-Compatibility-between-CVS-Versions" 
href="#toc-Compatibility-between-CVS-Versions">Appendix E Compatibility between 
CVS Versions</a></li>
+<li><a name="stoc-Troubleshooting-1" href="#toc-Troubleshooting-1">Appendix F 
Troubleshooting</a></li>
+<li><a name="stoc-Credits-1" href="#toc-Credits-1">Appendix G Credits</a></li>
+<li><a name="stoc-Dealing-with-bugs-in-CVS-or-this-manual" 
href="#toc-Dealing-with-bugs-in-CVS-or-this-manual">Appendix H Dealing with 
bugs in CVS or this manual</a></li>
+<li><a name="stoc-Index-1" href="#toc-Index-1">Index</a></li>
+</ul>
+</div>
+
+
+<a name="SEC_Contents"></a>
+<h2 class="contents-heading">Table of Contents</h2>
+
+<div class="contents">
+
+<ul class="no-bullet">
+  <li><a name="toc-Overview-1" href="#Overview">1 Overview</a>
+  <ul class="no-bullet">
+    <li><a name="toc-What-is-CVS_003f-1" href="#What-is-CVS_003f">1.1 What is 
CVS?</a></li>
+    <li><a name="toc-What-is-CVS-not_003f-1" href="#What-is-CVS-not_003f">1.2 
What is CVS not?</a></li>
+    <li><a name="toc-A-sample-session-1" href="#A-sample-session">1.3 A sample 
session</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Getting-the-source-1" href="#Getting-the-source">1.3.1 
Getting the source</a></li>
+      <li><a name="toc-Committing-your-changes-1" 
href="#Committing-your-changes">1.3.2 Committing your changes</a></li>
+      <li><a name="toc-Cleaning-up-1" href="#Cleaning-up">1.3.3 Cleaning 
up</a></li>
+      <li><a name="toc-Viewing-differences-1" 
href="#Viewing-differences">1.3.4 Viewing differences</a></li>
+    </ul></li>
+  </ul></li>
+  <li><a name="toc-The-Repository" href="#Repository">2 The Repository</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Telling-CVS-where-your-repository-is" 
href="#Specifying-a-repository">2.1 Telling CVS where your repository 
is</a></li>
+    <li><a name="toc-How-data-is-stored-in-the-repository" 
href="#Repository-storage">2.2 How data is stored in the repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Where-files-are-stored-within-the-repository" 
href="#Repository-files">2.2.1 Where files are stored within the 
repository</a></li>
+      <li><a name="toc-File-permissions-1" href="#File-permissions">2.2.2 File 
permissions</a></li>
+      <li><a name="toc-File-Permission-issues-specific-to-Windows" 
href="#Windows-permissions">2.2.3 File Permission issues specific to 
Windows</a></li>
+      <li><a name="toc-The-attic" href="#Attic">2.2.4 The attic</a></li>
+      <li><a name="toc-The-CVS-directory-in-the-repository" 
href="#CVS-in-repository">2.2.5 The CVS directory in the repository</a></li>
+      <li><a name="toc-CVS-locks-in-the-repository" href="#Locks">2.2.6 CVS 
locks in the repository</a></li>
+      <li><a name="toc-How-files-are-stored-in-the-CVSROOT-directory" 
href="#CVSROOT-storage">2.2.7 How files are stored in the CVSROOT 
directory</a></li>
+    </ul></li>
+    <li><a name="toc-How-data-is-stored-in-the-working-directory" 
href="#Working-directory-storage">2.3 How data is stored in the working 
directory</a></li>
+    <li><a name="toc-The-administrative-files" 
href="#Intro-administrative-files">2.4 The administrative files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Editing-administrative-files" 
href="#Editing-administrative-files">2.4.1 Editing administrative files</a></li>
+    </ul></li>
+    <li><a name="toc-Multiple-repositories-1" 
href="#Multiple-repositories">2.5 Multiple repositories</a></li>
+    <li><a name="toc-Creating-a-repository-1" 
href="#Creating-a-repository">2.6 Creating a repository</a></li>
+    <li><a name="toc-Backing-up-a-repository" href="#Backing-up">2.7 Backing 
up a repository</a></li>
+    <li><a name="toc-Moving-a-repository-1" href="#Moving-a-repository">2.8 
Moving a repository</a></li>
+    <li><a name="toc-Remote-repositories-1" href="#Remote-repositories">2.9 
Remote repositories</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Server-requirements-1" 
href="#Server-requirements">2.9.1 Server requirements</a></li>
+      <li><a name="toc-Connecting-with-rsh-or-ssh" 
href="#Connecting-via-rsh">2.9.2 Connecting with rsh or ssh</a></li>
+      <li><a name="toc-Direct-connection-with-password-authentication" 
href="#Password-authenticated">2.9.3 Direct connection with password 
authentication</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Setting-up-the-server-for-password-authentication" 
href="#Password-authentication-server">2.9.3.1 Setting up the server for 
password authentication</a></li>
+        <li><a name="toc-Using-the-client-with-password-authentication" 
href="#Password-authentication-client">2.9.3.2 Using the client with password 
authentication</a></li>
+        <li><a name="toc-Security-considerations-with-password-authentication" 
href="#Password-authentication-security">2.9.3.3 Security considerations with 
password authentication</a></li>
+      </ul></li>
+      <li><a name="toc-Direct-connection-with-GSSAPI" 
href="#GSSAPI-authenticated">2.9.4 Direct connection with GSSAPI</a></li>
+      <li><a name="toc-Direct-connection-with-Kerberos" 
href="#Kerberos-authenticated">2.9.5 Direct connection with Kerberos</a></li>
+      <li><a name="toc-Connecting-with-fork" href="#Connecting-via-fork">2.9.6 
Connecting with fork</a></li>
+    </ul></li>
+    <li><a name="toc-Read_002donly-repository-access" 
href="#Read_002donly-access">2.10 Read-only repository access</a></li>
+    <li><a name="toc-Temporary-directories-for-the-server" 
href="#Server-temporary-directory">2.11 Temporary directories for the 
server</a></li>
+  </ul></li>
+  <li><a name="toc-Starting-a-project-with-CVS" 
href="#Starting-a-new-project">3 Starting a project with CVS</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Setting-up-the-files-1" href="#Setting-up-the-files">3.1 
Setting up the files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Creating-a-directory-tree-from-a-number-of-files" 
href="#From-files">3.1.1 Creating a directory tree from a number of 
files</a></li>
+      <li><a name="toc-Creating-Files-From-Other-Version-Control-Systems" 
href="#From-other-version-control-systems">3.1.2 Creating Files From Other 
Version Control Systems</a></li>
+      <li><a name="toc-Creating-a-directory-tree-from-scratch" 
href="#From-scratch">3.1.3 Creating a directory tree from scratch</a></li>
+    </ul></li>
+    <li><a name="toc-Defining-the-module-1" href="#Defining-the-module">3.2 
Defining the module</a></li>
+  </ul></li>
+  <li><a name="toc-Revisions-1" href="#Revisions">4 Revisions</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Revision-numbers-1" href="#Revision-numbers">4.1 Revision 
numbers</a></li>
+    <li><a name="toc-Versions_002c-revisions-and-releases" 
href="#Versions-revisions-releases">4.2 Versions, revisions and 
releases</a></li>
+    <li><a name="toc-Assigning-revisions-1" href="#Assigning-revisions">4.3 
Assigning revisions</a></li>
+    <li><a name="toc-Tags_002d_002dSymbolic-revisions" href="#Tags">4.4 
Tags&ndash;Symbolic revisions</a></li>
+    <li><a name="toc-Specifying-what-to-tag-from-the-working-directory" 
href="#Tagging-the-working-directory">4.5 Specifying what to tag from the 
working directory</a></li>
+    <li><a name="toc-Specifying-what-to-tag-by-date-or-revision" 
href="#Tagging-by-date_002ftag">4.6 Specifying what to tag by date or 
revision</a></li>
+    <li><a name="toc-Deleting_002c-moving_002c-and-renaming-tags" 
href="#Modifying-tags">4.7 Deleting, moving, and renaming tags</a></li>
+    <li><a name="toc-Tagging-and-adding-and-removing-files" 
href="#Tagging-add_002fremove">4.8 Tagging and adding and removing 
files</a></li>
+    <li><a name="toc-Sticky-tags-1" href="#Sticky-tags">4.9 Sticky 
tags</a></li>
+  </ul></li>
+  <li><a name="toc-Branching-and-merging-1" href="#Branching-and-merging">5 
Branching and merging</a>
+  <ul class="no-bullet">
+    <li><a name="toc-What-branches-are-good-for" 
href="#Branches-motivation">5.1 What branches are good for</a></li>
+    <li><a name="toc-Creating-a-branch-1" href="#Creating-a-branch">5.2 
Creating a branch</a></li>
+    <li><a name="toc-Accessing-branches-1" href="#Accessing-branches">5.3 
Accessing branches</a></li>
+    <li><a name="toc-Branches-and-revisions-1" 
href="#Branches-and-revisions">5.4 Branches and revisions</a></li>
+    <li><a name="toc-Magic-branch-numbers-1" href="#Magic-branch-numbers">5.5 
Magic branch numbers</a></li>
+    <li><a name="toc-Merging-an-entire-branch" href="#Merging-a-branch">5.6 
Merging an entire branch</a></li>
+    <li><a name="toc-Merging-from-a-branch-several-times" 
href="#Merging-more-than-once">5.7 Merging from a branch several times</a></li>
+    <li><a name="toc-Merging-differences-between-any-two-revisions" 
href="#Merging-two-revisions">5.8 Merging differences between any two 
revisions</a></li>
+    <li><a name="toc-Merging-can-add-or-remove-files" 
href="#Merging-adds-and-removals">5.9 Merging can add or remove files</a></li>
+    <li><a name="toc-Merging-and-keywords-1" href="#Merging-and-keywords">5.10 
Merging and keywords</a></li>
+  </ul></li>
+  <li><a name="toc-Recursive-behavior-1" href="#Recursive-behavior">6 
Recursive behavior</a></li>
+  <li><a 
name="toc-Adding_002c-removing_002c-and-renaming-files-and-directories" 
href="#Adding-and-removing">7 Adding, removing, and renaming files and 
directories</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Adding-files-to-a-directory" href="#Adding-files">7.1 
Adding files to a directory</a></li>
+    <li><a name="toc-Removing-files-1" href="#Removing-files">7.2 Removing 
files</a></li>
+    <li><a name="toc-Removing-directories-1" href="#Removing-directories">7.3 
Removing directories</a></li>
+    <li><a name="toc-Moving-and-renaming-files" href="#Moving-files">7.4 
Moving and renaming files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-The-Normal-way-to-Rename" href="#Outside">7.4.1 The 
Normal way to Rename</a></li>
+      <li><a name="toc-Moving-the-history-file" href="#Inside">7.4.2 Moving 
the history file</a></li>
+      <li><a name="toc-Copying-the-history-file" 
href="#Rename-by-copying">7.4.3 Copying the history file</a></li>
+    </ul></li>
+    <li><a name="toc-Moving-and-renaming-directories" 
href="#Moving-directories">7.5 Moving and renaming directories</a></li>
+  </ul></li>
+  <li><a name="toc-History-browsing-1" href="#History-browsing">8 History 
browsing</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Log-messages" href="#log-messages">8.1 Log 
messages</a></li>
+    <li><a name="toc-The-history-database" href="#history-database">8.2 The 
history database</a></li>
+    <li><a name="toc-User_002ddefined-logging" 
href="#user_002ddefined-logging">8.3 User-defined logging</a></li>
+  </ul></li>
+  <li><a name="toc-Handling-binary-files" href="#Binary-files">9 Handling 
binary files</a>
+  <ul class="no-bullet">
+    <li><a name="toc-The-issues-with-binary-files" href="#Binary-why">9.1 The 
issues with binary files</a></li>
+    <li><a name="toc-How-to-store-binary-files" href="#Binary-howto">9.2 How 
to store binary files</a></li>
+  </ul></li>
+  <li><a name="toc-Multiple-developers-1" href="#Multiple-developers">10 
Multiple developers</a>
+  <ul class="no-bullet">
+    <li><a name="toc-File-status-1" href="#File-status">10.1 File 
status</a></li>
+    <li><a name="toc-Bringing-a-file-up-to-date" href="#Updating-a-file">10.2 
Bringing a file up to date</a></li>
+    <li><a name="toc-Conflicts-example-1" href="#Conflicts-example">10.3 
Conflicts example</a></li>
+    <li><a name="toc-Informing-others-about-commits" 
href="#Informing-others">10.4 Informing others about commits</a></li>
+    <li><a name="toc-Several-developers-simultaneously-attempting-to-run-CVS" 
href="#Concurrency">10.5 Several developers simultaneously attempting to run 
CVS</a></li>
+    <li><a name="toc-Mechanisms-to-track-who-is-editing-files" 
href="#Watches">10.6 Mechanisms to track who is editing files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Telling-CVS-to-watch-certain-files" 
href="#Setting-a-watch">10.6.1 Telling CVS to watch certain files</a></li>
+      <li><a name="toc-Telling-CVS-to-notify-you" 
href="#Getting-Notified">10.6.2 Telling CVS to notify you</a></li>
+      <li><a name="toc-How-to-edit-a-file-which-is-being-watched" 
href="#Editing-files">10.6.3 How to edit a file which is being watched</a></li>
+      <li><a name="toc-Information-about-who-is-watching-and-editing" 
href="#Watch-information">10.6.4 Information about who is watching and 
editing</a></li>
+      <li><a name="toc-Using-watches-with-old-versions-of-CVS" 
href="#Watches-Compatibility">10.6.5 Using watches with old versions of 
CVS</a></li>
+    </ul></li>
+    <li><a name="toc-Choosing-between-reserved-or-unreserved-checkouts" 
href="#Choosing-a-model">10.7 Choosing between reserved or unreserved 
checkouts</a></li>
+  </ul></li>
+  <li><a name="toc-Revision-management-1" href="#Revision-management">11 
Revision management</a>
+  <ul class="no-bullet">
+    <li><a name="toc-When-to-commit_003f" href="#When-to-commit">11.1 When to 
commit?</a></li>
+  </ul></li>
+  <li><a name="toc-Keyword-substitution-1" href="#Keyword-substitution">12 
Keyword substitution</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Keyword-List" href="#Keyword-list">12.1 Keyword 
List</a></li>
+    <li><a name="toc-Using-keywords-1" href="#Using-keywords">12.2 Using 
keywords</a></li>
+    <li><a name="toc-Avoiding-substitution-1" 
href="#Avoiding-substitution">12.3 Avoiding substitution</a></li>
+    <li><a name="toc-Substitution-modes-1" href="#Substitution-modes">12.4 
Substitution modes</a></li>
+    <li><a name="toc-Problems-with-the-_0024Log_0024-keyword_002e" 
href="#Log-keyword">12.5 Problems with the $<i></i>Log$ keyword.</a></li>
+  </ul></li>
+  <li><a name="toc-Tracking-third_002dparty-sources" 
href="#Tracking-sources">13 Tracking third-party sources</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Importing-for-the-first-time" href="#First-import">13.1 
Importing for the first time</a></li>
+    <li><a name="toc-Updating-with-the-import-command" 
href="#Update-imports">13.2 Updating with the import command</a></li>
+    <li><a name="toc-Reverting-to-the-latest-vendor-release" 
href="#Reverting-local-changes">13.3 Reverting to the latest vendor 
release</a></li>
+    <li><a name="toc-How-to-handle-binary-files-with-cvs-import" 
href="#Binary-files-in-imports">13.4 How to handle binary files with cvs 
import</a></li>
+    <li><a name="toc-How-to-handle-keyword-substitution-with-cvs-import" 
href="#Keywords-in-imports">13.5 How to handle keyword substitution with cvs 
import</a></li>
+    <li><a name="toc-Multiple-vendor-branches-1" 
href="#Multiple-vendor-branches">13.6 Multiple vendor branches</a></li>
+  </ul></li>
+  <li><a name="toc-How-your-build-system-interacts-with-CVS" href="#Builds">14 
How your build system interacts with CVS</a></li>
+  <li><a name="toc-Special-Files-1" href="#Special-Files">15 Special 
Files</a></li>
+  <li><a name="toc-Guide-to-CVS-commands" href="#CVS-commands">Appendix A 
Guide to CVS commands</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Overall-structure-of-CVS-commands" href="#Structure">A.1 
Overall structure of CVS commands</a></li>
+    <li><a name="toc-CVS_0027s-exit-status" href="#Exit-status">A.2 
CVS&rsquo;s exit status</a></li>
+    <li><a name="toc-Default-options-and-the-_007e_002f_002ecvsrc-file" 
href="#g_t_007e_002f_002ecvsrc">A.3 Default options and the ~/.cvsrc 
file</a></li>
+    <li><a name="toc-Global-options-1" href="#Global-options">A.4 Global 
options</a></li>
+    <li><a name="toc-Common-command-options" href="#Common-options">A.5 Common 
command options</a></li>
+    <li><a 
name="toc-add_002d_002d_002dAdd-files-and-directories-to-the-repository" 
href="#add">A.6 add&mdash;Add files and directories to the repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-add-options-1" href="#add-options">A.6.1 add 
options</a></li>
+      <li><a name="toc-add-examples-1" href="#add-examples">A.6.2 add 
examples</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Adding-a-directory" 
href="#Adding-a-directory">A.6.2.1 Adding a directory</a></li>
+        <li><a name="toc-Adding-a-file" href="#Adding-a-file">A.6.2.2 Adding a 
file</a></li>
+        <li><a name="toc-Undoing-a-remove-command" 
href="#Undoing-a-remove-command">A.6.2.3 Undoing a <code>remove</code> 
command</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a name="toc-admin_002d_002d_002dAdministration" href="#admin">A.7 
admin&mdash;Administration</a>
+    <ul class="no-bullet">
+      <li><a name="toc-admin-options-1" href="#admin-options">A.7.1 admin 
options</a></li>
+    </ul></li>
+    <li><a 
name="toc-annotate_002d_002d_002dWhat-revision-modified-each-line-of-a-file_003f"
 href="#annotate">A.8 annotate&mdash;What revision modified each line of a 
file?</a>
+    <ul class="no-bullet">
+      <li><a name="toc-annotate-options-1" href="#annotate-options">A.8.1 
annotate options</a></li>
+      <li><a name="toc-annotate-example-1" href="#annotate-example">A.8.2 
annotate example</a></li>
+    </ul></li>
+    <li><a name="toc-checkout_002d_002d_002dCheck-out-sources-for-editing" 
href="#checkout">A.9 checkout&mdash;Check out sources for editing</a>
+    <ul class="no-bullet">
+      <li><a name="toc-checkout-options-1" href="#checkout-options">A.9.1 
checkout options</a></li>
+      <li><a name="toc-checkout-examples-1" href="#checkout-examples">A.9.2 
checkout examples</a></li>
+    </ul></li>
+    <li><a name="toc-commit_002d_002d_002dCheck-files-into-the-repository" 
href="#commit">A.10 commit&mdash;Check files into the repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-commit-options-1" href="#commit-options">A.10.1 commit 
options</a></li>
+      <li><a name="toc-commit-examples-1" href="#commit-examples">A.10.2 
commit examples</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Committing-to-a-branch" 
href="#Committing-to-a-branch">A.10.2.1 Committing to a branch</a></li>
+        <li><a name="toc-Creating-the-branch-after-editing" 
href="#Creating-the-branch-after-editing">A.10.2.2 Creating the branch after 
editing</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a name="toc-diff_002d_002d_002dShow-differences-between-revisions" 
href="#diff">A.11 diff&mdash;Show differences between revisions</a>
+    <ul class="no-bullet">
+      <li><a name="toc-diff-options-1" href="#diff-options">A.11.1 diff 
options</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Line-group-formats-1" 
href="#Line-group-formats">A.11.1.1 Line group formats</a></li>
+        <li><a name="toc-Line-formats-1" href="#Line-formats">A.11.1.2 Line 
formats</a></li>
+      </ul></li>
+      <li><a name="toc-diff-examples-1" href="#diff-examples">A.11.2 diff 
examples</a></li>
+    </ul></li>
+    <li><a 
name="toc-export_002d_002d_002dExport-sources-from-CVS_002c-similar-to-checkout"
 href="#export">A.12 export&mdash;Export sources from CVS, similar to 
checkout</a>
+    <ul class="no-bullet">
+      <li><a name="toc-export-options-1" href="#export-options">A.12.1 export 
options</a></li>
+    </ul></li>
+    <li><a name="toc-history_002d_002d_002dShow-status-of-files-and-users" 
href="#history">A.13 history&mdash;Show status of files and users</a>
+    <ul class="no-bullet">
+      <li><a name="toc-history-options-1" href="#history-options">A.13.1 
history options</a></li>
+    </ul></li>
+    <li><a 
name="toc-import_002d_002d_002dImport-sources-into-CVS_002c-using-vendor-branches"
 href="#import">A.14 import&mdash;Import sources into CVS, using vendor 
branches</a>
+    <ul class="no-bullet">
+      <li><a name="toc-import-options-1" href="#import-options">A.14.1 import 
options</a></li>
+      <li><a name="toc-import-output-1" href="#import-output">A.14.2 import 
output</a></li>
+      <li><a name="toc-import-examples-1" href="#import-examples">A.14.3 
import examples</a></li>
+    </ul></li>
+    <li><a name="toc-log_002d_002d_002dPrint-out-log-information-for-files" 
href="#log">A.15 log&mdash;Print out log information for files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-log-options-1" href="#log-options">A.15.1 log 
options</a></li>
+      <li><a name="toc-log-examples-1" href="#log-examples">A.15.2 log 
examples</a></li>
+    </ul></li>
+    <li><a 
name="toc-rdiff_002d_002d_002d_0027patch_0027-format-diffs-between-releases" 
href="#rdiff">A.16 rdiff&mdash;&rsquo;patch&rsquo; format diffs between 
releases</a>
+    <ul class="no-bullet">
+      <li><a name="toc-rdiff-options-1" href="#rdiff-options">A.16.1 rdiff 
options</a></li>
+      <li><a name="toc-rdiff-examples-1" href="#rdiff-examples">A.16.2 rdiff 
examples</a></li>
+    </ul></li>
+    <li><a 
name="toc-release_002d_002d_002dIndicate-that-a-Module-is-no-longer-in-use" 
href="#release">A.17 release&mdash;Indicate that a Module is no longer in 
use</a>
+    <ul class="no-bullet">
+      <li><a name="toc-release-options-1" href="#release-options">A.17.1 
release options</a></li>
+      <li><a name="toc-release-output-1" href="#release-output">A.17.2 release 
output</a></li>
+      <li><a name="toc-release-examples-1" href="#release-examples">A.17.3 
release examples</a></li>
+    </ul></li>
+    <li><a name="toc-remove_002d_002d_002dRemove-files-from-active-use" 
href="#remove">A.18 remove&mdash;Remove files from active use</a>
+    <ul class="no-bullet">
+      <li><a name="toc-remove-options-1" href="#remove-options">A.18.1 remove 
options</a></li>
+      <li><a name="toc-remove-examples-1" href="#remove-examples">A.18.2 
remove examples</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Removing-a-file" href="#Removing-a-file">A.18.2.1 
Removing a file</a></li>
+        <li><a name="toc-Removing-entire-directories" 
href="#Removing-entire-directories">A.18.2.2 Removing entire 
directories</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a 
name="toc-update_002d_002d_002dBring-work-tree-in-sync-with-repository" 
href="#update">A.19 update&mdash;Bring work tree in sync with repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-update-options-1" href="#update-options">A.19.1 update 
options</a></li>
+      <li><a name="toc-update-output-1" href="#update-output">A.19.2 update 
output</a></li>
+    </ul></li>
+  </ul></li>
+  <li><a name="toc-Quick-reference-to-CVS-commands" 
href="#Invoking-CVS">Appendix B Quick reference to CVS commands</a></li>
+  <li><a name="toc-Reference-manual-for-Administrative-files" 
href="#Administrative-files">Appendix C Reference manual for Administrative 
files</a>
+  <ul class="no-bullet">
+    <li><a name="toc-The-modules-file" href="#modules">C.1 The modules file</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Alias-modules-1" href="#Alias-modules">C.1.1 Alias 
modules</a></li>
+      <li><a name="toc-Regular-modules-1" href="#Regular-modules">C.1.2 
Regular modules</a></li>
+      <li><a name="toc-Ampersand-modules-1" href="#Ampersand-modules">C.1.3 
Ampersand modules</a></li>
+      <li><a name="toc-Excluding-directories-1" 
href="#Excluding-directories">C.1.4 Excluding directories</a></li>
+      <li><a name="toc-Module-options-1" href="#Module-options">C.1.5 Module 
options</a></li>
+      <li><a 
name="toc-How-the-modules-file-_0060_0060program-options_0027_0027-programs-are-run"
 href="#Module-program-options">C.1.6 How the modules file &ldquo;program 
options&rdquo; programs are run</a></li>
+    </ul></li>
+    <li><a name="toc-The-cvswrappers-file" href="#Wrappers">C.2 The 
cvswrappers file</a></li>
+    <li><a name="toc-The-Trigger-Scripts" href="#Trigger-Scripts">C.3 The 
Trigger Scripts</a>
+    <ul class="no-bullet">
+      <li><a name="toc-The-common-syntax" href="#syntax">C.3.1 The common 
syntax</a></li>
+      <li><a name="toc-Security-and-the-Trigger-Scripts" 
href="#Trigger-Script-Security">C.3.2 Security and the Trigger Scripts</a></li>
+    </ul></li>
+    <li><a name="toc-The-commit-support-files" href="#commit-files">C.4 The 
commit support files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Commitinfo" href="#commitinfo">C.4.1 Commitinfo</a></li>
+      <li><a name="toc-Verifying-log-messages" href="#verifymsg">C.4.2 
Verifying log messages</a></li>
+      <li><a name="toc-Editinfo" href="#editinfo">C.4.3 Editinfo</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Editinfo-example" href="#editinfo-example">C.4.3.1 
Editinfo example</a></li>
+      </ul></li>
+      <li><a name="toc-Loginfo" href="#loginfo">C.4.4 Loginfo</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Loginfo-example" href="#loginfo-example">C.4.4.1 
Loginfo example</a></li>
+        <li><a name="toc-Keeping-a-checked-out-copy-1" 
href="#Keeping-a-checked-out-copy">C.4.4.2 Keeping a checked out copy</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a name="toc-Rcsinfo" href="#rcsinfo">C.5 Rcsinfo</a></li>
+    <li><a name="toc-Taginfo" href="#taginfo">C.6 Taginfo</a></li>
+    <li><a name="toc-Ignoring-files-via-cvsignore" href="#cvsignore">C.7 
Ignoring files via cvsignore</a></li>
+    <li><a name="toc-The-checkoutlist-file" href="#checkoutlist">C.8 The 
checkoutlist file</a></li>
+    <li><a name="toc-The-history-file" href="#history-file">C.9 The history 
file</a></li>
+    <li><a name="toc-Expansions-in-administrative-files" 
href="#Variables">C.10 Expansions in administrative files</a></li>
+    <li><a name="toc-The-CVSROOT_002fconfig-configuration-file" 
href="#config">C.11 The CVSROOT/config configuration file</a></li>
+  </ul></li>
+  <li><a name="toc-All-environment-variables-which-affect-CVS" 
href="#Environment-variables">Appendix D All environment variables which affect 
CVS</a></li>
+  <li><a name="toc-Compatibility-between-CVS-Versions" 
href="#Compatibility">Appendix E Compatibility between CVS Versions</a></li>
+  <li><a name="toc-Troubleshooting-1" href="#Troubleshooting">Appendix F 
Troubleshooting</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Partial-list-of-error-messages" 
href="#Error-messages">F.1 Partial list of error messages</a></li>
+    <li><a name="toc-Trouble-making-a-connection-to-a-CVS-server" 
href="#Connection">F.2 Trouble making a connection to a CVS server</a></li>
+    <li><a name="toc-Other-common-problems" href="#Other-problems">F.3 Other 
common problems</a></li>
+  </ul></li>
+  <li><a name="toc-Credits-1" href="#Credits">Appendix G Credits</a></li>
+  <li><a name="toc-Dealing-with-bugs-in-CVS-or-this-manual" 
href="#BUGS">Appendix H Dealing with bugs in CVS or this manual</a></li>
+  <li><a name="toc-Index-1" href="#Index">Index</a></li>
+</ul>
+</div>
+
+
+
+<a name="Top"></a>
+<div class="header">
+<p>
+Next: <a href="#Overview" accesskey="n" rel="next">Overview</a>, Up: <a 
href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="SEC_Top"></a>
+
+<p>This info manual describes how to use and administer
+<small>CVS</small> version 1.11.23.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Overview" 
accesskey="1">Overview</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">An introduction to CVS
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Repository" 
accesskey="2">Repository</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Where all your sources are stored
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Starting-a-new-project" 
accesskey="3">Starting a new project</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Starting a project with CVS
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Revisions" 
accesskey="4">Revisions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Numeric and symbolic names for revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Branching-and-merging" 
accesskey="5">Branching and merging</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Diverging/rejoining branches of development
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Recursive-behavior" 
accesskey="6">Recursive behavior</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">CVS descends directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Adding-and-removing" 
accesskey="7">Adding and removing</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Adding/removing/renaming files/directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#History-browsing" 
accesskey="8">History browsing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Viewing the history of files in various ways
+</td></tr>
+<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
+CVS and the Real World.
+&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#Binary-files" accesskey="9">Binary 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">CVS can 
handle binary files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Multiple-developers">Multiple 
developers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How CVS 
helps a group of developers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Revision-management">Revision 
management</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Policy 
questions for revision management
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Keyword-substitution">Keyword 
substitution</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">CVS 
can include the revision inside the file
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Tracking-sources">Tracking 
sources</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Tracking 
third-party sources
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Builds">Builds</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Issues related to CVS and builds
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Special-Files">Special 
Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Devices, 
links and other non-regular files
+</td></tr>
+<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
+References.
+&mdash;&mdash;&mdash;&ndash;
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="#CVS-commands">CVS commands</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">CVS commands share some things
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Invoking-CVS">Invoking 
CVS</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Quick reference 
to CVS commands
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Administrative-files">Administrative 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Reference 
manual for the Administrative files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Environment-variables">Environment 
variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">All 
environment variables which affect CVS
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Compatibility">Compatibility</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Upgrading CVS versions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Troubleshooting">Troubleshooting</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Some tips when nothing works
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Credits">Credits</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Some of the contributors to this manual
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#BUGS">BUGS</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Dealing with bugs in CVS or this manual
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Index">Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Index
+</td></tr>
+</table>
+
+<hr>
+<a name="Overview"></a>
+<div class="header">
+<p>
+Next: <a href="#Repository" accesskey="n" rel="next">Repository</a>, Previous: 
<a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Overview-1"></a>
+<h2 class="chapter">1 Overview</h2>
+<a name="index-Overview"></a>
+
+<p>This chapter is for people who have never used
+<small>CVS</small>, and perhaps have never used version control
+software before.
+</p>
+<p>If you are already familiar with <small>CVS</small> and are just
+trying to learn a particular feature or remember a
+certain command, you can probably skip everything here.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#What-is-CVS_003f" 
accesskey="1">What is CVS?</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">What you can do with <small>CVS</small>
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#What-is-CVS-not_003f" 
accesskey="2">What is CVS not?</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Problems <small>CVS</small> doesn&rsquo;t try to solve
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#A-sample-session" 
accesskey="3">A sample session</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">A tour of basic <small>CVS</small> usage
+</td></tr>
+</table>
+
+<hr>
+<a name="What-is-CVS_003f"></a>
+<div class="header">
+<p>
+Next: <a href="#What-is-CVS-not_003f" accesskey="n" rel="next">What is CVS 
not?</a>, Up: <a href="#Overview" accesskey="u" rel="up">Overview</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="What-is-CVS_003f-1"></a>
+<h3 class="section">1.1 What is CVS?</h3>
+<a name="index-What-is-CVS_003f"></a>
+<a name="index-Introduction-to-CVS"></a>
+<a name="index-CVS_002c-introduction-to"></a>
+
+<p><small>CVS</small> is a version control system.  Using it, you can
+record the history of your source files.
+</p>
+
+<p>For example, bugs sometimes creep in when
+software is modified, and you might not detect the bug
+until a long time after you make the modification.
+With <small>CVS</small>, you can easily retrieve old versions to see
+exactly which change caused the bug.  This can
+sometimes be a big help.
+</p>
+<p>You could of course save every version of every file
+you have ever created.  This would
+however waste an enormous amount of disk space.  <small>CVS</small>
+stores all the versions of a file in a single file in a
+clever way that only stores the differences between
+versions.
+</p>
+<p><small>CVS</small> also helps you if you are part of a group of people 
working
+on the same project.  It is all too easy to overwrite
+each others&rsquo; changes unless you are extremely careful.
+Some editors, like <small>GNU</small> Emacs, try to make sure that
+two people never modify the same file at the
+same time.  Unfortunately, if someone is using another
+editor, that safeguard will not work.  <small>CVS</small> solves this problem
+by insulating the different developers from each other.  Every
+developer works in his own directory, and <small>CVS</small> merges
+the work when each developer is done.
+</p>
+<a name="index-History-of-CVS"></a>
+<a name="index-CVS_002c-history-of"></a>
+<a name="index-Credits-_0028CVS-program_0029"></a>
+<a name="index-Contributors-_0028CVS-program_0029"></a>
+<p><small>CVS</small> started out as a bunch of shell scripts written by
+Dick Grune, posted to the newsgroup
+<code>comp.sources.unix</code> in the volume 6
+release of July, 1986.  While no actual code from
+these shell scripts is present in the current version
+of <small>CVS</small> much of the <small>CVS</small> conflict resolution 
algorithms
+come from them.
+</p>
+<p>In April, 1989, Brian Berliner designed and coded <small>CVS</small>.
+Jeff Polk later helped Brian with the design of the <small>CVS</small>
+module and vendor branch support.
+</p>
+<a name="index-Source_002c-getting-CVS-source"></a>
+<p>You can get <small>CVS</small> in a variety of ways, including
+free download from the Internet.  For more information
+on downloading <small>CVS</small> and other <small>CVS</small> topics, see:
+</p>
+<div class="example">
+<pre class="example"><a 
href="http://cvs.nongnu.org/";>http://cvs.nongnu.org/</a>
+</pre></div>
+
+<a name="index-Mailing-list"></a>
+<a name="index-List_002c-mailing-list"></a>
+<a name="index-Newsgroups"></a>
+<p>There is a mailing list, known as <a 
href="mailto:address@hidden";>address@hidden</a>,
+devoted to <small>CVS</small>.  To subscribe or
+unsubscribe
+write to
+<a href="mailto:address@hidden";>address@hidden</a>.
+If you prefer a Usenet group, there is a one-way mirror (posts to the email
+list are usually sent to the news group, but not vice versa) of
+<a href="mailto:address@hidden";>address@hidden</a> at <a 
href="news:gnu.cvs.help";>news:gnu.cvs.help</a>.  The right
+Usenet group for posts is <a 
href="news:comp.software.config-mgmt";>news:comp.software.config-mgmt</a> which 
is for
+<small>CVS</small> discussions (along with other configuration
+management systems).  In the future, it might be
+possible to create a
+<code>comp.software.config-mgmt.cvs</code>, but probably only
+if there is sufficient <small>CVS</small> traffic on
+<a href="news:comp.software.config-mgmt";>news:comp.software.config-mgmt</a>.
+</p>
+<p>You can also subscribe to the <a 
href="mailto:address@hidden";>address@hidden</a> mailing list,
+described in more detail in <a href="#BUGS">BUGS</a>.  To subscribe
+send mail to <a href="mailto:address@hidden";>address@hidden</a>.  There is a 
two-way
+Usenet mirror (posts to the Usenet group are usually sent to the email list and
+vice versa) of <a href="mailto:address@hidden";>address@hidden</a> named <a 
href="news:gnu.cvs.bug";>news:gnu.cvs.bug</a>.
+</p>
+<hr>
+<a name="What-is-CVS-not_003f"></a>
+<div class="header">
+<p>
+Next: <a href="#A-sample-session" accesskey="n" rel="next">A sample 
session</a>, Previous: <a href="#What-is-CVS_003f" accesskey="p" 
rel="prev">What is CVS?</a>, Up: <a href="#Overview" accesskey="u" 
rel="up">Overview</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="What-is-CVS-not_003f-1"></a>
+<h3 class="section">1.2 What is CVS not?</h3>
+<a name="index-What-is-CVS-not_003f"></a>
+
+<p><small>CVS</small> can do a lot of things for you, but it does
+not try to be everything for everyone.
+</p>
+<dl compact="compact">
+<dt><small>CVS</small> is not a build system.</dt>
+<dd>
+<p>Though the structure of your repository and modules
+file interact with your build system
+(e.g. <samp>Makefile</samp>s), they are essentially
+independent.
+</p>
+<p><small>CVS</small> does not dictate how you build anything.  It
+merely stores files for retrieval in a tree structure
+you devise.
+</p>
+<p><small>CVS</small> does not dictate how to use disk space in the
+checked out working directories.  If you write your
+<samp>Makefile</samp>s or scripts in every directory so they
+have to know the relative positions of everything else,
+you wind up requiring the entire repository to be
+checked out.
+</p>
+<p>If you modularize your work, and construct a build
+system that will share files (via links, mounts,
+<code>VPATH</code> in <samp>Makefile</samp>s, etc.), you can
+arrange your disk usage however you like.
+</p>
+<p>But you have to remember that <em>any</em> such system is
+a lot of work to construct and maintain.  <small>CVS</small> does
+not address the issues involved.
+</p>
+<p>Of course, you should place the tools created to
+support such a build system (scripts, <samp>Makefile</samp>s,
+etc.) under <small>CVS</small>.
+</p>
+<p>Figuring out what files need to be rebuilt when
+something changes is, again, something to be handled
+outside the scope of <small>CVS</small>.  One traditional
+approach is to use <code>make</code> for building, and use
+some automated tool for generating the dependencies which
+<code>make</code> uses.
+</p>
+<p>See <a href="#Builds">Builds</a>, for more information on doing builds
+in conjunction with <small>CVS</small>.
+</p>
+</dd>
+<dt><small>CVS</small> is not a substitute for management.</dt>
+<dd>
+<p>Your managers and project leaders are expected to talk
+to you frequently enough to make certain you are aware
+of schedules, merge points, branch names and release
+dates.  If they don&rsquo;t, <small>CVS</small> can&rsquo;t help.
+</p>
+<p><small>CVS</small> is an instrument for making sources dance to
+your tune.  But you are the piper and the composer.  No
+instrument plays itself or writes its own music.
+</p>
+</dd>
+<dt><small>CVS</small> is not a substitute for developer communication.</dt>
+<dd>
+<p>When faced with conflicts within a single file, most
+developers manage to resolve them without too much
+effort.  But a more general definition of &ldquo;conflict&rdquo;
+includes problems too difficult to solve without
+communication between developers.
+</p>
+<p><small>CVS</small> cannot determine when simultaneous changes
+within a single file, or across a whole collection of
+files, will logically conflict with one another.  Its
+concept of a <em>conflict</em> is purely textual, arising
+when two changes to the same base file are near enough
+to spook the merge (i.e., <code>diff3</code>) command.
+</p>
+<p><small>CVS</small> does not claim to help at all in figuring out
+non-textual or distributed conflicts in program logic.
+</p>
+<p>For example: Say you change the arguments to function
+<code>X</code> defined in file <samp>A</samp>.  At the same time,
+someone edits file <samp>B</samp>, adding new calls to
+function <code>X</code> using the old arguments.  You are
+outside the realm of <small>CVS</small>&rsquo;s competence.
+</p>
+<p>Acquire the habit of reading specs and talking to your
+peers.
+</p>
+
+</dd>
+<dt><small>CVS</small> does not have change control</dt>
+<dd>
+<p>Change control refers to a number of things.  First of
+all it can mean <em>bug-tracking</em>, that is being able
+to keep a database of reported bugs and the status of
+each one (Is it fixed?  In what release?  Has the bug
+submitter agreed that it is fixed?).  For interfacing
+<small>CVS</small> to an external bug-tracking system, see the
+<samp>rcsinfo</samp> and <samp>verifymsg</samp> files
+(see <a href="#Administrative-files">Administrative files</a>).
+</p>
+<p>Another aspect of change control is keeping track of
+the fact that changes to several files were in fact
+changed together as one logical change.  If you check
+in several files in a single <code>cvs commit</code>
+operation, <small>CVS</small> then forgets that those files were
+checked in together, and the fact that they have the
+same log message is the only thing tying them
+together.  Keeping a <small>GNU</small> style <samp>ChangeLog</samp>
+can help somewhat.
+</p>
+<p>Another aspect of change control, in some systems, is
+the ability to keep track of the status of each
+change.  Some changes have been written by a developer,
+others have been reviewed by a second developer, and so
+on.  Generally, the way to do this with <small>CVS</small> is to
+generate a diff (using <code>cvs diff</code> or <code>diff</code>)
+and email it to someone who can then apply it using the
+<code>patch</code> utility.  This is very flexible, but
+depends on mechanisms outside <small>CVS</small> to make sure
+nothing falls through the cracks.
+</p>
+</dd>
+<dt><small>CVS</small> is not an automated testing program</dt>
+<dd>
+<p>It should be possible to enforce mandatory use of a
+test suite using the <code>commitinfo</code> file.  I haven&rsquo;t
+heard a lot about projects trying to do that or whether
+there are subtle gotchas, however.
+</p>
+</dd>
+<dt><small>CVS</small> does not have a built-in process model</dt>
+<dd>
+<p>Some systems provide ways to ensure that changes or
+releases go through various steps, with various
+approvals as needed.  Generally, one can accomplish
+this with <small>CVS</small> but it might be a little more work.
+In some cases you&rsquo;ll want to use the <samp>commitinfo</samp>,
+<samp>loginfo</samp>, <samp>rcsinfo</samp>, or <samp>verifymsg</samp>
+files, to require that certain steps be performed
+before cvs will allow a checkin.  Also consider whether
+features such as branches and tags can be used to
+perform tasks such as doing work in a development tree
+and then merging certain changes over to a stable tree
+only once they have been proven.
+</p></dd>
+</dl>
+
+<hr>
+<a name="A-sample-session"></a>
+<div class="header">
+<p>
+Previous: <a href="#What-is-CVS-not_003f" accesskey="p" rel="prev">What is CVS 
not?</a>, Up: <a href="#Overview" accesskey="u" rel="up">Overview</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="A-sample-session-1"></a>
+<h3 class="section">1.3 A sample session</h3>
+<a name="index-Example-of-a-work_002dsession"></a>
+<a name="index-Getting-started"></a>
+<a name="index-Work_002dsession_002c-example-of"></a>
+<a name="index-tc_002c-Trivial-Compiler-_0028example_0029"></a>
+<a name="index-Trivial-Compiler-_0028example_0029"></a>
+
+
+<p>As a way of introducing <small>CVS</small>, we&rsquo;ll go through a
+typical work-session using <small>CVS</small>.  The first thing
+to understand is that <small>CVS</small> stores all files in a
+centralized <em>repository</em> (see <a href="#Repository">Repository</a>); 
this
+section assumes that a repository is set up.
+</p>
+<p>Suppose you are working on a simple compiler.  The source
+consists of a handful of C files and a <samp>Makefile</samp>.
+The compiler is called &lsquo;<samp>tc</samp>&rsquo; (Trivial Compiler),
+and the repository is set up so that there is a module
+called &lsquo;<samp>tc</samp>&rsquo;.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Getting-the-source" 
accesskey="1">Getting the source</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creating a workspace
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Committing-your-changes" 
accesskey="2">Committing your changes</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Making your work available to others
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Cleaning-up" 
accesskey="3">Cleaning up</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Cleaning up
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Viewing-differences" 
accesskey="4">Viewing differences</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Viewing differences
+</td></tr>
+</table>
+
+<hr>
+<a name="Getting-the-source"></a>
+<div class="header">
+<p>
+Next: <a href="#Committing-your-changes" accesskey="n" rel="next">Committing 
your changes</a>, Up: <a href="#A-sample-session" accesskey="u" rel="up">A 
sample session</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Getting-the-source-1"></a>
+<h4 class="subsection">1.3.1 Getting the source</h4>
+<a name="index-Getting-the-source"></a>
+<a name="index-Checking-out-source"></a>
+<a name="index-Fetching-source"></a>
+<a name="index-Source_002c-getting-from-CVS"></a>
+<a name="index-Checkout_002c-example"></a>
+
+<p>The first thing you must do is to get your own working copy of the
+source for &lsquo;<samp>tc</samp>&rsquo;.  For this, you use the 
<code>checkout</code> command:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout tc
+</pre></div>
+
+<p>This will create a new directory called <samp>tc</samp> and populate it with
+the source files.
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ ls
+CVS         Makefile    backend.c   driver.c    frontend.c  parser.c
+</pre></div>
+
+<p>The <samp>CVS</samp> directory is used internally by
+<small>CVS</small>.  Normally, you should not modify or remove
+any of the files in it.
+</p>
+<p>You start your favorite editor, hack away at <samp>backend.c</samp>, and a 
couple
+of hours later you have added an optimization pass to the compiler.
+A note to <small>RCS</small> and <small>SCCS</small> users: There is no need 
to lock the files that
+you want to edit.  See <a href="#Multiple-developers">Multiple developers</a>, 
for an explanation.
+</p>
+<hr>
+<a name="Committing-your-changes"></a>
+<div class="header">
+<p>
+Next: <a href="#Cleaning-up" accesskey="n" rel="next">Cleaning up</a>, 
Previous: <a href="#Getting-the-source" accesskey="p" rel="prev">Getting the 
source</a>, Up: <a href="#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Committing-your-changes-1"></a>
+<h4 class="subsection">1.3.2 Committing your changes</h4>
+<a name="index-Committing-changes-to-files"></a>
+<a name="index-Log-message-entry"></a>
+
+<p>When you have checked that the compiler is still compilable you decide
+to make a new version of <samp>backend.c</samp>.  This will
+store your new <samp>backend.c</samp> in the repository and
+make it available to anyone else who is using that same
+repository.
+</p>
+<div class="example">
+<pre class="example">$ cvs commit backend.c
+</pre></div>
+
+<p><small>CVS</small> starts an editor, to allow you to enter a log
+message.  You type in &ldquo;Added an optimization pass.&rdquo;,
+save the temporary file, and exit the editor.
+</p>
+<a name="index-CVSEDITOR_002c-environment-variable"></a>
+<a name="index-EDITOR_002c-environment-variable"></a>
+<p>The environment variable <code>$CVSEDITOR</code> determines
+which editor is started.  If <code>$CVSEDITOR</code> is not
+set, then if the environment variable <code>$EDITOR</code> is
+set, it will be used. If both <code>$CVSEDITOR</code> and
+<code>$EDITOR</code> are not set then there is a default
+which will vary with your operating system, for example
+<code>vi</code> for unix or <code>notepad</code> for Windows
+NT/95.
+</p>
+<a name="index-VISUAL_002c-environment-variable"></a>
+<p>In addition, <small>CVS</small> checks the <code>$VISUAL</code> environment
+variable.  Opinions vary on whether this behavior is desirable and
+whether future releases of <small>CVS</small> should check 
<code>$VISUAL</code> or
+ignore it.  You will be OK either way if you make sure that
+<code>$VISUAL</code> is either unset or set to the same thing as
+<code>$EDITOR</code>.
+</p>
+<p>When <small>CVS</small> starts the editor, it includes a list of
+files which are modified.  For the <small>CVS</small> client,
+this list is based on comparing the modification time
+of the file against the modification time that the file
+had when it was last gotten or updated.  Therefore, if
+a file&rsquo;s modification time has changed but its contents
+have not, it will show up as modified.  The simplest
+way to handle this is simply not to worry about it&mdash;if
+you proceed with the commit <small>CVS</small> will detect that
+the contents are not modified and treat it as an
+unmodified file.  The next <code>update</code> will clue
+<small>CVS</small> in to the fact that the file is unmodified,
+and it will reset its stored timestamp so that the file
+will not show up in future editor sessions.
+</p>
+<p>If you want to avoid
+starting an editor you can specify the log message on
+the command line using the &lsquo;<samp>-m</samp>&rsquo; flag instead, like
+this:
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Added an optimization pass&quot; 
backend.c
+</pre></div>
+
+<hr>
+<a name="Cleaning-up"></a>
+<div class="header">
+<p>
+Next: <a href="#Viewing-differences" accesskey="n" rel="next">Viewing 
differences</a>, Previous: <a href="#Committing-your-changes" accesskey="p" 
rel="prev">Committing your changes</a>, Up: <a href="#A-sample-session" 
accesskey="u" rel="up">A sample session</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Cleaning-up-1"></a>
+<h4 class="subsection">1.3.3 Cleaning up</h4>
+<a name="index-Cleaning-up"></a>
+<a name="index-Working-copy_002c-removing"></a>
+<a name="index-Removing-your-working-copy"></a>
+<a name="index-Releasing-your-working-copy"></a>
+
+<p>Before you turn to other tasks you decide to remove your working copy of
+tc.  One acceptable way to do that is of course
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ rm -r tc
+</pre></div>
+
+<p>but a better way is to use the <code>release</code> command (see <a 
href="#release">release</a>):
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs release -d tc
+M driver.c
+? tc
+You have [1] altered files in this repository.
+Are you sure you want to release (and delete) directory `tc': n
+** `release' aborted by user choice.
+</pre></div>
+
+<p>The <code>release</code> command checks that all your modifications have 
been
+committed.  If history logging is enabled it also makes a note in the
+history file.  See <a href="#history-file">history file</a>.
+</p>
+<p>When you use the &lsquo;<samp>-d</samp>&rsquo; flag with 
<code>release</code>, it
+also removes your working copy.
+</p>
+<p>In the example above, the <code>release</code> command wrote a couple of 
lines
+of output.  &lsquo;<samp>? tc</samp>&rsquo; means that the file 
<samp>tc</samp> is unknown to <small>CVS</small>.
+That is nothing to worry about: <samp>tc</samp> is the executable compiler,
+and it should not be stored in the repository.  See <a 
href="#cvsignore">cvsignore</a>,
+for information about how to make that warning go away.
+See <a href="#release-output">release output</a>, for a complete explanation of
+all possible output from <code>release</code>.
+</p>
+<p>&lsquo;<samp>M driver.c</samp>&rsquo; is more serious.  It means that the
+file <samp>driver.c</samp> has been modified since it was
+checked out.
+</p>
+<p>The <code>release</code> command always finishes by telling
+you how many modified files you have in your working
+copy of the sources, and then asks you for confirmation
+before deleting any files or making any note in the
+history file.
+</p>
+<p>You decide to play it safe and answer <kbd>n <span 
class="key">RET</span></kbd>
+when <code>release</code> asks for confirmation.
+</p>
+<hr>
+<a name="Viewing-differences"></a>
+<div class="header">
+<p>
+Previous: <a href="#Cleaning-up" accesskey="p" rel="prev">Cleaning up</a>, Up: 
<a href="#A-sample-session" accesskey="u" rel="up">A sample session</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Viewing-differences-1"></a>
+<h4 class="subsection">1.3.4 Viewing differences</h4>
+<a name="index-Viewing-differences"></a>
+<a name="index-Diff"></a>
+
+<p>You do not remember modifying <samp>driver.c</samp>, so you want to see what
+has happened to that file.
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ cvs diff driver.c
+</pre></div>
+
+<p>This command runs <code>diff</code> to compare the version of 
<samp>driver.c</samp>
+that you checked out with your working copy.  When you see the output
+you remember that you added a command line option that enabled the
+optimization pass.  You check it in, and release the module.
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Added an optimization pass&quot; 
driver.c
+Checking in driver.c;
+/usr/local/cvsroot/tc/driver.c,v  &lt;--  driver.c
+new revision: 1.2; previous revision: 1.1
+done
+$ cd ..
+$ cvs release -d tc
+? tc
+You have [0] altered files in this repository.
+Are you sure you want to release (and delete) directory `tc': y
+</pre></div>
+
+<hr>
+<a name="Repository"></a>
+<div class="header">
+<p>
+Next: <a href="#Starting-a-new-project" accesskey="n" rel="next">Starting a 
new project</a>, Previous: <a href="#Overview" accesskey="p" 
rel="prev">Overview</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-Repository"></a>
+<h2 class="chapter">2 The Repository</h2>
+<a name="index-Repository-_0028intro_0029"></a>
+<a name="index-Repository_002c-example"></a>
+<a name="index-Layout-of-repository"></a>
+<a name="index-Typical-repository"></a>
+<a name="index-_002fusr_002flocal_002fcvsroot_002c-as-example-repository"></a>
+<a name="index-cvsroot"></a>
+
+<p>The <small>CVS</small> <em>repository</em> stores a complete copy of
+all the files and directories which are under version
+control.
+</p>
+<p>Normally, you never access any of the files in the
+repository directly.  Instead, you use <small>CVS</small>
+commands to get your own copy of the files into a
+<em>working directory</em>, and then
+work on that copy.  When you&rsquo;ve finished a set of
+changes, you check (or <em>commit</em>) them back into the
+repository.  The repository then contains the changes
+which you have made, as well as recording exactly what
+you changed, when you changed it, and other such
+information.  Note that the repository is not a
+subdirectory of the working directory, or vice versa;
+they should be in separate locations.
+</p>
+<a name="index-_003alocal_003a_002c-setting-up"></a>
+<p><small>CVS</small> can access a repository by a variety of
+means.  It might be on the local computer, or it might
+be on a computer across the room or across the world.
+To distinguish various ways to access a repository, the
+repository name can start with an <em>access method</em>.
+For example, the access method <code>:local:</code> means to
+access a repository directory, so the repository
+<code>:local:/usr/local/cvsroot</code> means that the
+repository is in <samp>/usr/local/cvsroot</samp> on the
+computer running <small>CVS</small>.  For information on other
+access methods, see <a href="#Remote-repositories">Remote repositories</a>.
+</p>
+<p>If the access method is omitted, then if the repository
+starts with &lsquo;<samp>/</samp>&rsquo;, then <code>:local:</code> is
+assumed.  If it does not start with &lsquo;<samp>/</samp>&rsquo; then either
+<code>:ext:</code> or <code>:server:</code> is assumed.  For
+example, if you have a local repository in
+<samp>/usr/local/cvsroot</samp>, you can use
+<code>/usr/local/cvsroot</code> instead of
+<code>:local:/usr/local/cvsroot</code>.  But if (under
+Windows NT, for example) your local repository is
+<samp>c:\src\cvsroot</samp>, then you must specify the access
+method, as in <code>:local:c:/src/cvsroot</code>.
+</p>
+<p>The repository is split in two parts.  <samp>$CVSROOT/CVSROOT</samp> 
contains
+administrative files for <small>CVS</small>.  The other directories contain 
the actual
+user-defined modules.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Specifying-a-repository" 
accesskey="1">Specifying a repository</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Telling CVS where your repository is
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Repository-storage" 
accesskey="2">Repository storage</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The structure of the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Working-directory-storage" 
accesskey="3">Working directory storage</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">The structure of working directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Intro-administrative-files" 
accesskey="4">Intro administrative files</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Defining modules
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Multiple-repositories" 
accesskey="5">Multiple repositories</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Multiple repositories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Creating-a-repository" 
accesskey="6">Creating a repository</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Creating a repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Backing-up" 
accesskey="7">Backing up</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Backing up a repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Moving-a-repository" 
accesskey="8">Moving a repository</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Moving a repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Remote-repositories" 
accesskey="9">Remote repositories</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Accessing repositories on remote machines
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Read_002donly-access">Read-only access</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Granting read-only access to the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Server-temporary-directory">Server temporary 
directory</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The 
server creates temporary directories
+</td></tr>
+</table>
+
+<hr>
+<a name="Specifying-a-repository"></a>
+<div class="header">
+<p>
+Next: <a href="#Repository-storage" accesskey="n" rel="next">Repository 
storage</a>, Up: <a href="#Repository" accesskey="u" rel="up">Repository</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Telling-CVS-where-your-repository-is"></a>
+<h3 class="section">2.1 Telling CVS where your repository is</h3>
+
+<p>There are several ways to tell <small>CVS</small>
+where to find the repository.  You can name the
+repository on the command line explicitly, with the
+<code>-d</code> (for &quot;directory&quot;) option:
+</p>
+<div class="example">
+<pre class="example">cvs -d /usr/local/cvsroot checkout yoyodyne/tc
+</pre></div>
+
+<a name="index-_002eprofile_002c-setting-CVSROOT-in"></a>
+<a name="index-_002ecshrc_002c-setting-CVSROOT-in"></a>
+<a name="index-_002etcshrc_002c-setting-CVSROOT-in"></a>
+<a name="index-_002ebashrc_002c-setting-CVSROOT-in"></a>
+<a name="index-CVSROOT_002c-environment-variable"></a>
+<p>Or you can set the <code>$CVSROOT</code> environment
+variable to an absolute path to the root of the
+repository, <samp>/usr/local/cvsroot</samp> in this example.
+To set <code>$CVSROOT</code>, <code>csh</code> and <code>tcsh</code>
+users should have this line in their <samp>.cshrc</samp> or
+<samp>.tcshrc</samp> files:
+</p>
+<div class="example">
+<pre class="example">setenv CVSROOT /usr/local/cvsroot
+</pre></div>
+
+<p><code>sh</code> and <code>bash</code> users should instead have these lines 
in their
+<samp>.profile</samp> or <samp>.bashrc</samp>:
+</p>
+<div class="example">
+<pre class="example">CVSROOT=/usr/local/cvsroot
+export CVSROOT
+</pre></div>
+
+<a name="index-Root-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fRoot-file"></a>
+<p>A repository specified with <code>-d</code> will
+override the <code>$CVSROOT</code> environment variable.
+Once you&rsquo;ve checked a working copy out from the
+repository, it will remember where its repository is
+(the information is recorded in the
+<samp>CVS/Root</samp> file in the working copy).
+</p>
+<p>The <code>-d</code> option and the <samp>CVS/Root</samp> file both
+override the <code>$CVSROOT</code> environment variable.  If
+<code>-d</code> option differs from <samp>CVS/Root</samp>, the
+former is used.  Of course, for proper operation they
+should be two ways of referring to the same repository.
+</p>
+<hr>
+<a name="Repository-storage"></a>
+<div class="header">
+<p>
+Next: <a href="#Working-directory-storage" accesskey="n" rel="next">Working 
directory storage</a>, Previous: <a href="#Specifying-a-repository" 
accesskey="p" rel="prev">Specifying a repository</a>, Up: <a href="#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="How-data-is-stored-in-the-repository"></a>
+<h3 class="section">2.2 How data is stored in the repository</h3>
+<a name="index-Repository_002c-how-data-is-stored"></a>
+
+<p>For most purposes it isn&rsquo;t important <em>how</em>
+<small>CVS</small> stores information in the repository.  In
+fact, the format has changed in the past, and is likely
+to change in the future.  Since in almost all cases one
+accesses the repository via <small>CVS</small> commands, such
+changes need not be disruptive.
+</p>
+<p>However, in some cases it may be necessary to
+understand how <small>CVS</small> stores data in the repository,
+for example you might need to track down <small>CVS</small> locks
+(see <a href="#Concurrency">Concurrency</a>) or you might need to deal with
+the file permissions appropriate for the repository.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Repository-files" 
accesskey="1">Repository files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">What files are stored in the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#File-permissions" 
accesskey="2">File permissions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">File permissions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Windows-permissions" 
accesskey="3">Windows permissions</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Issues specific to Windows
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Attic" 
accesskey="4">Attic</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Some files are stored in the Attic
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#CVS-in-repository" 
accesskey="5">CVS in repository</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Additional information in CVS directory
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Locks" 
accesskey="6">Locks</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">CVS locks control concurrent accesses
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#CVSROOT-storage" 
accesskey="7">CVSROOT storage</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">A few things about CVSROOT are different
+</td></tr>
+</table>
+
+<hr>
+<a name="Repository-files"></a>
+<div class="header">
+<p>
+Next: <a href="#File-permissions" accesskey="n" rel="next">File 
permissions</a>, Up: <a href="#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Where-files-are-stored-within-the-repository"></a>
+<h4 class="subsection">2.2.1 Where files are stored within the repository</h4>
+
+
+<p>The overall structure of the repository is a directory
+tree corresponding to the directories in the working
+directory.  For example, supposing the repository is in
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot
+</pre></div>
+
+<p>here is a possible directory tree (showing only the
+directories):
+</p>
+<div class="example">
+<pre class="example"><tt>/usr</tt>
+ |
+ +--<tt>local</tt>
+ |   |
+ |   +--<tt>cvsroot</tt>
+ |   |    |
+ |   |    +--<tt>CVSROOT</tt>
+          |      (administrative files)
+          |
+          +--<tt>gnu</tt>
+          |   |
+          |   +--<tt>diff</tt>
+          |   |   (source code to GNU diff)
+          |   |
+          |   +--<tt>rcs</tt>
+          |   |   (source code to RCS)
+          |   |
+          |   +--<tt>cvs</tt>
+          |       (source code to CVS)
+          |
+          +--<tt>yoyodyne</tt>
+              |
+              +--<tt>tc</tt>
+              |    |
+              |    +--<tt>man</tt>
+              |    |
+              |    +--<tt>testing</tt>
+              |
+              +--(other Yoyodyne software)
+</pre></div>
+
+<p>With the directories are <em>history files</em> for each file
+under version control.  The name of the history file is
+the name of the corresponding file with &lsquo;<samp>,v</samp>&rsquo;
+appended to the end.  Here is what the repository for
+the <samp>yoyodyne/tc</samp> directory might look like:
+</p><div class="example">
+<pre class="example">  <code>$CVSROOT</code>
+    |
+    +--<tt>yoyodyne</tt>
+    |   |
+    |   +--<tt>tc</tt>
+    |   |   |
+            +--<tt>Makefile,v</tt>
+            +--<tt>backend.c,v</tt>
+            +--<tt>driver.c,v</tt>
+            +--<tt>frontend.c,v</tt>
+            +--<tt>parser.c,v</tt>
+            +--<tt>man</tt>
+            |    |
+            |    +--<tt>tc.1,v</tt>
+            |
+            +--<tt>testing</tt>
+                 |
+                 +--<tt>testpgm.t,v</tt>
+                 +--<tt>test2.t,v</tt>
+</pre></div>
+
+<a name="index-History-files"></a>
+<a name="index-RCS-history-files"></a>
+<p>The history files contain, among other things, enough
+information to recreate any revision of the file, a log
+of all commit messages and the user-name of the person
+who committed the revision.  The history files are
+known as <em>RCS files</em>, because the first program to
+store files in that format was a version control system
+known as <small>RCS</small>.  For a full
+description of the file format, see the <code>man</code> page
+<cite>rcsfile(5)</cite>, distributed with <small>RCS</small>, or the
+file <samp>doc/RCSFILES</samp> in the <small>CVS</small> source
+distribution.  This
+file format has become very common&mdash;many systems other
+than <small>CVS</small> or <small>RCS</small> can at least import history
+files in this format.
+</p>
+<p>The <small>RCS</small> files used in <small>CVS</small> differ in a few
+ways from the standard format.  The biggest difference
+is magic branches; for more information see <a 
href="#Magic-branch-numbers">Magic branch numbers</a>.  Also in 
<small>CVS</small> the valid tag names
+are a subset of what <small>RCS</small> accepts; for <small>CVS</small>&rsquo;s
+rules see <a href="#Tags">Tags</a>.
+</p>
+<hr>
+<a name="File-permissions"></a>
+<div class="header">
+<p>
+Next: <a href="#Windows-permissions" accesskey="n" rel="next">Windows 
permissions</a>, Previous: <a href="#Repository-files" accesskey="p" 
rel="prev">Repository files</a>, Up: <a href="#Repository-storage" 
accesskey="u" rel="up">Repository storage</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="File-permissions-1"></a>
+<h4 class="subsection">2.2.2 File permissions</h4>
+<a name="index-Security_002c-file-permissions-in-repository"></a>
+<a name="index-File-permissions_002c-general"></a>
+<a name="index-Permissions_002c-general"></a>
+<a name="index-Group_002c-UNIX-file-permissions_002c-in-repository"></a>
+<a name="index-Read_002donly-files_002c-in-repository"></a>
+<p>All &lsquo;<samp>,v</samp>&rsquo; files are created read-only, and you
+should not change the permission of those files.  The
+directories inside the repository should be writable by
+the persons that have permission to modify the files in
+each directory.  This normally means that you must
+create a UNIX group (see group(5)) consisting of the
+persons that are to edit the files in a project, and
+set up the repository so that it is that group that
+owns the directory.
+(On some systems, you also need to set the set-group-ID-on-execution bit
+on the repository directories (see chmod(1)) so that newly-created files
+and directories get the group-ID of the parent directory rather than
+that of the current process.)
+</p>
+
+<p>This means that you can only control access to files on
+a per-directory basis.
+</p>
+<p>Note that users must also have write access to check
+out files, because <small>CVS</small> needs to create lock files
+(see <a href="#Concurrency">Concurrency</a>).  You can use LockDir in 
CVSROOT/config
+to put the lock files somewhere other than in the repository
+if you want to allow read-only access to some directories
+(see <a href="#config">config</a>).
+</p>
+<a 
name="index-CVSROOT_002fval_002dtags-file_002c-and-read_002donly-access-to-projects"></a>
+<a 
name="index-val_002dtags-file_002c-and-read_002donly-access-to-projects"></a>
+<p>Also note that users must have write access to the
+<samp>CVSROOT/val-tags</samp> file.  <small>CVS</small> uses it to keep
+track of what tags are valid tag names (it is sometimes
+updated when tags are used, as well as when they are
+created).
+</p>
+<p>Each <small>RCS</small> file will be owned by the user who last
+checked it in.  This has little significance; what
+really matters is who owns the directories.
+</p>
+<a name="index-CVSUMASK_002c-environment-variable"></a>
+<a name="index-Umask_002c-for-repository-files"></a>
+<p><small>CVS</small> tries to set up reasonable file permissions
+for new directories that are added inside the tree, but
+you must fix the permissions manually when a new
+directory should have different permissions than its
+parent directory.  If you set the <code>CVSUMASK</code>
+environment variable, that will control the file
+permissions which <small>CVS</small> uses in creating directories
+and/or files in the repository.  <code>CVSUMASK</code> does
+not affect the file permissions in the working
+directory; such files have the permissions which are
+typical for newly created files, except that sometimes
+<small>CVS</small> creates them read-only (see the sections on
+watches, <a href="#Setting-a-watch">Setting a watch</a>; -r, <a 
href="#Global-options">Global options</a>; or <code>CVSREAD</code>, <a 
href="#Environment-variables">Environment variables</a>).
+</p>
+<p>Note that using the client/server <small>CVS</small>
+(see <a href="#Remote-repositories">Remote repositories</a>), there is no good 
way to
+set <code>CVSUMASK</code>; the setting on the client machine
+has no effect.  If you are connecting with <code>rsh</code>, you
+can set <code>CVSUMASK</code> in <samp>.bashrc</samp> or <samp>.cshrc</samp>, 
as
+described in the documentation for your operating
+system.  This behavior might change in future versions
+of <small>CVS</small>; do not rely on the setting of
+<code>CVSUMASK</code> on the client having no effect.
+</p>
+<p>Using pserver, you will generally need stricter
+permissions on the <small>CVSROOT</small> directory and
+directories above it in the tree; see <a 
href="#Password-authentication-security">Password authentication security</a>.
+</p>
+<a name="index-Setuid"></a>
+<a name="index-Setgid"></a>
+<a name="index-Security_002c-setuid"></a>
+<a name="index-Installed-images-_0028VMS_0029"></a>
+<p>Some operating systems have features which allow a
+particular program to run with the ability to perform
+operations which the caller of the program could not.
+For example, the set user ID (setuid) or set group ID
+(setgid) features of unix or the installed image
+feature of VMS.  <small>CVS</small> was not written to use such
+features and therefore attempting to install <small>CVS</small> in
+this fashion will provide protection against only
+accidental lapses; anyone who is trying to circumvent
+the measure will be able to do so, and depending on how
+you have set it up may gain access to more than just
+<small>CVS</small>.  You may wish to instead consider pserver.  It
+shares some of the same attributes, in terms of
+possibly providing a false sense of security or opening
+security holes wider than the ones you are trying to
+fix, so read the documentation on pserver security
+carefully if you are considering this option
+(<a href="#Password-authentication-security">Password authentication 
security</a>).
+</p>
+<hr>
+<a name="Windows-permissions"></a>
+<div class="header">
+<p>
+Next: <a href="#Attic" accesskey="n" rel="next">Attic</a>, Previous: <a 
href="#File-permissions" accesskey="p" rel="prev">File permissions</a>, Up: <a 
href="#Repository-storage" accesskey="u" rel="up">Repository storage</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="File-Permission-issues-specific-to-Windows"></a>
+<h4 class="subsection">2.2.3 File Permission issues specific to Windows</h4>
+<a name="index-Windows_002c-and-permissions"></a>
+<a name="index-File-permissions_002c-Windows_002dspecific"></a>
+<a name="index-Permissions_002c-Windows_002dspecific"></a>
+
+<p>Some file permission issues are specific to Windows
+operating systems (Windows 95, Windows NT, and
+presumably future operating systems in this family.
+Some of the following might apply to OS/2 but I&rsquo;m not
+sure).
+</p>
+<p>If you are using local <small>CVS</small> and the repository is on a
+networked file system which is served by the Samba SMB
+server, some people have reported problems with
+permissions.  Enabling WRITE=YES in the samba
+configuration is said to fix/workaround it.
+Disclaimer: I haven&rsquo;t investigated enough to know the
+implications of enabling that option, nor do I know
+whether there is something which <small>CVS</small> could be doing
+differently in order to avoid the problem.  If you find
+something out, please let us know as described in
+<a href="#BUGS">BUGS</a>.
+</p>
+<hr>
+<a name="Attic"></a>
+<div class="header">
+<p>
+Next: <a href="#CVS-in-repository" accesskey="n" rel="next">CVS in 
repository</a>, Previous: <a href="#Windows-permissions" accesskey="p" 
rel="prev">Windows permissions</a>, Up: <a href="#Repository-storage" 
accesskey="u" rel="up">Repository storage</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="The-attic"></a>
+<h4 class="subsection">2.2.4 The attic</h4>
+<a name="index-Attic"></a>
+
+<p>You will notice that sometimes <small>CVS</small> stores an
+<small>RCS</small> file in the <code>Attic</code>.  For example, if the
+<small>CVSROOT</small> is <samp>/usr/local/cvsroot</samp> and we are
+talking about the file <samp>backend.c</samp> in the
+directory <samp>yoyodyne/tc</samp>, then the file normally
+would be in
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot/yoyodyne/tc/backend.c,v
+</pre></div>
+
+<p>but if it goes in the attic, it would be in
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot/yoyodyne/tc/Attic/backend.c,v
+</pre></div>
+
+<a name="index-Dead-state"></a>
+<p>instead.  It should not matter from a user point of
+view whether a file is in the attic; <small>CVS</small> keeps
+track of this and looks in the attic when it needs to.
+But in case you want to know, the rule is that the RCS
+file is stored in the attic if and only if the head
+revision on the trunk has state <code>dead</code>.  A
+<code>dead</code> state means that file has been removed, or
+never added, for that revision.  For example, if you
+add a file on a branch, it will have a trunk revision
+in <code>dead</code> state, and a branch revision in a
+non-<code>dead</code> state.
+</p>
+<hr>
+<a name="CVS-in-repository"></a>
+<div class="header">
+<p>
+Next: <a href="#Locks" accesskey="n" rel="next">Locks</a>, Previous: <a 
href="#Attic" accesskey="p" rel="prev">Attic</a>, Up: <a 
href="#Repository-storage" accesskey="u" rel="up">Repository storage</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-CVS-directory-in-the-repository"></a>
+<h4 class="subsection">2.2.5 The CVS directory in the repository</h4>
+<a name="index-CVS-directory_002c-in-repository"></a>
+
+<p>The <samp>CVS</samp> directory in each repository directory
+contains information such as file attributes (in a file
+called <samp>CVS/fileattr</samp>.  In the
+future additional files may be added to this directory,
+so implementations should silently ignore additional
+files.
+</p>
+<p>This behavior is implemented only by <small>CVS</small> 1.7 and
+later; for details see <a href="#Watches-Compatibility">Watches 
Compatibility</a>.
+</p>
+<p>The format of the <samp>fileattr</samp> file is a series of entries
+of the following form (where &lsquo;<samp>{</samp>&rsquo; and 
&lsquo;<samp>}</samp>&rsquo;
+means the text between the braces can be repeated zero
+or more times):
+</p>
+<p><var>ent-type</var> <var>filename</var> &lt;tab&gt; <var>attrname</var> = 
<var>attrval</var>
+  {; <var>attrname</var> = <var>attrval</var>} &lt;linefeed&gt;
+</p>
+<p><var>ent-type</var> is &lsquo;<samp>F</samp>&rsquo; for a file, in which 
case the entry specifies the
+attributes for that file.
+</p>
+<p><var>ent-type</var> is &lsquo;<samp>D</samp>&rsquo;,
+and <var>filename</var> empty, to specify default attributes
+to be used for newly added files.
+</p>
+<p>Other <var>ent-type</var> are reserved for future expansion.  
<small>CVS</small> 1.9 and older
+will delete them any time it writes file attributes.
+<small>CVS</small> 1.10 and later will preserve them.
+</p>
+<p>Note that the order of the lines is not significant;
+a program writing the fileattr file may
+rearrange them at its convenience.
+</p>
+<p>There is currently no way of quoting tabs or line feeds in the
+filename, &lsquo;<samp>=</samp>&rsquo; in <var>attrname</var>,
+&lsquo;<samp>;</samp>&rsquo; in <var>attrval</var>, etc.  Note: some 
implementations also
+don&rsquo;t handle a NUL character in any of the fields, but
+implementations are encouraged to allow it.
+</p>
+<p>By convention, <var>attrname</var> starting with 
&lsquo;<samp>_</samp>&rsquo; is for an attribute given
+special meaning by <small>CVS</small>; other <var>attrname</var>s are for 
user-defined attributes
+(or will be, once implementations start supporting user-defined attributes).
+</p>
+<p>Built-in attributes:
+</p>
+<dl compact="compact">
+<dt><code>_watched</code></dt>
+<dd><p>Present means the file is watched and should be checked out
+read-only.
+</p>
+</dd>
+<dt><code>_watchers</code></dt>
+<dd><p>Users with watches for this file.  Value is
+<var>watcher</var> &gt; <var>type</var> { , <var>watcher</var> &gt; 
<var>type</var> }
+where <var>watcher</var> is a username, and <var>type</var>
+is zero or more of edit,unedit,commit separated by
+&lsquo;<samp>+</samp>&rsquo; (that is, nothing if none; there is no 
&quot;none&quot; or &quot;all&quot; keyword).
+</p>
+</dd>
+<dt><code>_editors</code></dt>
+<dd><p>Users editing this file.  Value is
+<var>editor</var> &gt; <var>val</var> { , <var>editor</var> &gt; 
<var>val</var> }
+where <var>editor</var> is a username, and <var>val</var> is
+<var>time</var>+<var>hostname</var>+<var>pathname</var>, where
+<var>time</var> is when the <code>cvs edit</code> command (or
+equivalent) happened,
+and <var>hostname</var> and <var>pathname</var> are for the working directory.
+</p></dd>
+</dl>
+
+<p>Example:
+</p>
+<div class="example">
+<pre class="example">Ffile1 _watched=;_watchers=joe&gt;edit,mary&gt;commit
+Ffile2 _watched=;_editors=sue&gt;8 Jan 1975+workstn1+/home/sue/cvs
+D _watched=
+</pre></div>
+
+<p>means that the file <samp>file1</samp> should be checked out
+read-only.  Furthermore, joe is watching for edits and
+mary is watching for commits.  The file <samp>file2</samp>
+should be checked out read-only; sue started editing it
+on 8 Jan 1975 in the directory <samp>/home/sue/cvs</samp> on
+the machine <code>workstn1</code>.  Future files which are
+added should be checked out read-only.  To represent
+this example here, we have shown a space after
+&lsquo;<samp>D</samp>&rsquo;, &lsquo;<samp>Ffile1</samp>&rsquo;, and 
&lsquo;<samp>Ffile2</samp>&rsquo;, but in fact
+there must be a single tab character there and no spaces.
+</p>
+<hr>
+<a name="Locks"></a>
+<div class="header">
+<p>
+Next: <a href="#CVSROOT-storage" accesskey="n" rel="next">CVSROOT storage</a>, 
Previous: <a href="#CVS-in-repository" accesskey="p" rel="prev">CVS in 
repository</a>, Up: <a href="#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="CVS-locks-in-the-repository"></a>
+<h4 class="subsection">2.2.6 CVS locks in the repository</h4>
+
+<a name="index-_0023cvs_002erfl_002c-technical-details"></a>
+<a name="index-_0023cvs_002ewfl_002c-technical-details"></a>
+<a name="index-_0023cvs_002elock_002c-technical-details"></a>
+<a name="index-Locks_002c-cvs_002c-technical-details"></a>
+<p>For an introduction to <small>CVS</small> locks focusing on
+user-visible behavior, see <a href="#Concurrency">Concurrency</a>.  The
+following section is aimed at people who are writing
+tools which want to access a <small>CVS</small> repository without
+interfering with other tools accessing the same
+repository.  If you find yourself confused by concepts
+described here, like <em>read lock</em>, <em>write lock</em>,
+and <em>deadlock</em>, you might consult the literature on
+operating systems or databases.
+</p>
+<a name="index-_0023cvs_002etfl"></a>
+<p>Any file in the repository with a name starting
+with <samp>#cvs.rfl.</samp> is a read lock.  Any file in
+the repository with a name starting with
+<samp>#cvs.wfl</samp> is a write lock.  Old versions of <small>CVS</small>
+(before <small>CVS</small> 1.5) also created files with names starting
+with <samp>#cvs.tfl</samp>, but they are not discussed here.
+The directory <samp>#cvs.lock</samp> serves as a master
+lock.  That is, one must obtain this lock first before
+creating any of the other locks.
+</p>
+<p>To obtain a read lock, first create the <samp>#cvs.lock</samp>
+directory.  This operation must be atomic (which should
+be true for creating a directory under most operating
+systems).  If it fails because the directory already
+existed, wait for a while and try again.  After
+obtaining the <samp>#cvs.lock</samp> lock, create a file
+whose name is <samp>#cvs.rfl.</samp> followed by information
+of your choice (for example, hostname and process
+identification number).  Then remove the
+<samp>#cvs.lock</samp> directory to release the master lock.
+Then proceed with reading the repository.  When you are
+done, remove the <samp>#cvs.rfl</samp> file to release the
+read lock.
+</p>
+<p>To obtain a write lock, first create the
+<samp>#cvs.lock</samp> directory, as with read locks.  Then
+check that there are no files whose names start with
+<samp>#cvs.rfl.</samp>.  If there are, remove
+<samp>#cvs.lock</samp>, wait for a while, and try again.  If
+there are no readers, then create a file whose name is
+<samp>#cvs.wfl</samp> followed by information of your choice
+(for example, hostname and process identification
+number).  Hang on to the <samp>#cvs.lock</samp> lock.  Proceed
+with writing the repository.  When you are done, first
+remove the <samp>#cvs.wfl</samp> file and then the
+<samp>#cvs.lock</samp> directory. Note that unlike the
+<samp>#cvs.rfl</samp> file, the <samp>#cvs.wfl</samp> file is just
+informational; it has no effect on the locking operation
+beyond what is provided by holding on to the
+<samp>#cvs.lock</samp> lock itself.
+</p>
+<p>Note that each lock (write lock or read lock) only locks
+a single directory in the repository, including
+<samp>Attic</samp> and <samp>CVS</samp> but not including
+subdirectories which represent other directories under
+version control.  To lock an entire tree, you need to
+lock each directory (note that if you fail to obtain
+any lock you need, you must release the whole tree
+before waiting and trying again, to avoid deadlocks).
+</p>
+<p>Note also that <small>CVS</small> expects write locks to control
+access to individual <samp>foo,v</samp> files.  <small>RCS</small> has
+a scheme where the <samp>,foo,</samp> file serves as a lock,
+but <small>CVS</small> does not implement it and so taking out a
+<small>CVS</small> write lock is recommended.  See the comments at
+rcs_internal_lockfile in the <small>CVS</small> source code for
+further discussion/rationale.
+</p>
+<hr>
+<a name="CVSROOT-storage"></a>
+<div class="header">
+<p>
+Previous: <a href="#Locks" accesskey="p" rel="prev">Locks</a>, Up: <a 
href="#Repository-storage" accesskey="u" rel="up">Repository storage</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="How-files-are-stored-in-the-CVSROOT-directory"></a>
+<h4 class="subsection">2.2.7 How files are stored in the CVSROOT directory</h4>
+<a name="index-CVSROOT_002c-storage-of-files"></a>
+
+<p>The <samp>$CVSROOT/CVSROOT</samp> directory contains the
+various administrative files.  In some ways this
+directory is just like any other directory in the
+repository; it contains <small>RCS</small> files whose names end
+in &lsquo;<samp>,v</samp>&rsquo;, and many of the <small>CVS</small> commands 
operate
+on it the same way.  However, there are a few
+differences.
+</p>
+<p>For each administrative file, in addition to the
+<small>RCS</small> file, there is also a checked out copy of the
+file.  For example, there is an <small>RCS</small> file
+<samp>loginfo,v</samp> and a file <samp>loginfo</samp> which
+contains the latest revision contained in
+<samp>loginfo,v</samp>.  When you check in an administrative
+file, <small>CVS</small> should print
+</p>
+<div class="example">
+<pre class="example">cvs commit: Rebuilding administrative file database
+</pre></div>
+
+<p>and update the checked out copy in
+<samp>$CVSROOT/CVSROOT</samp>.  If it does not, there is
+something wrong (see <a href="#BUGS">BUGS</a>).  To add your own files
+to the files to be updated in this fashion, you can add
+them to the <samp>checkoutlist</samp> administrative file
+(see <a href="#checkoutlist">checkoutlist</a>).
+</p>
+<a name="index-modules_002edb"></a>
+<a name="index-modules_002epag"></a>
+<a name="index-modules_002edir"></a>
+<p>By default, the <samp>modules</samp> file behaves as
+described above.  If the modules file is very large,
+storing it as a flat text file may make looking up
+modules slow (I&rsquo;m not sure whether this is as much of a
+concern now as when <small>CVS</small> first evolved this
+feature; I haven&rsquo;t seen benchmarks).  Therefore, by
+making appropriate edits to the <small>CVS</small> source code
+one can store the modules file in a database which
+implements the <code>ndbm</code> interface, such as Berkeley
+db or GDBM.  If this option is in use, then the modules
+database will be stored in the files <samp>modules.db</samp>,
+<samp>modules.pag</samp>, and/or <samp>modules.dir</samp>.
+</p>
+<p>For information on the meaning of the various
+administrative files, see <a href="#Administrative-files">Administrative 
files</a>.
+</p>
+<hr>
+<a name="Working-directory-storage"></a>
+<div class="header">
+<p>
+Next: <a href="#Intro-administrative-files" accesskey="n" rel="next">Intro 
administrative files</a>, Previous: <a href="#Repository-storage" accesskey="p" 
rel="prev">Repository storage</a>, Up: <a href="#Repository" accesskey="u" 
rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="How-data-is-stored-in-the-working-directory"></a>
+<h3 class="section">2.3 How data is stored in the working directory</h3>
+
+
+<a name="index-CVS-directory_002c-in-working-directory"></a>
+<p>While we are discussing <small>CVS</small> internals which may
+become visible from time to time, we might as well talk
+about what <small>CVS</small> puts in the <samp>CVS</samp> directories
+in the working directories.  As with the repository,
+<small>CVS</small> handles this information and one can usually
+access it via <small>CVS</small> commands.  But in some cases it
+may be useful to look at it, and other programs, such
+as the <code>jCVS</code> graphical user interface or the
+<code>VC</code> package for emacs, may need to look at it.
+Such programs should follow the recommendations in this
+section if they hope to be able to work with other
+programs which use those files, including future
+versions of the programs just mentioned and the
+command-line <small>CVS</small> client.
+</p>
+<p>The <samp>CVS</samp> directory contains several files.
+Programs which are reading this directory should
+silently ignore files which are in the directory but
+which are not documented here, to allow for future
+expansion.
+</p>
+<p>The files are stored according to the text file
+convention for the system in question.  This means that
+working directories are not portable between systems
+with differing conventions for storing text files.
+This is intentional, on the theory that the files being
+managed by <small>CVS</small> probably will not be portable between
+such systems either.
+</p>
+<dl compact="compact">
+<dt><samp>Root</samp></dt>
+<dd><p>This file contains the current <small>CVS</small> root, as
+described in <a href="#Specifying-a-repository">Specifying a repository</a>.
+</p>
+<a name="index-Repository-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fRepository-file"></a>
+</dd>
+<dt><samp>Repository</samp></dt>
+<dd><p>This file contains the directory within the repository
+which the current directory corresponds with.  It can
+be either an absolute pathname or a relative pathname;
+<small>CVS</small> has had the ability to read either format
+since at least version 1.3 or so.  The relative
+pathname is relative to the root, and is the more
+sensible approach, but the absolute pathname is quite
+common and implementations should accept either.  For
+example, after the command
+</p>
+<div class="example">
+<pre class="example">cvs -d :local:/usr/local/cvsroot checkout yoyodyne/tc
+</pre></div>
+
+<p><samp>Root</samp> will contain
+</p>
+<div class="example">
+<pre class="example">:local:/usr/local/cvsroot
+</pre></div>
+
+<p>and <samp>Repository</samp> will contain either
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot/yoyodyne/tc
+</pre></div>
+
+<p>or
+</p>
+<div class="example">
+<pre class="example">yoyodyne/tc
+</pre></div>
+
+<p>If the particular working directory does not correspond
+to a directory in the repository, then <samp>Repository</samp>
+should contain <samp>CVSROOT/Emptydir</samp>.
+<a name="index-Emptydir_002c-in-CVSROOT-directory"></a>
+<a name="index-CVSROOT_002fEmptydir-directory"></a>
+</p>
+<a name="index-Entries-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries-file"></a>
+</dd>
+<dt><samp>Entries</samp></dt>
+<dd><p>This file lists the files and directories in the
+working directory.
+The first character of each line indicates what sort of
+line it is.  If the character is unrecognized, programs
+reading the file should silently skip that line, to
+allow for future expansion.
+</p>
+<p>If the first character is &lsquo;<samp>/</samp>&rsquo;, then the format is:
+</p>
+<div class="example">
+<pre 
class="example">/<var>name</var>/<var>revision</var>/<var>timestamp</var>[+<var>conflict</var>]/<var>options</var>/<var>tagdate</var>
+</pre></div>
+
+<p>where &lsquo;<samp>[</samp>&rsquo; and &lsquo;<samp>]</samp>&rsquo; are not 
part of the entry,
+but instead indicate that the &lsquo;<samp>+</samp>&rsquo; and conflict
+marker are optional.  <var>name</var> is the name of the
+file within the directory.  <var>revision</var> is the
+revision that the file in the working derives from, or
+&lsquo;<samp>0</samp>&rsquo; for an added file, or 
&lsquo;<samp>-</samp>&rsquo; followed by a
+revision for a removed file.  <var>timestamp</var> is the
+timestamp of the file at the time that <small>CVS</small> created
+it; if the timestamp differs with the actual
+modification time of the file it means the file has
+been modified.  It is stored in
+the format used by the ISO C asctime() function (for
+example, &lsquo;<samp>Sun Apr  7 01:29:26 1996</samp>&rsquo;).  One may
+write a string which is not in that format, for
+example, &lsquo;<samp>Result of merge</samp>&rsquo;, to indicate that the
+file should always be considered to be modified.  This
+is not a special case; to see whether a file is
+modified a program should take the timestamp of the file
+and simply do a string compare with <var>timestamp</var>.
+If there was a conflict, <var>conflict</var> can be set to
+the modification time of the file after the file has been
+written with conflict markers (see <a href="#Conflicts-example">Conflicts 
example</a>).
+Thus if <var>conflict</var> is subsequently the same as the actual
+modification time of the file it means that the user
+has obviously not resolved the conflict.  <var>options</var>
+contains sticky options (for example &lsquo;<samp>-kb</samp>&rsquo; for a
+binary file).  <var>tagdate</var> contains &lsquo;<samp>T</samp>&rsquo; 
followed
+by a tag name, or &lsquo;<samp>D</samp>&rsquo; for a date, followed by a
+sticky tag or date.  Note that if <var>timestamp</var>
+contains a pair of timestamps separated by a space,
+rather than a single timestamp, you are dealing with a
+version of <small>CVS</small> earlier than <small>CVS</small> 1.5 (not
+documented here).
+</p>
+<p>The timezone on the timestamp in CVS/Entries (local or
+universal) should be the same as the operating system
+stores for the timestamp of the file itself.  For
+example, on Unix the file&rsquo;s timestamp is in universal
+time (UT), so the timestamp in CVS/Entries should be
+too.  On <small>VMS</small>, the file&rsquo;s timestamp is in local
+time, so <small>CVS</small> on <small>VMS</small> should use local time.
+This rule is so that files do not appear to be modified
+merely because the timezone changed (for example, to or
+from summer time).
+</p>
+<p>If the first character of a line in <samp>Entries</samp> is
+&lsquo;<samp>D</samp>&rsquo;, then it indicates a subdirectory.  
&lsquo;<samp>D</samp>&rsquo;
+on a line all by itself indicates that the program
+which wrote the <samp>Entries</samp> file does record
+subdirectories (therefore, if there is such a line and
+no other lines beginning with &lsquo;<samp>D</samp>&rsquo;, one knows there
+are no subdirectories).  Otherwise, the line looks
+like:
+</p>
+<div class="example">
+<pre 
class="example">D/<var>name</var>/<var>filler1</var>/<var>filler2</var>/<var>filler3</var>/<var>filler4</var>
+</pre></div>
+
+<p>where <var>name</var> is the name of the subdirectory, and
+all the <var>filler</var> fields should be silently ignored,
+for future expansion.  Programs which modify
+<code>Entries</code> files should preserve these fields.
+</p>
+<p>The lines in the <samp>Entries</samp> file can be in any order.
+</p>
+<a name="index-Entries_002eLog-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries_002eLog-file"></a>
+</dd>
+<dt><samp>Entries.Log</samp></dt>
+<dd><p>This file does not record any information beyond that
+in <samp>Entries</samp>, but it does provide a way to update
+the information without having to rewrite the entire
+<samp>Entries</samp> file, including the ability to preserve
+the information even if the program writing
+<samp>Entries</samp> and <samp>Entries.Log</samp> abruptly aborts.
+Programs which are reading the <samp>Entries</samp> file
+should also check for <samp>Entries.Log</samp>.  If the latter
+exists, they should read <samp>Entries</samp> and then apply
+the changes mentioned in <samp>Entries.Log</samp>.  After
+applying the changes, the recommended practice is to
+rewrite <samp>Entries</samp> and then delete <samp>Entries.Log</samp>.
+The format of a line in <samp>Entries.Log</samp> is a single
+character command followed by a space followed by a
+line in the format specified for a line in
+<samp>Entries</samp>.  The single character command is
+&lsquo;<samp>A</samp>&rsquo; to indicate that the entry is being added,
+&lsquo;<samp>R</samp>&rsquo; to indicate that the entry is being removed,
+or any other character to indicate that the entire line
+in <samp>Entries.Log</samp> should be silently ignored (for
+future expansion).  If the second character of the line
+in <samp>Entries.Log</samp> is not a space, then it was
+written by an older version of <small>CVS</small> (not documented
+here).
+</p>
+<p>Programs which are writing rather than reading can
+safely ignore <samp>Entries.Log</samp> if they so choose.
+</p>
+<a name="index-Entries_002eBackup-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries_002eBackup-file"></a>
+</dd>
+<dt><samp>Entries.Backup</samp></dt>
+<dd><p>This is a temporary file.  Recommended usage is to
+write a new entries file to <samp>Entries.Backup</samp>, and
+then to rename it (atomically, where possible) to <samp>Entries</samp>.
+</p>
+<a name="index-Entries_002eStatic-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries_002eStatic-file"></a>
+</dd>
+<dt><samp>Entries.Static</samp></dt>
+<dd><p>The only relevant thing about this file is whether it
+exists or not.  If it exists, then it means that only
+part of a directory was gotten and <small>CVS</small> will
+not create additional files in that directory.  To
+clear it, use the <code>update</code> command with the
+&lsquo;<samp>-d</samp>&rsquo; option, which will get the additional files
+and remove <samp>Entries.Static</samp>.
+</p>
+<a name="index-Tag-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fTag-file"></a>
+<a name="index-Sticky-tags_002fdates_002c-per_002ddirectory"></a>
+<a name="index-Per_002ddirectory-sticky-tags_002fdates"></a>
+</dd>
+<dt><samp>Tag</samp></dt>
+<dd><p>This file contains per-directory sticky tags or dates.
+The first character is &lsquo;<samp>T</samp>&rsquo; for a branch tag,
+&lsquo;<samp>N</samp>&rsquo; for a non-branch tag, or 
&lsquo;<samp>D</samp>&rsquo; for a date,
+or another character to mean the file should be
+silently ignored, for future expansion.  This character
+is followed by the tag or date.  Note that
+per-directory sticky tags or dates are used for things
+like applying to files which are newly added; they
+might not be the same as the sticky tags or dates on
+individual files.  For general information on sticky
+tags and dates, see <a href="#Sticky-tags">Sticky tags</a>.
+</p>
+<a name="index-Notify-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fNotify-file"></a>
+</dd>
+<dt><samp>Notify</samp></dt>
+<dd><p>This file stores notifications (for example, for
+<code>edit</code> or <code>unedit</code>) which have not yet been
+sent to the server.  Its format is not yet documented
+here.
+</p>
+<a name="index-Notify_002etmp-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fNotify_002etmp-file"></a>
+</dd>
+<dt><samp>Notify.tmp</samp></dt>
+<dd><p>This file is to <samp>Notify</samp> as <samp>Entries.Backup</samp>
+is to <samp>Entries</samp>.  That is, to write <samp>Notify</samp>,
+first write the new contents to <samp>Notify.tmp</samp> and
+then (atomically where possible), rename it to
+<samp>Notify</samp>.
+</p>
+<a name="index-Base-directory_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fBase-directory"></a>
+</dd>
+<dt><samp>Base</samp></dt>
+<dd><p>If watches are in use, then an <code>edit</code> command
+stores the original copy of the file in the <samp>Base</samp>
+directory.  This allows the <code>unedit</code> command to
+operate even if it is unable to communicate with the
+server.
+</p>
+<a name="index-Baserev-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fBaserev-file"></a>
+</dd>
+<dt><samp>Baserev</samp></dt>
+<dd><p>The file lists the revision for each of the files in
+the <samp>Base</samp> directory.  The format is:
+</p>
+<div class="example">
+<pre class="example">B<var>name</var>/<var>rev</var>/<var>expansion</var>
+</pre></div>
+
+<p>where <var>expansion</var> should be ignored, to allow for
+future expansion.
+</p>
+<a name="index-Baserev_002etmp-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fBaserev_002etmp-file"></a>
+</dd>
+<dt><samp>Baserev.tmp</samp></dt>
+<dd><p>This file is to <samp>Baserev</samp> as <samp>Entries.Backup</samp>
+is to <samp>Entries</samp>.  That is, to write <samp>Baserev</samp>,
+first write the new contents to <samp>Baserev.tmp</samp> and
+then (atomically where possible), rename it to
+<samp>Baserev</samp>.
+</p>
+<a name="index-Template-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fTemplate-file"></a>
+</dd>
+<dt><samp>Template</samp></dt>
+<dd><p>This file contains the template specified by the
+<samp>rcsinfo</samp> file (see <a href="#rcsinfo">rcsinfo</a>).  It is only 
used
+by the client; the non-client/server <small>CVS</small> consults
+<samp>rcsinfo</samp> directly.
+</p></dd>
+</dl>
+
+<hr>
+<a name="Intro-administrative-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Multiple-repositories" accesskey="n" rel="next">Multiple 
repositories</a>, Previous: <a href="#Working-directory-storage" accesskey="p" 
rel="prev">Working directory storage</a>, Up: <a href="#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="The-administrative-files"></a>
+<h3 class="section">2.4 The administrative files</h3>
+<a name="index-Administrative-files-_0028intro_0029"></a>
+<a name="index-Modules-file"></a>
+<a name="index-CVSROOT_002c-module-name"></a>
+<a name="index-Defining-modules-_0028intro_0029"></a>
+
+
+<p>The directory <samp>$CVSROOT/CVSROOT</samp> contains some <em>administrative
+files</em>.  See <a href="#Administrative-files">Administrative files</a>, for 
a complete description.
+You can use <small>CVS</small> without any of these files, but
+some commands work better when at least the
+<samp>modules</samp> file is properly set up.
+</p>
+<p>The most important of these files is the <samp>modules</samp>
+file.  It defines all modules in the repository.  This
+is a sample <samp>modules</samp> file.
+</p>
+<div class="example">
+<pre class="example">CVSROOT         CVSROOT
+modules         CVSROOT modules
+cvs             gnu/cvs
+rcs             gnu/rcs
+diff            gnu/diff
+tc              yoyodyne/tc
+</pre></div>
+
+<p>The <samp>modules</samp> file is line oriented.  In its
+simplest form each line contains the name of the
+module, whitespace, and the directory where the module
+resides.  The directory is a path relative to
+<code>$CVSROOT</code>.  The last four lines in the example
+above are examples of such lines.
+</p>
+
+<p>The line that defines the module called &lsquo;<samp>modules</samp>&rsquo;
+uses features that are not explained here.
+See <a href="#modules">modules</a>, for a full explanation of all the
+available features.
+</p>
+<a name="Editing-administrative-files"></a>
+<h4 class="subsection">2.4.1 Editing administrative files</h4>
+<a name="index-Editing-administrative-files"></a>
+<a name="index-Administrative-files_002c-editing-them"></a>
+
+<p>You edit the administrative files in the same way that you would edit
+any other module.  Use &lsquo;<samp>cvs checkout CVSROOT</samp>&rsquo; to get 
a working
+copy, edit it, and commit your changes in the normal way.
+</p>
+<p>It is possible to commit an erroneous administrative
+file.  You can often fix the error and check in a new
+revision, but sometimes a particularly bad error in the
+administrative file makes it impossible to commit new
+revisions.  If and when this happens, you can correct
+the problem by temporarily copying a corrected administrative file
+directly into the <code>$CVSROOT/CVSROOT</code> repository directory,
+then committing the same correction via a checkout of the <samp>CVSROOT</samp>
+module.  It is important that the correction also be made via the
+checked out copy, or the next checkout and commit to the
+&lt;code&gt;CVSROOT&lt;/code&gt; module will overwrite the correction that was
+copied directly into the repository, possibly breaking things in such
+a way as to prevent commits again.
+</p>
+<hr>
+<a name="Multiple-repositories"></a>
+<div class="header">
+<p>
+Next: <a href="#Creating-a-repository" accesskey="n" rel="next">Creating a 
repository</a>, Previous: <a href="#Intro-administrative-files" accesskey="p" 
rel="prev">Intro administrative files</a>, Up: <a href="#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Multiple-repositories-1"></a>
+<h3 class="section">2.5 Multiple repositories</h3>
+<a name="index-Multiple-repositories"></a>
+<a name="index-Repositories_002c-multiple"></a>
+<a name="index-Many-repositories"></a>
+<a name="index-Parallel-repositories"></a>
+<a name="index-Disjoint-repositories"></a>
+<a name="index-CVSROOT_002c-multiple-repositories"></a>
+
+<p>In some situations it is a good idea to have more than
+one repository, for instance if you have two
+development groups that work on separate projects
+without sharing any code.  All you have to do to have
+several repositories is to specify the appropriate
+repository, using the <code>CVSROOT</code> environment
+variable, the &lsquo;<samp>-d</samp>&rsquo; option to <small>CVS</small>, or 
(once
+you have checked out a working directory) by simply
+allowing <small>CVS</small> to use the repository that was used
+to check out the working directory
+(see <a href="#Specifying-a-repository">Specifying a repository</a>).
+</p>
+<p>The big advantage of having multiple repositories is
+that they can reside on different servers.  With <small>CVS</small>
+version 1.10, a single command cannot recurse into
+directories from different repositories.  With development
+versions of <small>CVS</small>, you can check out code from multiple
+servers into your working directory.  <small>CVS</small> will
+recurse and handle all the details of making
+connections to as many server machines as necessary to
+perform the requested command.  Here is an example of
+how to set up a working directory:
+</p>
+<div class="example">
+<pre class="example">cvs -d server1:/cvs co dir1
+cd dir1
+cvs -d server2:/root co sdir
+cvs update
+</pre></div>
+
+<p>The <code>cvs co</code> commands set up the working
+directory, and then the <code>cvs update</code> command will
+contact server2, to update the dir1/sdir subdirectory,
+and server1, to update everything else.
+</p>
+
+<hr>
+<a name="Creating-a-repository"></a>
+<div class="header">
+<p>
+Next: <a href="#Backing-up" accesskey="n" rel="next">Backing up</a>, Previous: 
<a href="#Multiple-repositories" accesskey="p" rel="prev">Multiple 
repositories</a>, Up: <a href="#Repository" accesskey="u" 
rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Creating-a-repository-1"></a>
+<h3 class="section">2.6 Creating a repository</h3>
+
+<a name="index-Repository_002c-setting-up"></a>
+<a name="index-Creating-a-repository"></a>
+<a name="index-Setting-up-a-repository"></a>
+
+<p>This section describes how to set up a <small>CVS</small> repository for any
+sort of access method.  After completing the setup described in this
+section, you should be able to access your <small>CVS</small> repository 
immediately
+via the local access method and several remote access methods.  For
+more information on setting up remote access to the repository you create
+in this section, please read the section on See <a 
href="#Remote-repositories">Remote repositories</a>.
+</p>
+<p>To set up a <small>CVS</small> repository, first choose the
+machine and disk on which you want to store the
+revision history of the source files.  CPU and memory
+requirements are modest, so most machines should be
+adequate.  For details see <a href="#Server-requirements">Server 
requirements</a>.
+</p>
+<p>To estimate disk space
+requirements, if you are importing RCS files from
+another system, the size of those files is the
+approximate initial size of your repository, or if you
+are starting without any version history, a rule of
+thumb is to allow for the server approximately three
+times the size of the code to be under <small>CVS</small> for the
+repository (you will eventually outgrow this, but not
+for a while).  On the machines on which the developers
+will be working, you&rsquo;ll want disk space for
+approximately one working directory for each developer
+(either the entire tree or a portion of it, depending
+on what each developer uses).
+</p>
+<p>The repository should be accessible
+(directly or via a networked file system) from all
+machines which want to use <small>CVS</small> in server or local
+mode; the client machines need not have any access to
+it other than via the <small>CVS</small> protocol.  It is not
+possible to use <small>CVS</small> to read from a repository
+which one only has read access to; <small>CVS</small> needs to be
+able to create lock files (see <a href="#Concurrency">Concurrency</a>).
+</p>
+<a name="index-init-_0028subcommand_0029"></a>
+<p>To create a repository, run the <code>cvs init</code>
+command.  It will set up an empty repository in the
+<small>CVS</small> root specified in the usual way
+(see <a href="#Repository">Repository</a>).  For example,
+</p>
+<div class="example">
+<pre class="example">cvs -d /usr/local/cvsroot init
+</pre></div>
+
+<p><code>cvs init</code> is careful to never overwrite any
+existing files in the repository, so no harm is done if
+you run <code>cvs init</code> on an already set-up
+repository.
+</p>
+<p><code>cvs init</code> will enable history logging; if you
+don&rsquo;t want that, remove the history file after running
+<code>cvs init</code>.  See <a href="#history-file">history file</a>.
+</p>
+<hr>
+<a name="Backing-up"></a>
+<div class="header">
+<p>
+Next: <a href="#Moving-a-repository" accesskey="n" rel="next">Moving a 
repository</a>, Previous: <a href="#Creating-a-repository" accesskey="p" 
rel="prev">Creating a repository</a>, Up: <a href="#Repository" accesskey="u" 
rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Backing-up-a-repository"></a>
+<h3 class="section">2.7 Backing up a repository</h3>
+<a name="index-Repository_002c-backing-up"></a>
+<a name="index-Backing-up_002c-repository"></a>
+
+<p>There is nothing particularly magical about the files
+in the repository; for the most part it is possible to
+back them up just like any other files.  However, there
+are a few issues to consider.
+</p>
+<a name="index-Locks_002c-cvs_002c-and-backups"></a>
+<a name="index-_0023cvs_002erfl_002c-and-backups"></a>
+<p>The first is that to be paranoid, one should either not
+use <small>CVS</small> during the backup, or have the backup
+program lock <small>CVS</small> while doing the backup.  To not
+use <small>CVS</small>, you might forbid logins to machines which
+can access the repository, turn off your <small>CVS</small>
+server, or similar mechanisms.  The details would
+depend on your operating system and how you have
+<small>CVS</small> set up.  To lock <small>CVS</small>, you would create
+<samp>#cvs.rfl</samp> locks in each repository directory.
+See <a href="#Concurrency">Concurrency</a>, for more on <small>CVS</small> 
locks.
+Having said all this, if you just back up without any
+of these precautions, the results are unlikely to be
+particularly dire.  Restoring from backup, the
+repository might be in an inconsistent state, but this
+would not be particularly hard to fix manually.
+</p>
+<p>When you restore a repository from backup, assuming
+that changes in the repository were made after the time
+of the backup, working directories which were not
+affected by the failure may refer to revisions which no
+longer exist in the repository.  Trying to run <small>CVS</small>
+in such directories will typically produce an error
+message.  One way to get those changes back into the
+repository is as follows:
+</p>
+<ul>
+<li> Get a new working directory.
+
+</li><li> Copy the files from the working directory from before
+the failure over to the new working directory (do not
+copy the contents of the <samp>CVS</samp> directories, of
+course).
+
+</li><li> Working in the new working directory, use commands such
+as <code>cvs update</code> and <code>cvs diff</code> to figure out
+what has changed, and then when you are ready, commit
+the changes into the repository.
+</li></ul>
+
+<hr>
+<a name="Moving-a-repository"></a>
+<div class="header">
+<p>
+Next: <a href="#Remote-repositories" accesskey="n" rel="next">Remote 
repositories</a>, Previous: <a href="#Backing-up" accesskey="p" 
rel="prev">Backing up</a>, Up: <a href="#Repository" accesskey="u" 
rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Moving-a-repository-1"></a>
+<h3 class="section">2.8 Moving a repository</h3>
+<a name="index-Repository_002c-moving"></a>
+<a name="index-Moving-a-repository"></a>
+<a name="index-Copying-a-repository"></a>
+
+<p>Just as backing up the files in the repository is
+pretty much like backing up any other files, if you
+need to move a repository from one place to another it
+is also pretty much like just moving any other
+collection of files.
+</p>
+<p>The main thing to consider is that working directories
+point to the repository.  The simplest way to deal with
+a moved repository is to just get a fresh working
+directory after the move.  Of course, you&rsquo;ll want to
+make sure that the old working directory had been
+checked in before the move, or you figured out some
+other way to make sure that you don&rsquo;t lose any
+changes.  If you really do want to reuse the existing
+working directory, it should be possible with manual
+surgery on the <samp>CVS/Repository</samp> files.  You can
+see <a href="#Working-directory-storage">Working directory storage</a>, for 
information on
+the <samp>CVS/Repository</samp> and <samp>CVS/Root</samp> files, but
+unless you are sure you want to bother, it probably
+isn&rsquo;t worth it.
+</p>
+<hr>
+<a name="Remote-repositories"></a>
+<div class="header">
+<p>
+Next: <a href="#Read_002donly-access" accesskey="n" rel="next">Read-only 
access</a>, Previous: <a href="#Moving-a-repository" accesskey="p" 
rel="prev">Moving a repository</a>, Up: <a href="#Repository" accesskey="u" 
rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Remote-repositories-1"></a>
+<h3 class="section">2.9 Remote repositories</h3>
+<a name="index-Repositories_002c-remote"></a>
+<a name="index-Remote-repositories"></a>
+<a name="index-Client_002fServer-Operation"></a>
+<a name="index-Server_002c-CVS"></a>
+<a name="index-Remote-repositories_002c-port-specification"></a>
+<a name="index-Repositories_002c-remote_002c-port-specification"></a>
+<a name="index-Client_002fServer-Operation_002c-port-specification"></a>
+<a 
name="index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification"></a>
+<a 
name="index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification"></a>
+<a 
name="index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification"></a>
+<a name="index-port_002c-specifying-for-remote-repositories"></a>
+
+<p>Your working copy of the sources can be on a
+different machine than the repository.  Using <small>CVS</small>
+in this manner is known as <em>client/server</em>
+operation.  You run <small>CVS</small> on a machine which can
+mount your working directory, known as the
+<em>client</em>, and tell it to communicate to a machine
+which can mount the repository, known as the
+<em>server</em>.  Generally, using a remote
+repository is just like using a local one, except that
+the format of the repository name is:
+</p>
+<div class="example">
+<pre 
class="example">[:<var>method</var>:][[<var>user</var>][:<var>password</var>address@hidden<var>hostname</var>[:[<var>port</var>]]/path/to/repository
+</pre></div>
+
+<p>Specifying a password in the repository name is not recommended during
+checkout, since this will cause <small>CVS</small> to store a cleartext copy 
of the
+password in each created directory.  <code>cvs login</code> first instead
+(see <a href="#Password-authentication-client">Password authentication 
client</a>).
+</p>
+<p>The details of exactly what needs to be set up depend
+on how you are connecting to the server.
+</p>
+<p>If <var>method</var> is not specified, and the repository
+name contains &lsquo;<samp>:</samp>&rsquo;, then the default is 
<code>ext</code>
+or <code>server</code>, depending on your platform; both are
+described in <a href="#Connecting-via-rsh">Connecting via rsh</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Server-requirements" 
accesskey="1">Server requirements</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Memory and other resources for servers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Connecting-via-rsh" 
accesskey="2">Connecting via rsh</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Using the <code>rsh</code> program to connect
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Password-authenticated" 
accesskey="3">Password authenticated</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Direct connections using passwords
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#GSSAPI-authenticated" 
accesskey="4">GSSAPI authenticated</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Direct connections using GSSAPI
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Kerberos-authenticated" 
accesskey="5">Kerberos authenticated</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Direct connections with Kerberos
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Connecting-via-fork" 
accesskey="6">Connecting via fork</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Using a forked <code>cvs server</code> to connect
+</td></tr>
+</table>
+
+<hr>
+<a name="Server-requirements"></a>
+<div class="header">
+<p>
+Next: <a href="#Connecting-via-rsh" accesskey="n" rel="next">Connecting via 
rsh</a>, Up: <a href="#Remote-repositories" accesskey="u" rel="up">Remote 
repositories</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Server-requirements-1"></a>
+<h4 class="subsection">2.9.1 Server requirements</h4>
+
+<p>The quick answer to what sort of machine is suitable as
+a server is that requirements are modest&mdash;a server
+with 32M of memory or even less can handle a fairly
+large source tree with a fair amount of activity.
+</p>
+<p>The real answer, of course, is more complicated.
+Estimating the known areas of large memory consumption
+should be sufficient to estimate memory requirements.
+There are two such areas documented here; other memory
+consumption should be small by comparison (if you find
+that is not the case, let us know, as described in
+<a href="#BUGS">BUGS</a>, so we can update this documentation).
+</p>
+<p>The first area of big memory consumption is large
+checkouts, when using the <small>CVS</small> server.  The server
+consists of two processes for each client that it is
+serving.  Memory consumption on the child process
+should remain fairly small.  Memory consumption on the
+parent process, particularly if the network connection
+to the client is slow, can be expected to grow to
+slightly more than the size of the sources in a single
+directory, or two megabytes, whichever is larger.
+</p>
+<p>Multiplying the size of each <small>CVS</small> server by the
+number of servers which you expect to have active at
+one time should give an idea of memory requirements for
+the server.  For the most part, the memory consumed by
+the parent process probably can be swap space rather
+than physical memory.
+</p>
+
+<p>The second area of large memory consumption is
+<code>diff</code>, when checking in large files.  This is
+required even for binary files.  The rule of thumb is
+to allow about ten times the size of the largest file
+you will want to check in, although five times may be
+adequate.  For example, if you want to check in a file
+which is 10 megabytes, you should have 100 megabytes of
+memory on the machine doing the checkin (the server
+machine for client/server, or the machine running
+<small>CVS</small> for non-client/server).  This can be swap
+space rather than physical memory.  Because the memory
+is only required briefly, there is no particular need
+to allow memory for more than one such checkin at a
+time.
+</p>
+<p>Resource consumption for the client is even more
+modest&mdash;any machine with enough capacity to run the
+operating system in question should have little
+trouble.
+</p>
+<p>For information on disk space requirements, see
+<a href="#Creating-a-repository">Creating a repository</a>.
+</p>
+<hr>
+<a name="Connecting-via-rsh"></a>
+<div class="header">
+<p>
+Next: <a href="#Password-authenticated" accesskey="n" rel="next">Password 
authenticated</a>, Previous: <a href="#Server-requirements" accesskey="p" 
rel="prev">Server requirements</a>, Up: <a href="#Remote-repositories" 
accesskey="u" rel="up">Remote repositories</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Connecting-with-rsh-or-ssh"></a>
+<h4 class="subsection">2.9.2 Connecting with rsh or ssh</h4>
+
+<a name="index-ssh"></a>
+<p><small>CVS</small> may use the &lsquo;<samp>ssh</samp>&rsquo; protocol to 
perform
+these operations, so the remote user host needs to have
+a either an agent like <code>ssh-agent</code> to hold
+credentials or a <samp>.shosts</samp> file which grants
+access to the local user. Note that the program that
+<small>CVS</small> uses for this purpose may be specified using
+the <samp>--with-ssh</samp> flag to configure.
+</p>
+<a name="index-rsh"></a>
+<p><small>CVS</small> uses the &lsquo;<samp>rsh</samp>&rsquo; protocol to 
perform these
+operations, so the remote user host needs to have a
+<samp>.rhosts</samp> file which grants access to the local
+user. Note that the program that <small>CVS</small> uses for this
+purpose may be specified using the <samp>--with-rsh</samp>
+flag to configure.
+</p>
+<p>For example, suppose you are the user &lsquo;<samp>mozart</samp>&rsquo; on
+the local machine &lsquo;<samp>toe.example.com</samp>&rsquo;, and the
+server machine is &lsquo;<samp>faun.example.org</samp>&rsquo;.  On
+faun, put the following line into the file
+<samp>.rhosts</samp> in &lsquo;<samp>bach</samp>&rsquo;&rsquo;s home directory:
+</p>
+<div class="example">
+<pre class="example">toe.example.com  mozart
+</pre></div>
+
+<p>Then test that &lsquo;<samp>rsh</samp>&rsquo; is working with
+</p>
+<div class="example">
+<pre class="example">rsh -l bach faun.example.org 'echo $PATH'
+</pre></div>
+
+<p>To test that &lsquo;<samp>ssh</samp>&rsquo; is working use
+</p>
+<div class="example">
+<pre class="example">ssh -l bach faun.example.org 'echo $PATH'
+</pre></div>
+
+<a name="index-CVS_005fSERVER_002c-environment-variable"></a>
+<p>Next you have to make sure that <code>rsh</code> will be able
+to find the server.  Make sure that the path which
+<code>rsh</code> printed in the above example includes the
+directory containing a program named <code>cvs</code> which
+is the server.  You need to set the path in
+<samp>.bashrc</samp>, <samp>.cshrc</samp>, etc., not <samp>.login</samp>
+or <samp>.profile</samp>.  Alternately, you can set the
+environment variable <code>CVS_SERVER</code> on the client
+machine to the filename of the server you want to use,
+for example <samp>/usr/local/bin/cvs-1.6</samp>.
+</p>
+<p>There is no need to edit <samp>inetd.conf</samp> or start a
+<small>CVS</small> server daemon.
+</p>
+<a name="index-_003aserver_003a_002c-setting-up"></a>
+<a name="index-_003aext_003a_002c-setting-up"></a>
+<a name="index-_003aextssh_003a_002c-setting-up"></a>
+<a name="index-Kerberos_002c-using-kerberized-rsh"></a>
+<a name="index-SSH-_0028rsh-replacement_0029"></a>
+<a name="index-rsh-replacements-_0028Kerberized_002c-SSH_002c-_0026c_0029"></a>
+<p>There are three access methods that you use in <code>CVSROOT</code>
+for rsh or ssh.  <code>:server:</code> specifies an internal rsh
+client, which is supported only by some <small>CVS</small> ports.
+<code>:extssh:</code> specifies an external ssh program. By
+default this is <code>ssh</code> (unless otherwise specified
+by the <samp>--with-ssh</samp> flag to configure) but you may set the
+<code>CVS_SSH</code> environment variable to invoke another
+program or wrapper script.
+<code>:ext:</code> specifies an external rsh program.  By
+default this is <code>rsh</code> (unless otherwise specified
+by the <samp>--with-rsh</samp> flag to configure) but you may set the
+<code>CVS_RSH</code> environment variable to invoke another
+program which can access the remote server (for
+example, <code>remsh</code> on HP-UX 9 because <code>rsh</code> is
+something different).  It must be a program which can
+transmit data to and from the server without modifying
+it; for example the Windows NT <code>rsh</code> is not
+suitable since it by default translates between CRLF
+and LF.  The OS/2 <small>CVS</small> port has a hack to pass 
&lsquo;<samp>-b</samp>&rsquo;
+to <code>rsh</code> to get around this, but since this could
+potentially cause problems for programs other than the
+standard <code>rsh</code>, it may change in the future.  If
+you set <code>CVS_RSH</code> to <code>SSH</code> or some other rsh
+replacement, the instructions in the rest of this
+section concerning <samp>.rhosts</samp> and so on are likely
+to be inapplicable; consult the documentation for your rsh
+replacement.
+</p>
+<p>Continuing our example, supposing you want to access
+the module <samp>foo</samp> in the repository
+<samp>/usr/local/cvsroot/</samp>, on machine
+<samp>faun.example.org</samp>, you are ready to go:
+</p>
+<div class="example">
+<pre class="example">cvs -d :ext:address@hidden:/usr/local/cvsroot checkout foo
+</pre></div>
+
+<p>(The <samp>bach@</samp> can be omitted if the username is
+the same on both the local and remote hosts.)
+</p>
+
+<hr>
+<a name="Password-authenticated"></a>
+<div class="header">
+<p>
+Next: <a href="#GSSAPI-authenticated" accesskey="n" rel="next">GSSAPI 
authenticated</a>, Previous: <a href="#Connecting-via-rsh" accesskey="p" 
rel="prev">Connecting via rsh</a>, Up: <a href="#Remote-repositories" 
accesskey="u" rel="up">Remote repositories</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Direct-connection-with-password-authentication"></a>
+<h4 class="subsection">2.9.3 Direct connection with password 
authentication</h4>
+
+<p>The <small>CVS</small> client can also connect to the server
+using a password protocol.  This is particularly useful
+if using <code>rsh</code> is not feasible (for example,
+the server is behind a firewall), and Kerberos also is
+not available.
+</p>
+<p>To use this method, it is necessary to make
+some adjustments on both the server and client sides.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="#Password-authentication-server" accesskey="1">Password authentication 
server</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Setting up 
the server
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Password-authentication-client" accesskey="2">Password authentication 
client</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using the 
client
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Password-authentication-security" accesskey="3">Password authentication 
security</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What this 
method does and does not do
+</td></tr>
+</table>
+
+<hr>
+<a name="Password-authentication-server"></a>
+<div class="header">
+<p>
+Next: <a href="#Password-authentication-client" accesskey="n" 
rel="next">Password authentication client</a>, Up: <a 
href="#Password-authenticated" accesskey="u" rel="up">Password 
authenticated</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Setting-up-the-server-for-password-authentication"></a>
+<h4 class="subsubsection">2.9.3.1 Setting up the server for password 
authentication</h4>
+
+<p>First of all, you probably want to tighten the
+permissions on the <samp>$CVSROOT</samp> and
+<samp>$CVSROOT/CVSROOT</samp> directories.  See <a 
href="#Password-authentication-security">Password authentication security</a>, 
for more details.
+</p>
+<a name="index-pserver-_0028subcommand_0029"></a>
+<a name="index-Remote-repositories_002c-port-specification-1"></a>
+<a name="index-Repositories_002c-remote_002c-port-specification-1"></a>
+<a name="index-Client_002fServer-Operation_002c-port-specification-1"></a>
+<a 
name="index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1"></a>
+<a 
name="index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1"></a>
+<a 
name="index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1"></a>
+<a name="index-port_002c-specifying-for-remote-repositories-1"></a>
+<a name="index-Password-server_002c-setting-up"></a>
+<a name="index-Authenticating-server_002c-setting-up"></a>
+<a name="index-inetd_002c-configuring-for-pserver"></a>
+<a name="index-xinetd_002c-configuring-for-pserver"></a>
+<p>On the server side, the file <samp>/etc/inetd.conf</samp>
+needs to be edited so <code>inetd</code> knows to run the
+command <code>cvs pserver</code> when it receives a
+connection on the right port.  By default, the port
+number is 2401; it would be different if your client
+were compiled with <code>CVS_AUTH_PORT</code> defined to
+something else, though.  This can also be specified in the CVSROOT variable
+(see <a href="#Remote-repositories">Remote repositories</a>) or overridden 
with the CVS_CLIENT_PORT
+environment variable (see <a href="#Environment-variables">Environment 
variables</a>).
+</p>
+<p>If your <code>inetd</code> allows raw port numbers in
+<samp>/etc/inetd.conf</samp>, then the following (all on a
+single line in <samp>inetd.conf</samp>) should be sufficient:
+</p>
+<div class="example">
+<pre class="example">2401  stream  tcp  nowait  root  /usr/local/bin/cvs
+cvs -f --allow-root=/usr/cvsroot pserver
+</pre></div>
+
+<p>(You could also use the
+&lsquo;<samp>-T</samp>&rsquo; option to specify a temporary directory.)
+</p>
+<p>The &lsquo;<samp>--allow-root</samp>&rsquo; option specifies the allowable
+<small>CVSROOT</small> directory.  Clients which attempt to use a
+different <small>CVSROOT</small> directory will not be allowed to
+connect.  If there is more than one <small>CVSROOT</small>
+directory which you want to allow, repeat the option.
+Unfortunately, many versions of <code>inetd</code> have very small
+limits on the number of arguments and/or the total length
+of the command.  The usual solution to this problem is
+to have <code>inetd</code> run a shell script which then invokes
+<small>CVS</small> with the necessary arguments:
+</p>
+<div class="example">
+<pre class="example">#! /bin/sh
+exec /usr/local/bin/cvs -f \
+     --allow-root=/repo1 \
+     --allow-root=/repo2 \
+     ...
+     --allow-root=/repo<var>N</var> \
+     pserver
+</pre></div>
+
+<p>If your <code>inetd</code> wants a symbolic service
+name instead of a raw port number, then put this in
+<samp>/etc/services</samp>:
+</p>
+<div class="example">
+<pre class="example">cvspserver      2401/tcp
+</pre></div>
+
+<p>and put <code>cvspserver</code> instead of <code>2401</code> in 
<samp>inetd.conf</samp>.
+</p>
+<p>If your system uses <code>xinetd</code> instead of <code>inetd</code>,
+the procedure is slightly different.
+Create a file called <samp>/etc/xinetd.d/cvspserver</samp> containing the 
following:
+</p>
+<div class="example">
+<pre class="example">service cvspserver
+{
+   port        = 2401
+   socket_type = stream
+   protocol    = tcp
+   wait        = no
+   user        = root
+   passenv     = PATH
+   server      = /usr/local/bin/cvs
+   server_args = -f --allow-root=/usr/cvsroot pserver
+}
+</pre></div>
+
+<p>(If <code>cvspserver</code> is defined in <samp>/etc/services</samp>, you 
can omit
+the <code>port</code> line.)
+</p>
+<p>Once the above is taken care of, restart your
+<code>inetd</code>, or do whatever is necessary to force it
+to reread its initialization files.
+</p>
+<p>If you are having trouble setting this up, see
+<a href="#Connection">Connection</a>.
+</p>
+<a name="index-CVS-passwd-file"></a>
+<a name="index-passwd-_0028admin-file_0029"></a>
+<p>Because the client stores and transmits passwords in
+cleartext (almost&mdash;see <a 
href="#Password-authentication-security">Password authentication security</a>, 
for details), a separate <small>CVS</small> password
+file is generally used, so people don&rsquo;t compromise
+their regular passwords when they access the
+repository.  This file is
+<samp>$CVSROOT/CVSROOT/passwd</samp> (see <a 
href="#Intro-administrative-files">Intro administrative files</a>).  It uses a 
colon-separated
+format, similar to <samp>/etc/passwd</samp> on Unix systems,
+except that it has fewer fields: <small>CVS</small> username,
+optional password, and an optional system username for
+<small>CVS</small> to run as if authentication succeeds.  Here is
+an example <samp>passwd</samp> file with five entries:
+</p>
+<div class="example">
+<pre class="example">anonymous:
+bach:ULtgRLXo7NRxs
+spwang:1sOp854gDF3DY
+melissa:tGX1fS8sun6rY:pubcvs
+qproj:XR4EZcEs0szik:pubcvs
+</pre></div>
+
+<p>(The passwords are encrypted according to the standard
+Unix <code>crypt()</code> function, so it is possible to
+paste in passwords directly from regular Unix
+<samp>/etc/passwd</samp> files.)
+</p>
+<p>The first line in the example will grant access to any
+<small>CVS</small> client attempting to authenticate as user
+<code>anonymous</code>, no matter what password they use,
+including an empty password.  (This is typical for
+sites granting anonymous read-only access; for
+information on how to do the &quot;read-only&quot; part, see
+<a href="#Read_002donly-access">Read-only access</a>.)
+</p>
+<p>The second and third lines will grant access to
+<code>bach</code> and <code>spwang</code> if they supply their
+respective plaintext passwords.
+</p>
+<a name="index-User-aliases"></a>
+<p>The fourth line will grant access to <code>melissa</code>, if
+she supplies the correct password, but her <small>CVS</small>
+operations will actually run on the server side under
+the system user <code>pubcvs</code>.  Thus, there need not be
+any system user named <code>melissa</code>, but there
+<em>must</em> be one named <code>pubcvs</code>.
+</p>
+<p>The fifth line shows that system user identities can be
+shared: any client who successfully authenticates as
+<code>qproj</code> will actually run as <code>pubcvs</code>, just
+as <code>melissa</code> does.  That way you could create a
+single, shared system user for each project in your
+repository, and give each developer their own line in
+the <samp>$CVSROOT/CVSROOT/passwd</samp> file.  The <small>CVS</small>
+username on each line would be different, but the
+system username would be the same.  The reason to have
+different <small>CVS</small> usernames is that <small>CVS</small> will log 
their
+actions under those names: when <code>melissa</code> commits
+a change to a project, the checkin is recorded in the
+project&rsquo;s history under the name <code>melissa</code>, not
+<code>pubcvs</code>.  And the reason to have them share a
+system username is so that you can arrange permissions
+in the relevant area of the repository such that only
+that account has write-permission there.
+</p>
+<p>If the system-user field is present, all
+password-authenticated <small>CVS</small> commands run as that
+user; if no system user is specified, <small>CVS</small> simply
+takes the <small>CVS</small> username as the system username and
+runs commands as that user.  In either case, if there
+is no such user on the system, then the <small>CVS</small>
+operation will fail (regardless of whether the client
+supplied a valid password).
+</p>
+<p>The password and system-user fields can both be omitted
+(and if the system-user field is omitted, then also
+omit the colon that would have separated it from the
+encrypted password).  For example, this would be a
+valid <samp>$CVSROOT/CVSROOT/passwd</samp> file:
+</p>
+<div class="example">
+<pre class="example">anonymous::pubcvs
+fish:rKa5jzULzmhOo:kfogel
+sussman:1sOp854gDF3DY
+</pre></div>
+
+<p>When the password field is omitted or empty, then the
+client&rsquo;s authentication attempt will succeed with any
+password, including the empty string.  However, the
+colon after the <small>CVS</small> username is always necessary,
+even if the password is empty.
+</p>
+<p><small>CVS</small> can also fall back to use system authentication.
+When authenticating a password, the server first checks
+for the user in the <samp>$CVSROOT/CVSROOT/passwd</samp>
+file.  If it finds the user, it will use that entry for
+authentication as described above.  But if it does not
+find the user, or if the <small>CVS</small> <samp>passwd</samp> file
+does not exist, then the server can try to authenticate
+the username and password using the operating system&rsquo;s
+user-lookup routines (this &quot;fallback&quot; behavior can be
+disabled by setting <code>SystemAuth=no</code> in the
+<small>CVS</small> <samp>config</samp> file, see <a 
href="#config">config</a>).  Be
+aware, however, that falling back to system
+authentication might be a security risk: <small>CVS</small>
+operations would then be authenticated with that user&rsquo;s
+regular login password, and the password flies across
+the network in plaintext.  See <a 
href="#Password-authentication-security">Password authentication security</a> 
for more on this.
+</p>
+<p>Right now, the only way to put a password in the
+<small>CVS</small> <samp>passwd</samp> file is to paste it there from
+somewhere else.  Someday, there may be a <code>cvs
+passwd</code> command.
+</p>
+<p>Unlike many of the files in <samp>$CVSROOT/CVSROOT</samp>, it
+is normal to edit the <samp>passwd</samp> file in-place,
+rather than via <small>CVS</small>.  This is because of the
+possible security risks of having the <samp>passwd</samp>
+file checked out to people&rsquo;s working copies.  If you do
+want to include the <samp>passwd</samp> file in checkouts of
+<samp>$CVSROOT/CVSROOT</samp>, see <a href="#checkoutlist">checkoutlist</a>.
+</p>
+
+<hr>
+<a name="Password-authentication-client"></a>
+<div class="header">
+<p>
+Next: <a href="#Password-authentication-security" accesskey="n" 
rel="next">Password authentication security</a>, Previous: <a 
href="#Password-authentication-server" accesskey="p" rel="prev">Password 
authentication server</a>, Up: <a href="#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Using-the-client-with-password-authentication"></a>
+<h4 class="subsubsection">2.9.3.2 Using the client with password 
authentication</h4>
+<a name="index-Login-_0028subcommand_0029"></a>
+<a name="index-Password-client_002c-using"></a>
+<a name="index-Authenticated-client_002c-using"></a>
+<a name="index-_003apserver_003a_002c-setting-up"></a>
+<p>To run a <small>CVS</small> command on a remote repository via
+the password-authenticating server, one specifies the
+<code>pserver</code> protocol, optional username, repository host, an
+optional port number, and path to the repository.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs -d :pserver:faun.example.org:/usr/local/cvsroot 
checkout someproj
+</pre></div>
+
+<p>or
+</p>
+<div class="example">
+<pre class="example">CVSROOT=:pserver:address@hidden:2401/usr/local/cvsroot
+cvs checkout someproj
+</pre></div>
+
+<p>However, unless you&rsquo;re connecting to a public-access
+repository (i.e., one where that username doesn&rsquo;t
+require a password), you&rsquo;ll need to supply a password or <em>log in</em> 
first.
+Logging in verifies your password with the repository and stores it in a file.
+It&rsquo;s done with the <code>login</code> command, which will
+prompt you interactively for the password if you didn&rsquo;t supply one as 
part of
+<var>$CVSROOT</var>:
+</p>
+<div class="example">
+<pre class="example">cvs -d :pserver:address@hidden:/usr/local/cvsroot login
+CVS password:
+</pre></div>
+
+<p>or
+</p>
+<div class="example">
+<pre class="example">cvs -d :pserver:bach:address@hidden:/usr/local/cvsroot 
login
+</pre></div>
+
+<p>After you enter the password, <small>CVS</small> verifies it with
+the server.  If the verification succeeds, then that
+combination of username, host, repository, and password
+is permanently recorded, so future transactions with
+that repository won&rsquo;t require you to run <code>cvs
+login</code>.  (If verification fails, <small>CVS</small> will exit
+complaining that the password was incorrect, and
+nothing will be recorded.)
+</p>
+<p>The records are stored, by default, in the file
+<samp>$HOME/.cvspass</samp>.  That file&rsquo;s format is
+human-readable, and to a degree human-editable, but
+note that the passwords are not stored in
+cleartext&mdash;they are trivially encoded to protect them
+from &quot;innocent&quot; compromise (i.e., inadvertent viewing
+by a system administrator or other non-malicious
+person).
+</p>
+<a name="index-CVS_005fPASSFILE_002c-environment-variable"></a>
+<p>You can change the default location of this file by
+setting the <code>CVS_PASSFILE</code> environment variable.
+If you use this variable, make sure you set it
+<em>before</em> <code>cvs login</code> is run.  If you were to
+set it after running <code>cvs login</code>, then later
+<small>CVS</small> commands would be unable to look up the
+password for transmission to the server.
+</p>  
+<p>Once you have logged in, all <small>CVS</small> commands using
+that remote repository and username will authenticate
+with the stored password.  So, for example
+</p>  
+<div class="example">
+<pre class="example">cvs -d :pserver:address@hidden:/usr/local/cvsroot 
checkout foo
+</pre></div>
+
+<p>should just work (unless the password changes on the
+server side, in which case you&rsquo;ll have to re-run
+<code>cvs login</code>).
+</p>
+<p>Note that if the &lsquo;<samp>:pserver:</samp>&rsquo; were not present in
+the repository specification, <small>CVS</small> would assume it
+should use <code>rsh</code> to connect with the server
+instead (see <a href="#Connecting-via-rsh">Connecting via rsh</a>).
+</p>
+<p>Of course, once you have a working copy checked out and
+are running <small>CVS</small> commands from within it, there is
+no longer any need to specify the repository
+explicitly, because <small>CVS</small> can deduce the repository
+from the working copy&rsquo;s <samp>CVS</samp> subdirectory.
+</p>
+<a name="index-Logout-_0028subcommand_0029"></a>
+<p>The password for a given remote repository can be
+removed from the <code>CVS_PASSFILE</code> by using the
+<code>cvs logout</code> command.
+</p>
+<hr>
+<a name="Password-authentication-security"></a>
+<div class="header">
+<p>
+Previous: <a href="#Password-authentication-client" accesskey="p" 
rel="prev">Password authentication client</a>, Up: <a 
href="#Password-authenticated" accesskey="u" rel="up">Password 
authenticated</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Security-considerations-with-password-authentication"></a>
+<h4 class="subsubsection">2.9.3.3 Security considerations with password 
authentication</h4>
+
+<a name="index-Security_002c-of-pserver"></a>
+<p>The passwords are stored on the client side in a
+trivial encoding of the cleartext, and transmitted in
+the same encoding.  The encoding is done only to
+prevent inadvertent password compromises (i.e., a
+system administrator accidentally looking at the file),
+and will not prevent even a naive attacker from gaining
+the password.
+</p>
+<p>The separate <small>CVS</small> password file (see <a 
href="#Password-authentication-server">Password authentication server</a>) 
allows people
+to use a different password for repository access than
+for login access.  On the other hand, once a user has
+non-read-only
+access to the repository, she can execute programs on
+the server system through a variety of means.  Thus, repository
+access implies fairly broad system access as well.  It
+might be possible to modify <small>CVS</small> to prevent that,
+but no one has done so as of this writing.
+</p>
+<p>Note that because the <samp>$CVSROOT/CVSROOT</samp> directory
+contains <samp>passwd</samp> and other files which are used
+to check security, you must control the permissions on
+this directory as tightly as the permissions on
+<samp>/etc</samp>.  The same applies to the <samp>$CVSROOT</samp>
+directory itself and any directory
+above it in the tree.  Anyone who has write access to
+such a directory will have the ability to become any
+user on the system.  Note that these permissions are
+typically tighter than you would use if you are not
+using pserver.
+</p>
+<p>In summary, anyone who gets the password gets
+repository access (which may imply some measure of general system
+access as well).  The password is available to anyone
+who can sniff network packets or read a protected
+(i.e., user read-only) file.  If you want real
+security, get Kerberos.
+</p>
+<hr>
+<a name="GSSAPI-authenticated"></a>
+<div class="header">
+<p>
+Next: <a href="#Kerberos-authenticated" accesskey="n" rel="next">Kerberos 
authenticated</a>, Previous: <a href="#Password-authenticated" accesskey="p" 
rel="prev">Password authenticated</a>, Up: <a href="#Remote-repositories" 
accesskey="u" rel="up">Remote repositories</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Direct-connection-with-GSSAPI"></a>
+<h4 class="subsection">2.9.4 Direct connection with GSSAPI</h4>
+
+<a name="index-GSSAPI"></a>
+<a name="index-Security_002c-GSSAPI"></a>
+<a name="index-_003agserver_003a_002c-setting-up"></a>
+<a name="index-Kerberos_002c-using-_003agserver_003a"></a>
+<p>GSSAPI is a generic interface to network security
+systems such as Kerberos 5.
+If you have a working GSSAPI library, you can have
+<small>CVS</small> connect via a direct <small>TCP</small> connection,
+authenticating with GSSAPI.
+</p>
+<p>To do this, <small>CVS</small> needs to be compiled with GSSAPI
+support; when configuring <small>CVS</small> it tries to detect
+whether GSSAPI libraries using Kerberos version 5 are
+present.  You can also use the <samp>--with-gssapi</samp>
+flag to configure.
+</p>
+<p>The connection is authenticated using GSSAPI, but the
+message stream is <em>not</em> authenticated by default.
+You must use the <code>-a</code> global option to request
+stream authentication.
+</p>
+<p>The data transmitted is <em>not</em> encrypted by
+default.  Encryption support must be compiled into both
+the client and the server; use the
+<samp>--enable-encrypt</samp> configure option to turn it on.
+You must then use the <code>-x</code> global option to
+request encryption.
+</p>
+<p>GSSAPI connections are handled on the server side by
+the same server which handles the password
+authentication server; see <a href="#Password-authentication-server">Password 
authentication server</a>.  If you are using a GSSAPI mechanism such as
+Kerberos which provides for strong authentication, you
+will probably want to disable the ability to
+authenticate via cleartext passwords.  To do so, create
+an empty <samp>CVSROOT/passwd</samp> password file, and set
+<code>SystemAuth=no</code> in the config file
+(see <a href="#config">config</a>).
+</p>
+<p>The GSSAPI server uses a principal name of
+cvs/<var>hostname</var>, where <var>hostname</var> is the
+canonical name of the server host.  You will have to
+set this up as required by your GSSAPI mechanism.
+</p>
+<p>To connect using GSSAPI, use the &lsquo;<samp>:gserver:</samp>&rsquo; 
method.  For
+example,
+</p>
+<div class="example">
+<pre class="example">cvs -d :gserver:faun.example.org:/usr/local/cvsroot 
checkout foo
+</pre></div>
+
+<hr>
+<a name="Kerberos-authenticated"></a>
+<div class="header">
+<p>
+Next: <a href="#Connecting-via-fork" accesskey="n" rel="next">Connecting via 
fork</a>, Previous: <a href="#GSSAPI-authenticated" accesskey="p" 
rel="prev">GSSAPI authenticated</a>, Up: <a href="#Remote-repositories" 
accesskey="u" rel="up">Remote repositories</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Direct-connection-with-Kerberos"></a>
+<h4 class="subsection">2.9.5 Direct connection with Kerberos</h4>
+
+<a name="index-Kerberos_002c-using-_003akserver_003a"></a>
+<a name="index-Security_002c-Kerberos"></a>
+<a name="index-_003akserver_003a_002c-setting-up"></a>
+<p>The easiest way to use Kerberos is to use the Kerberos
+<code>rsh</code>, as described in <a href="#Connecting-via-rsh">Connecting via 
rsh</a>.
+The main disadvantage of using rsh is that all the data
+needs to pass through additional programs, so it may be
+slower.  So if you have Kerberos installed you can
+connect via a direct <small>TCP</small> connection,
+authenticating with Kerberos.
+</p>
+<p>This section concerns the Kerberos network security
+system, version 4.  Kerberos version 5 is supported via
+the GSSAPI generic network security interface, as
+described in the previous section.
+</p>
+<p>To do this, <small>CVS</small> needs to be compiled with Kerberos
+support; when configuring <small>CVS</small> it tries to detect
+whether Kerberos is present or you can use the
+<samp>--with-krb4</samp> flag to configure.
+</p>
+<p>The data transmitted is <em>not</em> encrypted by
+default.  Encryption support must be compiled into both
+the client and server; use the
+<samp>--enable-encryption</samp> configure option to turn it
+on.  You must then use the <code>-x</code> global option to
+request encryption.
+</p>
+<a name="index-CVS_005fCLIENT_005fPORT"></a>
+<p>You need to edit <samp>inetd.conf</samp> on the server
+machine to run <code>cvs kserver</code>.  The client uses
+port 1999 by default; if you want to use another port
+specify it in the <code>CVSROOT</code> (see <a 
href="#Remote-repositories">Remote repositories</a>)
+or the <code>CVS_CLIENT_PORT</code> environment variable
+(see <a href="#Environment-variables">Environment variables</a>) on the client.
+</p>
+<a name="index-kinit"></a>
+<p>When you want to use <small>CVS</small>, get a ticket in the
+usual way (generally <code>kinit</code>); it must be a ticket
+which allows you to log into the server machine.  Then
+you are ready to go:
+</p>
+<div class="example">
+<pre class="example">cvs -d :kserver:faun.example.org:/usr/local/cvsroot 
checkout foo
+</pre></div>
+
+<p>Previous versions of <small>CVS</small> would fall back to a
+connection via rsh; this version will not do so.
+</p>
+<hr>
+<a name="Connecting-via-fork"></a>
+<div class="header">
+<p>
+Previous: <a href="#Kerberos-authenticated" accesskey="p" rel="prev">Kerberos 
authenticated</a>, Up: <a href="#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Connecting-with-fork"></a>
+<h4 class="subsection">2.9.6 Connecting with fork</h4>
+
+<a name="index-fork_002c-access-method"></a>
+<a name="index-_003afork_003a_002c-setting-up"></a>
+<p>This access method allows you to connect to a
+repository on your local disk via the remote protocol.
+In other words it does pretty much the same thing as
+<code>:local:</code>, but various quirks, bugs and the like are
+those of the remote <small>CVS</small> rather than the local
+<small>CVS</small>.
+</p>
+<p>For day-to-day operations you might prefer either
+<code>:local:</code> or <code>:fork:</code>, depending on your
+preferences.  Of course <code>:fork:</code> comes in
+particularly handy in testing or
+debugging <code>cvs</code> and the remote protocol.
+Specifically, we avoid all of the network-related
+setup/configuration, timeouts, and authentication
+inherent in the other remote access methods but still
+create a connection which uses the remote protocol.
+</p>
+<p>To connect using the <code>fork</code> method, use
+&lsquo;<samp>:fork:</samp>&rsquo; and the pathname to your local
+repository.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs -d :fork:/usr/local/cvsroot checkout foo
+</pre></div>
+
+<a name="index-CVS_005fSERVER_002c-and-_003afork_003a"></a>
+<p>As with <code>:ext:</code>, the server is called 
&lsquo;<samp>cvs</samp>&rsquo;
+by default, or the value of the <code>CVS_SERVER</code>
+environment variable.
+</p>
+<hr>
+<a name="Read_002donly-access"></a>
+<div class="header">
+<p>
+Next: <a href="#Server-temporary-directory" accesskey="n" rel="next">Server 
temporary directory</a>, Previous: <a href="#Remote-repositories" accesskey="p" 
rel="prev">Remote repositories</a>, Up: <a href="#Repository" accesskey="u" 
rel="up">Repository</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Read_002donly-repository-access"></a>
+<h3 class="section">2.10 Read-only repository access</h3>
+<a name="index-Read_002donly-repository-access"></a>
+<a name="index-readers-_0028admin-file_0029"></a>
+<a name="index-writers-_0028admin-file_0029"></a>
+
+<p>It is possible to grant read-only repository
+access to people using the password-authenticated
+server (see <a href="#Password-authenticated">Password authenticated</a>).  
(The
+other access methods do not have explicit support for
+read-only users because those methods all assume login
+access to the repository machine anyway, and therefore
+the user can do whatever local file permissions allow
+her to do.)
+</p>
+<p>A user who has read-only access can do only
+those <small>CVS</small> operations which do not modify the
+repository, except for certain &ldquo;administrative&rdquo; files
+(such as lock files and the history file).  It may be
+desirable to use this feature in conjunction with
+user-aliasing (see <a href="#Password-authentication-server">Password 
authentication server</a>).
+</p>
+<p>Unlike with previous versions of <small>CVS</small>, read-only
+users should be able merely to read the repository, and
+not to execute programs on the server or otherwise gain
+unexpected levels of access.  Or to be more accurate,
+the <em>known</em> holes have been plugged.  Because this
+feature is new and has not received a comprehensive
+security audit, you should use whatever level of
+caution seems warranted given your attitude concerning
+security.
+</p>
+<p>There are two ways to specify read-only access
+for a user: by inclusion, and by exclusion.
+</p>
+<p>&quot;Inclusion&quot; means listing that user
+specifically in the <samp>$CVSROOT/CVSROOT/readers</samp>
+file, which is simply a newline-separated list of
+users.  Here is a sample <samp>readers</samp> file:
+</p>
+<div class="example">
+<pre class="example">melissa
+splotnik
+jrandom
+</pre></div>
+
+<p>(Don&rsquo;t forget the newline after the last user.)
+</p>
+<p>&quot;Exclusion&quot; means explicitly listing everyone
+who has <em>write</em> access&mdash;if the file
+</p>
+<div class="example">
+<pre class="example">$CVSROOT/CVSROOT/writers
+</pre></div>
+
+<p>exists, then only
+those users listed in it have write access, and
+everyone else has read-only access (of course, even the
+read-only users still need to be listed in the
+<small>CVS</small> <samp>passwd</samp> file).  The
+<samp>writers</samp> file has the same format as the
+<samp>readers</samp> file.
+</p>
+<p>Note: if your <small>CVS</small> <samp>passwd</samp>
+file maps cvs users onto system users (see <a 
href="#Password-authentication-server">Password authentication server</a>), 
make sure you deny or grant
+read-only access using the <em>cvs</em> usernames, not
+the system usernames.  That is, the <samp>readers</samp> and
+<samp>writers</samp> files contain cvs usernames, which may
+or may not be the same as system usernames.
+</p>
+<p>Here is a complete description of the server&rsquo;s
+behavior in deciding whether to grant read-only or
+read-write access:
+</p>
+<p>If <samp>readers</samp> exists, and this user is
+listed in it, then she gets read-only access.  Or if
+<samp>writers</samp> exists, and this user is NOT listed in
+it, then she also gets read-only access (this is true
+even if <samp>readers</samp> exists but she is not listed
+there).  Otherwise, she gets full read-write access.
+</p>
+<p>Of course there is a conflict if the user is
+listed in both files.  This is resolved in the more
+conservative way, it being better to protect the
+repository too much than too little: such a user gets
+read-only access.
+</p>
+<hr>
+<a name="Server-temporary-directory"></a>
+<div class="header">
+<p>
+Previous: <a href="#Read_002donly-access" accesskey="p" rel="prev">Read-only 
access</a>, Up: <a href="#Repository" accesskey="u" rel="up">Repository</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Temporary-directories-for-the-server"></a>
+<h3 class="section">2.11 Temporary directories for the server</h3>
+<a name="index-Temporary-directories_002c-and-server"></a>
+<a name="index-Server_002c-temporary-directories"></a>
+
+<p>While running, the <small>CVS</small> server creates temporary
+directories.  They are named
+</p>
+<div class="example">
+<pre class="example">cvs-serv<var>pid</var>
+</pre></div>
+
+<p>where <var>pid</var> is the process identification number of
+the server.
+They are located in the directory specified by 
+the &lsquo;<samp>-T</samp>&rsquo; global option (see <a 
href="#Global-options">Global options</a>), 
+the <code>TMPDIR</code> environment variable (see <a 
href="#Environment-variables">Environment variables</a>), 
+or, failing that, <samp>/tmp</samp>.
+</p>
+<p>In most cases the server will remove the temporary
+directory when it is done, whether it finishes normally
+or abnormally.  However, there are a few cases in which
+the server does not or cannot remove the temporary
+directory, for example:
+</p>
+<ul>
+<li> If the server aborts due to an internal server error,
+it may preserve the directory to aid in debugging
+
+</li><li> If the server is killed in a way that it has no way of
+cleaning up (most notably, &lsquo;<samp>kill -KILL</samp>&rsquo; on unix).
+
+</li><li> If the system shuts down without an orderly shutdown,
+which tells the server to clean up.
+</li></ul>
+
+<p>In cases such as this, you will need to manually remove
+the <samp>cvs-serv<var>pid</var></samp> directories.  As long as
+there is no server running with process identification
+number <var>pid</var>, it is safe to do so.
+</p>
+<hr>
+<a name="Starting-a-new-project"></a>
+<div class="header">
+<p>
+Next: <a href="#Revisions" accesskey="n" rel="next">Revisions</a>, Previous: 
<a href="#Repository" accesskey="p" rel="prev">Repository</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Starting-a-project-with-CVS"></a>
+<h2 class="chapter">3 Starting a project with CVS</h2>
+<a name="index-Starting-a-project-with-CVS"></a>
+<a name="index-Creating-a-project"></a>
+
+<p>Because renaming files and moving them between
+directories is somewhat inconvenient, the first thing
+you do when you start a new project should be to think
+through your file organization.  It is not impossible
+to rename or move files, but it does increase the
+potential for confusion and <small>CVS</small> does have some
+quirks particularly in the area of renaming
+directories.  See <a href="#Moving-files">Moving files</a>.
+</p>
+<p>What to do next depends on the situation at hand.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Setting-up-the-files" 
accesskey="1">Setting up the files</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Getting the files into the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Defining-the-module" 
accesskey="2">Defining the module</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">How to make a module of the files
+</td></tr>
+</table>
+
+<hr>
+<a name="Setting-up-the-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Defining-the-module" accesskey="n" rel="next">Defining the 
module</a>, Up: <a href="#Starting-a-new-project" accesskey="u" 
rel="up">Starting a new project</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Setting-up-the-files-1"></a>
+<h3 class="section">3.1 Setting up the files</h3>
+
+<p>The first step is to create the files inside the repository.  This can
+be done in a couple of different ways.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#From-files" 
accesskey="1">From files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">This method is useful with old projects
+                                where files already exists.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#From-other-version-control-systems" accesskey="2">From other version 
control systems</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Old 
projects where you want to
+                                        preserve history from another system.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#From-scratch" 
accesskey="3">From scratch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creating a directory tree from scratch.
+</td></tr>
+</table>
+
+<hr>
+<a name="From-files"></a>
+<div class="header">
+<p>
+Next: <a href="#From-other-version-control-systems" accesskey="n" 
rel="next">From other version control systems</a>, Up: <a 
href="#Setting-up-the-files" accesskey="u" rel="up">Setting up the files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Creating-a-directory-tree-from-a-number-of-files"></a>
+<h4 class="subsection">3.1.1 Creating a directory tree from a number of 
files</h4>
+<a name="index-Importing-files"></a>
+
+<p>When you begin using <small>CVS</small>, you will probably already have 
several
+projects that can be
+put under <small>CVS</small> control.  In these cases the easiest way is to 
use the
+<code>import</code> command.  An example is probably the easiest way to
+explain how to use it.  If the files you want to install in
+<small>CVS</small> reside in <samp><var>wdir</var></samp>, and you want them 
to appear in the
+repository as <samp>$CVSROOT/yoyodyne/<var>rdir</var></samp>, you can do this:
+</p>
+<div class="example">
+<pre class="example">$ cd <var>wdir</var>
+$ cvs import -m &quot;Imported sources&quot; yoyodyne/<var>rdir</var> yoyo 
start
+</pre></div>
+
+<p>Unless you supply a log message with the &lsquo;<samp>-m</samp>&rsquo;
+flag, <small>CVS</small> starts an editor and prompts for a
+message.  The string &lsquo;<samp>yoyo</samp>&rsquo; is a <em>vendor tag</em>,
+and &lsquo;<samp>start</samp>&rsquo; is a <em>release tag</em>.  They may fill
+no purpose in this context, but since <small>CVS</small> requires
+them they must be present.  See <a href="#Tracking-sources">Tracking 
sources</a>, for
+more information about them.
+</p>
+<p>You can now verify that it worked, and remove your
+original source directory.
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs checkout yoyodyne/<var>rdir</var>       # <span 
class="roman">Explanation below</span>
+$ diff -r <var>wdir</var> yoyodyne/<var>rdir</var>
+$ rm -r <var>wdir</var>
+</pre></div>
+
+<p>Erasing the original sources is a good idea, to make sure that you do
+not accidentally edit them in <var>wdir</var>, bypassing <small>CVS</small>.
+Of course, it would be wise to make sure that you have
+a backup of the sources before you remove them.
+</p>
+<p>The <code>checkout</code> command can either take a module
+name as argument (as it has done in all previous
+examples) or a path name relative to <code>$CVSROOT</code>,
+as it did in the example above.
+</p>
+<p>It is a good idea to check that the permissions
+<small>CVS</small> sets on the directories inside <code>$CVSROOT</code>
+are reasonable, and that they belong to the proper
+groups.  See <a href="#File-permissions">File permissions</a>.
+</p>
+<p>If some of the files you want to import are binary, you
+may want to use the wrappers features to specify which
+files are binary and which are not.  See <a href="#Wrappers">Wrappers</a>.
+</p>
+<hr>
+<a name="From-other-version-control-systems"></a>
+<div class="header">
+<p>
+Next: <a href="#From-scratch" accesskey="n" rel="next">From scratch</a>, 
Previous: <a href="#From-files" accesskey="p" rel="prev">From files</a>, Up: <a 
href="#Setting-up-the-files" accesskey="u" rel="up">Setting up the files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Creating-Files-From-Other-Version-Control-Systems"></a>
+<h4 class="subsection">3.1.2 Creating Files From Other Version Control 
Systems</h4>
+<a name="index-Importing-files_002c-from-other-version-control-systems"></a>
+
+<p>If you have a project which you are maintaining with
+another version control system, such as <small>RCS</small>, you
+may wish to put the files from that project into
+<small>CVS</small>, and preserve the revision history of the
+files.
+</p>
+<dl compact="compact">
+<dd><a name="index-RCS_002c-importing-files-from"></a>
+</dd>
+<dt>From RCS</dt>
+<dd><p>If you have been using <small>RCS</small>, find the <small>RCS</small>
+files&mdash;usually a file named <samp>foo.c</samp> will have its
+<small>RCS</small> file in <samp>RCS/foo.c,v</samp> (but it could be
+other places; consult the <small>RCS</small> documentation for
+details).  Then create the appropriate directories in
+<small>CVS</small> if they do not already exist.  Then copy the
+files into the appropriate directories in the <small>CVS</small>
+repository (the name in the repository must be the name
+of the source file with &lsquo;<samp>,v</samp>&rsquo; added; the files go
+directly in the appropriate directory of the repository,
+not in an <samp>RCS</samp> subdirectory).  This is one of the
+few times when it is a good idea to access the <small>CVS</small>
+repository directly, rather than using <small>CVS</small>
+commands.  Then you are ready to check out a new
+working directory.
+</p>
+<p>The <small>RCS</small> file should not be locked when you move it
+into <small>CVS</small>; if it is, <small>CVS</small> will have trouble
+letting you operate on it.
+</p>
+</dd>
+<dt>From another version control system</dt>
+<dd><p>Many version control systems have the ability to export
+<small>RCS</small> files in the standard format.  If yours does,
+export the <small>RCS</small> files and then follow the above
+instructions.
+</p>
+<p>Failing that, probably your best bet is to write a
+script that will check out the files one revision at a
+time using the command line interface to the other
+system, and then check the revisions into <small>CVS</small>.
+The <samp>sccs2rcs</samp> script mentioned below may be a
+useful example to follow.
+</p>
+<a name="index-SCCS_002c-importing-files-from"></a>
+</dd>
+<dt>From SCCS</dt>
+<dd><p>There is a script in the <samp>contrib</samp> directory of
+the <small>CVS</small> source distribution called <samp>sccs2rcs</samp>
+which converts <small>SCCS</small> files to <small>RCS</small> files.
+Note: you must run it on a machine which has both
+<small>SCCS</small> and <small>RCS</small> installed, and like everything
+else in contrib it is unsupported (your mileage may
+vary).
+</p>
+<a name="index-PVCS_002c-importing-files-from"></a>
+</dd>
+<dt>From PVCS</dt>
+<dd><p>There is a script in the <samp>contrib</samp> directory of
+the <small>CVS</small> source distribution called <samp>pvcs_to_rcs</samp>
+which converts <small>PVCS</small> archives to <small>RCS</small> files.
+You must run it on a machine which has both
+<small>PVCS</small> and <small>RCS</small> installed, and like everything
+else in contrib it is unsupported (your mileage may
+vary).  See the comments in the script for details.
+</p></dd>
+</dl>
+
+<hr>
+<a name="From-scratch"></a>
+<div class="header">
+<p>
+Previous: <a href="#From-other-version-control-systems" accesskey="p" 
rel="prev">From other version control systems</a>, Up: <a 
href="#Setting-up-the-files" accesskey="u" rel="up">Setting up the files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Creating-a-directory-tree-from-scratch"></a>
+<h4 class="subsection">3.1.3 Creating a directory tree from scratch</h4>
+
+<p>For a new project, the easiest thing to do is probably
+to create an empty directory structure, like this:
+</p>
+<div class="example">
+<pre class="example">$ mkdir tc
+$ mkdir tc/man
+$ mkdir tc/testing
+</pre></div>
+
+<p>After that, you use the <code>import</code> command to create
+the corresponding (empty) directory structure inside
+the repository:
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ cvs import -m &quot;Created directory structure&quot; 
yoyodyne/<var>dir</var> yoyo start
+</pre></div>
+
+<p>This will add yoyodyne/<var>dir</var> as a directory under
+<code>$CVSROOT</code>.
+</p>
+<p>Use <code>checkout</code> to get the new project.  Then, use 
<code>add</code>
+to add files (and new directories) as needed.
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs co yoyodyne/<var>dir</var>
+</pre></div>
+
+<p>Check that the permissions <small>CVS</small> sets on the
+directories inside <code>$CVSROOT</code> are reasonable.
+</p>
+<hr>
+<a name="Defining-the-module"></a>
+<div class="header">
+<p>
+Previous: <a href="#Setting-up-the-files" accesskey="p" rel="prev">Setting up 
the files</a>, Up: <a href="#Starting-a-new-project" accesskey="u" 
rel="up">Starting a new project</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Defining-the-module-1"></a>
+<h3 class="section">3.2 Defining the module</h3>
+<a name="index-Defining-a-module"></a>
+<a name="index-Editing-the-modules-file"></a>
+<a name="index-Module_002c-defining"></a>
+<a name="index-Modules-file_002c-changing"></a>
+
+<p>The next step is to define the module in the
+<samp>modules</samp> file.  This is not strictly necessary,
+but modules can be convenient in grouping together
+related files and directories.
+</p>
+<p>In simple cases these steps are sufficient to define a module.
+</p>
+<ol>
+<li> Get a working copy of the modules file.
+
+<div class="example">
+<pre class="example">$ cvs checkout CVSROOT/modules
+$ cd CVSROOT
+</pre></div>
+
+</li><li> Edit the file and insert a line that defines the module.  See <a 
href="#Intro-administrative-files">Intro administrative files</a>, for an 
introduction.  See <a href="#modules">modules</a>, for a full
+description of the modules file.  You can use the
+following line to define the module &lsquo;<samp>tc</samp>&rsquo;:
+
+<div class="example">
+<pre class="example">tc   yoyodyne/tc
+</pre></div>
+
+</li><li> Commit your changes to the modules file.
+
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Added the tc module.&quot; modules
+</pre></div>
+
+</li><li> Release the modules module.
+
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs release -d CVSROOT
+</pre></div>
+</li></ol>
+
+<hr>
+<a name="Revisions"></a>
+<div class="header">
+<p>
+Next: <a href="#Branching-and-merging" accesskey="n" rel="next">Branching and 
merging</a>, Previous: <a href="#Starting-a-new-project" accesskey="p" 
rel="prev">Starting a new project</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Revisions-1"></a>
+<h2 class="chapter">4 Revisions</h2>
+
+<p>For many uses of <small>CVS</small>, one doesn&rsquo;t need to worry
+too much about revision numbers; <small>CVS</small> assigns
+numbers such as <code>1.1</code>, <code>1.2</code>, and so on, and
+that is all one needs to know.  However, some people
+prefer to have more knowledge and control concerning
+how <small>CVS</small> assigns revision numbers.
+</p>
+<p>If one wants to keep track of a set of revisions
+involving more than one file, such as which revisions
+went into a particular release, one uses a <em>tag</em>,
+which is a symbolic revision which can be assigned to a
+numeric revision in each file.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Revision-numbers" 
accesskey="1">Revision numbers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The meaning of a revision number
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Versions-revisions-releases" accesskey="2">Versions revisions 
releases</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Terminology used in this manual
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Assigning-revisions" 
accesskey="3">Assigning revisions</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Assigning revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Tags" 
accesskey="4">Tags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Tags&ndash;Symbolic revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Tagging-the-working-directory" accesskey="5">Tagging the working 
directory</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The cvs 
tag command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Tagging-by-date_002ftag" 
accesskey="6">Tagging by date/tag</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">The cvs rtag command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Modifying-tags" 
accesskey="7">Modifying tags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Adding, renaming, and deleting tags
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Tagging-add_002fremove" 
accesskey="8">Tagging add/remove</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Tags with adding and removing files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Sticky-tags" 
accesskey="9">Sticky tags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Certain tags are persistent
+</td></tr>
+</table>
+
+<hr>
+<a name="Revision-numbers"></a>
+<div class="header">
+<p>
+Next: <a href="#Versions-revisions-releases" accesskey="n" rel="next">Versions 
revisions releases</a>, Up: <a href="#Revisions" accesskey="u" 
rel="up">Revisions</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Revision-numbers-1"></a>
+<h3 class="section">4.1 Revision numbers</h3>
+<a name="index-Revision-numbers"></a>
+<a name="index-Revision-tree"></a>
+<a name="index-Linear-development"></a>
+<a name="index-Number_002c-revision_002d"></a>
+<a name="index-Decimal-revision-number"></a>
+<a name="index-Branch-number"></a>
+<a name="index-Number_002c-branch"></a>
+
+<p>Each version of a file has a unique <em>revision
+number</em>.  Revision numbers look like &lsquo;<samp>1.1</samp>&rsquo;,
+&lsquo;<samp>1.2</samp>&rsquo;, &lsquo;<samp>1.3.2.2</samp>&rsquo; or even 
&lsquo;<samp>1.3.2.2.4.5</samp>&rsquo;.
+A revision number always has an even number of
+period-separated decimal integers.  By default revision
+1.1 is the first revision of a file.  Each successive
+revision is given a new number by increasing the
+rightmost number by one.  The following figure displays
+a few revisions, with newer revisions to the right.
+</p>
+<div class="example">
+<pre class="example">       +-----+    +-----+    +-----+    +-----+    +-----+
+       ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+       +-----+    +-----+    +-----+    +-----+    +-----+
+</pre></div>
+
+<p>It is also possible to end up with numbers containing
+more than one period, for example &lsquo;<samp>1.3.2.2</samp>&rsquo;.  Such
+revisions represent revisions on branches
+(see <a href="#Branching-and-merging">Branching and merging</a>); such 
revision numbers
+are explained in detail in <a href="#Branches-and-revisions">Branches and 
revisions</a>.
+</p>
+<hr>
+<a name="Versions-revisions-releases"></a>
+<div class="header">
+<p>
+Next: <a href="#Assigning-revisions" accesskey="n" rel="next">Assigning 
revisions</a>, Previous: <a href="#Revision-numbers" accesskey="p" 
rel="prev">Revision numbers</a>, Up: <a href="#Revisions" accesskey="u" 
rel="up">Revisions</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Versions_002c-revisions-and-releases"></a>
+<h3 class="section">4.2 Versions, revisions and releases</h3>
+<a name="index-Revisions_002c-versions-and-releases"></a>
+<a name="index-Versions_002c-revisions-and-releases"></a>
+<a name="index-Releases_002c-revisions-and-versions"></a>
+
+<p>A file can have several versions, as described above.
+Likewise, a software product can have several versions.
+A software product is often given a version number such
+as &lsquo;<samp>4.1.1</samp>&rsquo;.
+</p>
+<p>Versions in the first sense are called <em>revisions</em>
+in this document, and versions in the second sense are
+called <em>releases</em>.  To avoid confusion, the word
+<em>version</em> is almost never used in this document.
+</p>
+<hr>
+<a name="Assigning-revisions"></a>
+<div class="header">
+<p>
+Next: <a href="#Tags" accesskey="n" rel="next">Tags</a>, Previous: <a 
href="#Versions-revisions-releases" accesskey="p" rel="prev">Versions revisions 
releases</a>, Up: <a href="#Revisions" accesskey="u" rel="up">Revisions</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Assigning-revisions-1"></a>
+<h3 class="section">4.3 Assigning revisions</h3>
+
+<p>By default, <small>CVS</small> will assign numeric revisions by
+leaving the first number the same and incrementing the
+second number.  For example, <code>1.1</code>, <code>1.2</code>,
+<code>1.3</code>, etc.
+</p>
+<p>When adding a new file, the second number will always
+be one and the first number will equal the highest
+first number of any file in that directory.  For
+example, the current directory contains files whose
+highest numbered revisions are <code>1.7</code>, <code>3.1</code>,
+and <code>4.12</code>, then an added file will be given the
+numeric revision <code>4.1</code>.
+(When using client/server <small>CVS</small>,
+only files that are actually sent to the server are considered.)
+</p>
+<p>Normally there is no reason to care
+about the revision numbers&mdash;it is easier to treat them
+as internal numbers that <small>CVS</small> maintains, and tags
+provide a better way to distinguish between things like
+release 1 versus release 2 of your product
+(see <a href="#Tags">Tags</a>).  However, if you want to set the
+numeric revisions, the &lsquo;<samp>-r</samp>&rsquo; option to <code>cvs
+commit</code> can do that.  The &lsquo;<samp>-r</samp>&rsquo; option implies 
the
+&lsquo;<samp>-f</samp>&rsquo; option, in the sense that it causes the
+files to be committed even if they are not modified.
+</p>
+<p>For example, to bring all your files up to
+revision 3.0 (including those that haven&rsquo;t changed),
+you might invoke:
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -r 3.0
+</pre></div>
+
+<p>Note that the number you specify with &lsquo;<samp>-r</samp>&rsquo; must be
+larger than any existing revision number.  That is, if
+revision 3.0 exists, you cannot &lsquo;<samp>cvs commit
+-r 1.3</samp>&rsquo;.  If you want to maintain several releases in
+parallel, you need to use a branch (see <a 
href="#Branching-and-merging">Branching and merging</a>).
+</p>
+<hr>
+<a name="Tags"></a>
+<div class="header">
+<p>
+Next: <a href="#Tagging-the-working-directory" accesskey="n" 
rel="next">Tagging the working directory</a>, Previous: <a 
href="#Assigning-revisions" accesskey="p" rel="prev">Assigning revisions</a>, 
Up: <a href="#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Tags_002d_002dSymbolic-revisions"></a>
+<h3 class="section">4.4 Tags&ndash;Symbolic revisions</h3>
+<a name="index-Tags"></a>
+
+<p>The revision numbers live a life of their own.  They
+need not have anything at all to do with the release
+numbers of your software product.  Depending
+on how you use <small>CVS</small> the revision numbers might change several 
times
+between two releases.  As an example, some of the
+source files that make up <small>RCS</small> 5.6 have the following
+revision numbers:
+<a name="index-RCS-revision-numbers"></a>
+</p>
+<div class="example">
+<pre class="example">ci.c            5.21
+co.c            5.9
+ident.c         5.3
+rcs.c           5.12
+rcsbase.h       5.11
+rcsdiff.c       5.10
+rcsedit.c       5.11
+rcsfcmp.c       5.9
+rcsgen.c        5.10
+rcslex.c        5.11
+rcsmap.c        5.2
+rcsutil.c       5.10
+</pre></div>
+
+<a name="index-tag_002c-command_002c-introduction"></a>
+<a name="index-Tag_002c-symbolic-name"></a>
+<a name="index-Symbolic-name-_0028tag_0029"></a>
+<a name="index-Name_002c-symbolic-_0028tag_0029"></a>
+<a name="index-HEAD_002c-as-reserved-tag-name"></a>
+<a name="index-BASE_002c-as-reserved-tag-name"></a>
+<p>You can use the <code>tag</code> command to give a symbolic name to a
+certain revision of a file.  You can use the &lsquo;<samp>-v</samp>&rsquo; 
flag to the
+<code>status</code> command to see all tags that a file has, and
+which revision numbers they represent.  Tag names must
+start with an uppercase or lowercase letter and can
+contain uppercase and lowercase letters, digits,
+&lsquo;<samp>-</samp>&rsquo;, and &lsquo;<samp>_</samp>&rsquo;.  The two tag 
names <code>BASE</code>
+and <code>HEAD</code> are reserved for use by <small>CVS</small>.  It
+is expected that future names which are special to
+<small>CVS</small> will be specially named, for example by
+starting with &lsquo;<samp>.</samp>&rsquo;, rather than being named 
analogously to
+<code>BASE</code> and <code>HEAD</code>, to avoid conflicts with
+actual tag names.
+</p>
+<p>You&rsquo;ll want to choose some convention for naming tags,
+based on information such as the name of the program
+and the version number of the release.  For example,
+one might take the name of the program, immediately
+followed by the version number with &lsquo;<samp>.</samp>&rsquo; changed to
+&lsquo;<samp>-</samp>&rsquo;, so that <small>CVS</small> 1.9 would be tagged 
with the name
+<code>cvs1-9</code>.  If you choose a consistent convention,
+then you won&rsquo;t constantly be guessing whether a tag is
+<code>cvs-1-9</code> or <code>cvs1_9</code> or what.  You might
+even want to consider enforcing your convention in the
+<samp>taginfo</samp> file (see <a href="#taginfo">taginfo</a>).
+</p>
+<a name="index-Adding-a-tag"></a>
+<a name="index-Tag_002c-example"></a>
+<p>The following example shows how you can add a tag to a
+file.  The commands must be issued inside your working
+directory.  That is, you should issue the
+command in the directory where <samp>backend.c</samp>
+resides.
+</p>
+<div class="example">
+<pre class="example">$ cvs tag rel-0-4 backend.c
+T backend.c
+$ cvs status -v backend.c
+===================================================================
+File: backend.c         Status: Up-to-date
+
+    Version:            1.4     Tue Dec  1 14:39:01 1992
+    RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
+    Sticky Tag:         (none)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+    Existing Tags:
+        rel-0-4                     (revision: 1.4)
+
+</pre></div>
+
+<p>For a complete summary of the syntax of <code>cvs tag</code>,
+including the various options, see <a href="#Invoking-CVS">Invoking CVS</a>.
+</p>
+<p>There is seldom reason to tag a file in isolation.  A more common use is
+to tag all the files that constitute a module with the same tag at
+strategic points in the development life-cycle, such as when a release
+is made.
+</p>
+<div class="example">
+<pre class="example">$ cvs tag rel-1-0 .
+cvs tag: Tagging .
+T Makefile
+T backend.c
+T driver.c
+T frontend.c
+T parser.c
+</pre></div>
+
+<p>(When you give <small>CVS</small> a directory as argument, it generally 
applies the
+operation to all the files in that directory, and (recursively), to any
+subdirectories that it may contain.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.)
+</p>
+<a name="index-Retrieving-an-old-revision-using-tags"></a>
+<a name="index-Tag_002c-retrieving-old-revisions"></a>
+<p>The <code>checkout</code> command has a flag, 
&lsquo;<samp>-r</samp>&rsquo;, that lets you check out
+a certain revision of a module.  This flag makes it easy to
+retrieve the sources that make up release 1.0 of the module 
&lsquo;<samp>tc</samp>&rsquo; at
+any time in the future:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -r rel-1-0 tc
+</pre></div>
+
+<p>This is useful, for instance, if someone claims that there is a bug in
+that release, but you cannot find the bug in the current working copy.
+</p>
+<p>You can also check out a module as it was at any given date.
+See <a href="#checkout-options">checkout options</a>.  When specifying 
&lsquo;<samp>-r</samp>&rsquo; to
+any of these commands, you will need beware of sticky
+tags; see <a href="#Sticky-tags">Sticky tags</a>.
+</p>
+<p>When you tag more than one file with the same tag you
+can think about the tag as &quot;a curve drawn through a
+matrix of filename vs. revision number.&quot;  Say we have 5
+files with the following revisions:
+</p>
+<div class="example">
+<pre class="example">        file1   file2   file3   file4   file5
+
+        1.1     1.1     1.1     1.1  /--1.1*      &lt;-*-  TAG
+        1.2*-   1.2     1.2    -1.2*-
+        1.3  \- 1.3*-   1.3   / 1.3
+        1.4          \  1.4  /  1.4
+                      \-1.5*-   1.5
+                        1.6
+</pre></div>
+
+<p>At some time in the past, the <code>*</code> versions were tagged.
+You can think of the tag as a handle attached to the curve
+drawn through the tagged revisions.  When you pull on
+the handle, you get all the tagged revisions.  Another
+way to look at it is that you &quot;sight&quot; through a set of
+revisions that is &quot;flat&quot; along the tagged revisions,
+like this:
+</p>
+<div class="example">
+<pre class="example">        file1   file2   file3   file4   file5
+
+                        1.1
+                        1.2
+                1.1     1.3                       _
+        1.1     1.2     1.4     1.1              /
+        1.2*----1.3*----1.5*----1.2*----1.1     (--- &lt;--- Look here
+        1.3             1.6     1.3              \_
+        1.4                     1.4
+                                1.5
+</pre></div>
+
+<hr>
+<a name="Tagging-the-working-directory"></a>
+<div class="header">
+<p>
+Next: <a href="#Tagging-by-date_002ftag" accesskey="n" rel="next">Tagging by 
date/tag</a>, Previous: <a href="#Tags" accesskey="p" rel="prev">Tags</a>, Up: 
<a href="#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Specifying-what-to-tag-from-the-working-directory"></a>
+<h3 class="section">4.5 Specifying what to tag from the working directory</h3>
+
+<a name="index-tag-_0028subcommand_0029"></a>
+<p>The example in the previous section demonstrates one of
+the most common ways to choose which revisions to tag.
+Namely, running the <code>cvs tag</code> command without
+arguments causes <small>CVS</small> to select the revisions which
+are checked out in the current working directory.  For
+example, if the copy of <samp>backend.c</samp> in working
+directory was checked out from revision 1.4, then
+<small>CVS</small> will tag revision 1.4.  Note that the tag is
+applied immediately to revision 1.4 in the repository;
+tagging is not like modifying a file, or other
+operations in which one first modifies the working
+directory and then runs <code>cvs commit</code> to transfer
+that modification to the repository.
+</p>
+<p>One potentially surprising aspect of the fact that
+<code>cvs tag</code> operates on the repository is that you
+are tagging the checked-in revisions, which may differ
+from locally modified files in your working directory.
+If you want to avoid doing this by mistake, specify the
+&lsquo;<samp>-c</samp>&rsquo; option to <code>cvs tag</code>.  If there are any
+locally modified files, <small>CVS</small> will abort with an
+error before it tags any files:
+</p>
+<div class="example">
+<pre class="example">$ cvs tag -c rel-0-4
+cvs tag: backend.c is locally modified
+cvs [tag aborted]: correct the above errors first!
+</pre></div>
+
+<hr>
+<a name="Tagging-by-date_002ftag"></a>
+<div class="header">
+<p>
+Next: <a href="#Modifying-tags" accesskey="n" rel="next">Modifying tags</a>, 
Previous: <a href="#Tagging-the-working-directory" accesskey="p" 
rel="prev">Tagging the working directory</a>, Up: <a href="#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Specifying-what-to-tag-by-date-or-revision"></a>
+<h3 class="section">4.6 Specifying what to tag by date or revision</h3>
+<a name="index-rtag-_0028subcommand_0029"></a>
+
+<p>The <code>cvs rtag</code> command tags the repository as of a
+certain date or time (or can be used to tag the latest
+revision).  <code>rtag</code> works directly on the
+repository contents (it requires no prior checkout and
+does not look for a working directory).
+</p>
+<p>The following options specify which date or revision to
+tag.  See <a href="#Common-options">Common options</a>, for a complete
+description of them.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Tag the most recent revision no later than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Only useful with the &lsquo;<samp>-D <var>date</var></samp>&rsquo; or 
&lsquo;<samp>-r <var>tag</var></samp>&rsquo;
+flags.  If no matching revision is found, use the most
+recent revision (instead of ignoring the file).
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Only tag those files that contain existing tag <var>tag</var>.
+</p></dd>
+</dl>
+
+<p>The <code>cvs tag</code> command also allows one to specify
+files by revision or date, using the same &lsquo;<samp>-r</samp>&rsquo;,
+&lsquo;<samp>-D</samp>&rsquo;, and &lsquo;<samp>-f</samp>&rsquo; options.  
However, this
+feature is probably not what you want.  The reason is
+that <code>cvs tag</code> chooses which files to tag based on
+the files that exist in the working directory, rather
+than the files which existed as of the given tag/date.
+Therefore, you are generally better off using <code>cvs
+rtag</code>.  The exceptions might be cases like:
+</p>
+<div class="example">
+<pre class="example">cvs tag -r 1.4 backend.c
+</pre></div>
+
+<hr>
+<a name="Modifying-tags"></a>
+<div class="header">
+<p>
+Next: <a href="#Tagging-add_002fremove" accesskey="n" rel="next">Tagging 
add/remove</a>, Previous: <a href="#Tagging-by-date_002ftag" accesskey="p" 
rel="prev">Tagging by date/tag</a>, Up: <a href="#Revisions" accesskey="u" 
rel="up">Revisions</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Deleting_002c-moving_002c-and-renaming-tags"></a>
+<h3 class="section">4.7 Deleting, moving, and renaming tags</h3>
+
+
+<p>Normally one does not modify tags.  They exist in order
+to record the history of the repository and so deleting
+them or changing their meaning would, generally, not be
+what you want.
+</p>
+<p>However, there might be cases in which one uses a tag
+temporarily or accidentally puts one in the wrong
+place.  Therefore, one might delete, move, or rename a
+tag.
+</p>
+<p><strong>WARNING:  The commands in this section are
+dangerous; they permanently discard historical
+information and it can be difficult or impossible to
+recover from errors.  If you are a <small>CVS</small>
+administrator, you may consider restricting these
+commands with the <samp>taginfo</samp> file (see <a 
href="#taginfo">taginfo</a>).</strong>
+</p>
+<a name="index-Deleting-tags"></a>
+<a name="index-Deleting-branch-tags"></a>
+<a name="index-Removing-tags"></a>
+<a name="index-Removing-branch-tags"></a>
+<a name="index-Tags_002c-deleting"></a>
+<a name="index-Branch-tags_002c-deleting"></a>
+<p>To delete a tag, specify the &lsquo;<samp>-d</samp>&rsquo; option to either
+<code>cvs tag</code> or <code>cvs rtag</code>.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs rtag -d rel-0-4 tc
+</pre></div>
+
+<p>deletes the non-branch tag <code>rel-0-4</code> from the module 
<code>tc</code>.
+In the event that branch tags are encountered within the repository
+with the given name, a warning message will be issued and the branch 
+tag will not be deleted.  If you are absolutely certain you know what
+you are doing, the <code>-B</code> option may be specified to allow deletion
+of branch tags.  In that case, any non-branch tags encountered will
+trigger warnings and will not be deleted.
+</p>
+<p><strong>WARNING:  Moving branch tags is very dangerous!  If you think
+you need the <code>-B</code> option, think again and ask your 
<small>CVS</small>
+administrator about it (if that isn&rsquo;t you).  There is almost certainly
+another way to accomplish what you want to accomplish.</strong>
+</p>
+<a name="index-Moving-tags"></a>
+<a name="index-Moving-branch-tags"></a>
+<a name="index-Tags_002c-moving"></a>
+<a name="index-Branch-tags_002c-moving"></a>
+<p>When we say <em>move</em> a tag, we mean to make the same
+name point to different revisions.  For example, the
+<code>stable</code> tag may currently point to revision 1.4
+of <samp>backend.c</samp> and perhaps we want to make it
+point to revision 1.6.  To move a non-branch tag, specify the
+&lsquo;<samp>-F</samp>&rsquo; option to either <code>cvs tag</code> or 
<code>cvs
+rtag</code>.  For example, the task just mentioned might be
+accomplished as:
+</p>
+<div class="example">
+<pre class="example">cvs tag -r 1.6 -F stable backend.c
+</pre></div>
+
+<p>If any branch tags are encountered in the repository 
+with the given name, a warning is issued and the branch
+tag is not disturbed.  If you are absolutely certain you
+wish to move the branch tag, the <code>-B</code> option may be specified.
+In that case, non-branch tags encountered with the given
+name are ignored with a warning message.
+</p>
+<p><strong>WARNING:  Moving branch tags is very dangerous!  If you think you
+need the <code>-B</code> option, think again and ask your <small>CVS</small>
+administrator about it (if that isn&rsquo;t you).  There is almost certainly
+another way to accomplish what you want to accomplish.</strong>
+</p>
+<a name="index-Renaming-tags"></a>
+<a name="index-Tags_002c-renaming"></a>
+<p>When we say <em>rename</em> a tag, we mean to make a
+different name point to the same revisions as the old
+tag.  For example, one may have misspelled the tag name
+and want to correct it (hopefully before others are
+relying on the old spelling).  To rename a tag, first
+create a new tag using the &lsquo;<samp>-r</samp>&rsquo; option to
+<code>cvs rtag</code>, and then delete the old name.  (Caution:
+this method will not work with branch tags.) 
+This leaves the new tag on exactly the 
+same files as the old tag.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs rtag -r old-name-0-4 rel-0-4 tc
+cvs rtag -d old-name-0-4 tc
+</pre></div>
+
+<hr>
+<a name="Tagging-add_002fremove"></a>
+<div class="header">
+<p>
+Next: <a href="#Sticky-tags" accesskey="n" rel="next">Sticky tags</a>, 
Previous: <a href="#Modifying-tags" accesskey="p" rel="prev">Modifying 
tags</a>, Up: <a href="#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Tagging-and-adding-and-removing-files"></a>
+<h3 class="section">4.8 Tagging and adding and removing files</h3>
+
+<p>The subject of exactly how tagging interacts with
+adding and removing files is somewhat obscure; for the
+most part <small>CVS</small> will keep track of whether files
+exist or not without too much fussing.  By default,
+tags are applied to only files which have a revision
+corresponding to what is being tagged.  Files which did
+not exist yet, or which were already removed, simply
+omit the tag, and <small>CVS</small> knows to treat the absence
+of a tag as meaning that the file didn&rsquo;t exist as of
+that tag.
+</p>
+<p>However, this can lose a small amount of information.
+For example, suppose a file was added and then removed.
+Then, if the tag is missing for that file, there is no
+way to know whether the tag refers to the time before
+the file was added, or the time after it was removed.
+If you specify the &lsquo;<samp>-r</samp>&rsquo; option to <code>cvs 
rtag</code>,
+then <small>CVS</small> tags the files which have been removed,
+and thereby avoids this problem.  For example, one
+might specify <code>-r HEAD</code> to tag the head.
+</p>
+<p>On the subject of adding and removing files, the
+<code>cvs rtag</code> command has a &lsquo;<samp>-a</samp>&rsquo; option which
+means to clear the tag from removed files that would
+not otherwise be tagged.  For example, one might
+specify this option in conjunction with &lsquo;<samp>-F</samp>&rsquo; when
+moving a tag.  If one moved a tag without &lsquo;<samp>-a</samp>&rsquo;,
+then the tag in the removed files might still refer to
+the old revision, rather than reflecting the fact that
+the file had been removed.  I don&rsquo;t think this is
+necessary if &lsquo;<samp>-r</samp>&rsquo; is specified, as noted above.
+</p>
+<hr>
+<a name="Sticky-tags"></a>
+<div class="header">
+<p>
+Previous: <a href="#Tagging-add_002fremove" accesskey="p" rel="prev">Tagging 
add/remove</a>, Up: <a href="#Revisions" accesskey="u" rel="up">Revisions</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Sticky-tags-1"></a>
+<h3 class="section">4.9 Sticky tags</h3>
+<a name="index-Sticky-tags"></a>
+<a name="index-Tags_002c-sticky"></a>
+
+
+<p>Sometimes a working copy&rsquo;s revision has extra data
+associated with it, for example it might be on a branch
+(see <a href="#Branching-and-merging">Branching and merging</a>), or 
restricted to
+versions prior to a certain date by &lsquo;<samp>checkout -D</samp>&rsquo;
+or &lsquo;<samp>update -D</samp>&rsquo;.  Because this data persists &ndash;
+that is, it applies to subsequent commands in the
+working copy &ndash; we refer to it as <em>sticky</em>.
+</p>
+<p>Most of the time, stickiness is an obscure aspect of
+<small>CVS</small> that you don&rsquo;t need to think about.  However,
+even if you don&rsquo;t want to use the feature, you may need
+to know <em>something</em> about sticky tags (for
+example, how to avoid them!).
+</p>
+<p>You can use the <code>status</code> command to see if any
+sticky tags or dates are set:
+</p>
+<div class="example">
+<pre class="example">$ cvs status driver.c
+===================================================================
+File: driver.c          Status: Up-to-date
+
+    Version:            1.7.2.1 Sat Dec  5 19:35:03 1992
+    RCS Version:        1.7.2.1 /u/cvsroot/yoyodyne/tc/driver.c,v
+    Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+</pre></div>
+
+<a name="index-Resetting-sticky-tags"></a>
+<a name="index-Sticky-tags_002c-resetting"></a>
+<a name="index-Deleting-sticky-tags"></a>
+<p>The sticky tags will remain on your working files until
+you delete them with &lsquo;<samp>cvs update -A</samp>&rsquo;.  The
+&lsquo;<samp>-A</samp>&rsquo; option merges local changes into the version of 
the
+file from the head of the trunk, removing any sticky tags,
+dates, or options (other than sticky &lsquo;<samp>-k</samp>&rsquo; options on 
locally
+modified files).  See <a href="#update">update</a> for more on the operation
+of <code>cvs update</code>.
+</p>
+<a name="index-Sticky-date"></a>
+<p>The most common use of sticky tags is to identify which
+branch one is working on, as described in
+<a href="#Accessing-branches">Accessing branches</a>.  However, non-branch
+sticky tags have uses as well.  For example,
+suppose that you want to avoid updating your working
+directory, to isolate yourself from possibly
+destabilizing changes other people are making.  You
+can, of course, just refrain from running <code>cvs
+update</code>.  But if you want to avoid updating only a
+portion of a larger tree, then sticky tags can help.
+If you check out a certain revision (such as 1.4) it
+will become sticky.  Subsequent <code>cvs update</code>
+commands will
+not retrieve the latest revision until you reset the
+tag with <code>cvs update -A</code>.  Likewise, use of the
+&lsquo;<samp>-D</samp>&rsquo; option to <code>update</code> or 
<code>checkout</code>
+sets a <em>sticky date</em>, which, similarly, causes that
+date to be used for future retrievals.
+</p>
+<p>People often want to retrieve an old version of
+a file without setting a sticky tag.  This can
+be done with the &lsquo;<samp>-p</samp>&rsquo; option to <code>checkout</code> 
or
+<code>update</code>, which sends the contents of the file to
+standard output.  For example:
+</p><div class="example">
+<pre class="example">$ cvs update -p -r 1.1 file1 &gt;file1
+===================================================================
+Checking out file1
+RCS:  /tmp/cvs-sanity/cvsroot/first-dir/Attic/file1,v
+VERS: 1.1
+***************
+$
+</pre></div>
+
+<p>However, this isn&rsquo;t the easiest way, if you are asking
+how to undo a previous checkin (in this example, put
+<samp>file1</samp> back to the way it was as of revision
+1.1).  In that case you are better off using the
+&lsquo;<samp>-j</samp>&rsquo; option to <code>update</code>; for further
+discussion see <a href="#Merging-two-revisions">Merging two revisions</a>.
+</p>
+<hr>
+<a name="Branching-and-merging"></a>
+<div class="header">
+<p>
+Next: <a href="#Recursive-behavior" accesskey="n" rel="next">Recursive 
behavior</a>, Previous: <a href="#Revisions" accesskey="p" 
rel="prev">Revisions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Branching-and-merging-1"></a>
+<h2 class="chapter">5 Branching and merging</h2>
+<a name="index-Branching"></a>
+<a name="index-Merging"></a>
+<a name="index-Copying-changes"></a>
+<a name="index-Main-trunk-and-branches"></a>
+<a name="index-Revision-tree_002c-making-branches"></a>
+<a name="index-Branches_002c-copying-changes-between"></a>
+<a name="index-Changes_002c-copying-between-branches"></a>
+<a name="index-Modifications_002c-copying-between-branches"></a>
+
+<p><small>CVS</small> allows you to isolate changes onto a separate
+line of development, known as a <em>branch</em>.  When you
+change files on a branch, those changes do not appear
+on the main trunk or other branches.
+</p>
+<p>Later you can move changes from one branch to another
+branch (or the main trunk) by <em>merging</em>.  Merging
+involves first running <code>cvs update -j</code>, to merge
+the changes into the working directory.
+You can then commit that revision, and thus effectively
+copy the changes onto another branch.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Branches-motivation" 
accesskey="1">Branches motivation</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">What branches are good for
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Creating-a-branch" 
accesskey="2">Creating a branch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creating a branch
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Accessing-branches" 
accesskey="3">Accessing branches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Checking out and updating branches
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Branches-and-revisions" 
accesskey="4">Branches and revisions</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Branches are reflected in revision numbers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Magic-branch-numbers" 
accesskey="5">Magic branch numbers</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Magic branch numbers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Merging-a-branch" 
accesskey="6">Merging a branch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Merging an entire branch
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Merging-more-than-once" 
accesskey="7">Merging more than once</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Merging from a branch several times
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Merging-two-revisions" 
accesskey="8">Merging two revisions</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Merging differences between two revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Merging-adds-and-removals" 
accesskey="9">Merging adds and removals</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">What if files are added or removed?
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Merging-and-keywords">Merging and 
keywords</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Avoiding 
conflicts due to keyword substitution
+</td></tr>
+</table>
+
+<hr>
+<a name="Branches-motivation"></a>
+<div class="header">
+<p>
+Next: <a href="#Creating-a-branch" accesskey="n" rel="next">Creating a 
branch</a>, Up: <a href="#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="What-branches-are-good-for"></a>
+<h3 class="section">5.1 What branches are good for</h3>
+<a name="index-Branches-motivation"></a>
+<a name="index-What-branches-are-good-for"></a>
+<a name="index-Motivation-for-branches"></a>
+
+<p>Suppose that release 1.0 of tc has been made.  You are continuing to
+develop tc, planning to create release 1.1 in a couple of months.  After a
+while your customers start to complain about a fatal bug.  You check
+out release 1.0 (see <a href="#Tags">Tags</a>) and find the bug
+(which turns out to have a trivial fix).  However, the current revision
+of the sources are in a state of flux and are not expected to be stable
+for at least another month.  There is no way to make a
+bug fix release based on the newest sources.
+</p>
+<p>The thing to do in a situation like this is to create a <em>branch</em> on
+the revision trees for all the files that make up
+release 1.0 of tc.  You can then make
+modifications to the branch without disturbing the main trunk.  When the
+modifications are finished you can elect to either incorporate them on
+the main trunk, or leave them on the branch.
+</p>
+<hr>
+<a name="Creating-a-branch"></a>
+<div class="header">
+<p>
+Next: <a href="#Accessing-branches" accesskey="n" rel="next">Accessing 
branches</a>, Previous: <a href="#Branches-motivation" accesskey="p" 
rel="prev">Branches motivation</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Creating-a-branch-1"></a>
+<h3 class="section">5.2 Creating a branch</h3>
+<a name="index-Creating-a-branch"></a>
+<a name="index-Branch_002c-creating-a"></a>
+<a name="index-tag_002c-creating-a-branch-using"></a>
+<a name="index-rtag_002c-creating-a-branch-using"></a>
+
+<p>You can create a branch with <code>tag -b</code>; for
+example, assuming you&rsquo;re in a working copy:
+</p>
+<div class="example">
+<pre class="example">$ cvs tag -b rel-1-0-patches
+</pre></div>
+
+
+<p>This splits off a branch based on the current revisions
+in the working copy, assigning that branch the name
+&lsquo;<samp>rel-1-0-patches</samp>&rsquo;.
+</p>
+<p>It is important to understand that branches get created
+in the repository, not in the working copy.  Creating a
+branch based on current revisions, as the above example
+does, will <em>not</em> automatically switch the working
+copy to be on the new branch.  For information on how
+to do that, see <a href="#Accessing-branches">Accessing branches</a>.
+</p>
+<p>You can also create a branch without reference to any
+working copy, by using <code>rtag</code>:
+</p>
+<div class="example">
+<pre class="example">$ cvs rtag -b -r rel-1-0 rel-1-0-patches tc
+</pre></div>
+
+<p>&lsquo;<samp>-r rel-1-0</samp>&rsquo; says that this branch should be
+rooted at the revision that
+corresponds to the tag &lsquo;<samp>rel-1-0</samp>&rsquo;.  It need not
+be the most recent revision &ndash; it&rsquo;s often useful to
+split a branch off an old revision (for example, when
+fixing a bug in a past release otherwise known to be
+stable).
+</p>
+<p>As with &lsquo;<samp>tag</samp>&rsquo;, the &lsquo;<samp>-b</samp>&rsquo; 
flag tells
+<code>rtag</code> to create a branch (rather than just a
+symbolic revision name).  Note that the numeric
+revision number that matches &lsquo;<samp>rel-1-0</samp>&rsquo; will
+probably be different from file to file.
+</p>
+<p>So, the full effect of the command is to create a new
+branch &ndash; named &lsquo;<samp>rel-1-0-patches</samp>&rsquo; &ndash; in 
module
+&lsquo;<samp>tc</samp>&rsquo;, rooted in the revision tree at the point tagged
+by &lsquo;<samp>rel-1-0</samp>&rsquo;.
+</p>
+<hr>
+<a name="Accessing-branches"></a>
+<div class="header">
+<p>
+Next: <a href="#Branches-and-revisions" accesskey="n" rel="next">Branches and 
revisions</a>, Previous: <a href="#Creating-a-branch" accesskey="p" 
rel="prev">Creating a branch</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Accessing-branches-1"></a>
+<h3 class="section">5.3 Accessing branches</h3>
+<a name="index-Check-out-a-branch"></a>
+<a name="index-Retrieve-a-branch"></a>
+<a name="index-Access-a-branch"></a>
+<a name="index-Identifying-a-branch"></a>
+<a name="index-Branch_002c-check-out"></a>
+<a name="index-Branch_002c-retrieving"></a>
+<a name="index-Branch_002c-accessing"></a>
+<a name="index-Branch_002c-identifying"></a>
+
+<p>You can retrieve a branch in one of two ways: by
+checking it out fresh from the repository, or by
+switching an existing working copy over to the branch.
+</p>
+<p>To check out a branch from the repository, invoke
+&lsquo;<samp>checkout</samp>&rsquo; with the &lsquo;<samp>-r</samp>&rsquo; 
flag, followed by
+the tag name of the branch (see <a href="#Creating-a-branch">Creating a 
branch</a>):
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -r rel-1-0-patches tc
+</pre></div>
+
+<p>Or, if you already have a working copy, you can switch
+it to a given branch with &lsquo;<samp>update -r</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cvs update -r rel-1-0-patches tc
+</pre></div>
+
+<p>or equivalently:
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ cvs update -r rel-1-0-patches
+</pre></div>
+
+<p>It does not matter if the working copy was originally
+on the main trunk or on some other branch &ndash; the above
+command will switch it to the named branch.  And
+similarly to a regular &lsquo;<samp>update</samp>&rsquo; command,
+&lsquo;<samp>update -r</samp>&rsquo; merges any changes you have made,
+notifying you of conflicts where they occur.
+</p>
+<p>Once you have a working copy tied to a particular
+branch, it remains there until you tell it otherwise.
+This means that changes checked in from the working
+copy will add new revisions on that branch, while
+leaving the main trunk and other branches unaffected.
+</p>
+<a name="index-Branches_002c-sticky"></a>
+<p>To find out what branch a working copy is on, you can
+use the &lsquo;<samp>status</samp>&rsquo; command.  In its output, look for
+the field named &lsquo;<samp>Sticky tag</samp>&rsquo; (see <a 
href="#Sticky-tags">Sticky tags</a>)
+&ndash; that&rsquo;s <small>CVS</small>&rsquo;s way of telling you the branch, 
if
+any, of the current working files:
+</p>
+<div class="example">
+<pre class="example">$ cvs status -v driver.c backend.c
+===================================================================
+File: driver.c          Status: Up-to-date
+
+    Version:            1.7     Sat Dec  5 18:25:54 1992
+    RCS Version:        1.7     /u/cvsroot/yoyodyne/tc/driver.c,v
+    Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+    Existing Tags:
+        rel-1-0-patches             (branch: 1.7.2)
+        rel-1-0                     (revision: 1.7)
+
+===================================================================
+File: backend.c         Status: Up-to-date
+
+    Version:            1.4     Tue Dec  1 14:39:01 1992
+    RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
+    Sticky Tag:         rel-1-0-patches (branch: 1.4.2)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+    Existing Tags:
+        rel-1-0-patches             (branch: 1.4.2)
+        rel-1-0                     (revision: 1.4)
+        rel-0-4                     (revision: 1.4)
+
+</pre></div>
+
+<p>Don&rsquo;t be confused by the fact that the branch numbers
+for each file are different (&lsquo;<samp>1.7.2</samp>&rsquo; and
+&lsquo;<samp>1.4.2</samp>&rsquo; respectively).  The branch tag is the
+same, &lsquo;<samp>rel-1-0-patches</samp>&rsquo;, and the files are
+indeed on the same branch.  The numbers simply reflect
+the point in each file&rsquo;s revision history at which the
+branch was made.  In the above example, one can deduce
+that &lsquo;<samp>driver.c</samp>&rsquo; had been through more changes than
+&lsquo;<samp>backend.c</samp>&rsquo; before this branch was created.
+</p>
+<p>See <a href="#Branches-and-revisions">Branches and revisions</a> for 
details about how
+branch numbers are constructed.
+</p>
+<hr>
+<a name="Branches-and-revisions"></a>
+<div class="header">
+<p>
+Next: <a href="#Magic-branch-numbers" accesskey="n" rel="next">Magic branch 
numbers</a>, Previous: <a href="#Accessing-branches" accesskey="p" 
rel="prev">Accessing branches</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Branches-and-revisions-1"></a>
+<h3 class="section">5.4 Branches and revisions</h3>
+<a name="index-Branch-number-1"></a>
+<a name="index-Number_002c-branch-1"></a>
+<a name="index-Revision-numbers-_0028branches_0029"></a>
+
+<p>Ordinarily, a file&rsquo;s revision history is a linear
+series of increments (see <a href="#Revision-numbers">Revision numbers</a>):
+</p>
+<div class="example">
+<pre class="example">       +-----+    +-----+    +-----+    +-----+    +-----+
+       ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+       +-----+    +-----+    +-----+    +-----+    +-----+
+</pre></div>
+
+<p>However, <small>CVS</small> is not limited to linear development.  The
+<em>revision tree</em> can be split into <em>branches</em>,
+where each branch is a self-maintained line of
+development.  Changes made on one branch can easily be
+moved back to the main trunk.
+</p>
+<p>Each branch has a <em>branch number</em>, consisting of an
+odd number of period-separated decimal integers.  The
+branch number is created by appending an integer to the
+revision number where the corresponding branch forked
+off.  Having branch numbers allows more than one branch
+to be forked off from a certain revision.
+</p>
+<p>All revisions on a branch have revision numbers formed
+by appending an ordinal number to the branch number.
+The following figure illustrates branching with an
+example.
+</p>
+<div class="example">
+<pre class="example">                                                      
+-------------+
+                           Branch 1.2.2.3.2 -&gt;        ! 1.2.2.3.2.1 !
+                                                    / +-------------+
+                                                   /
+                                                  /
+                 +---------+    +---------+    +---------+
+Branch 1.2.2 -&gt; _! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
+               / +---------+    +---------+    +---------+
+              /
+             /
++-----+    +-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !  &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+    +-----+
+                !
+                !
+                !   +---------+    +---------+    +---------+
+Branch 1.2.4 -&gt; +---! 1.2.4.1 !----! 1.2.4.2 !----! 1.2.4.3 !
+                    +---------+    +---------+    +---------+
+
+</pre></div>
+
+
+
+<p>The exact details of how the branch number is
+constructed is not something you normally need to be
+concerned about, but here is how it works: When
+<small>CVS</small> creates a branch number it picks the first
+unused even integer, starting with 2.  So when you want
+to create a branch from revision 6.4 it will be
+numbered 6.4.2.  All branch numbers ending in a zero
+(such as 6.4.0) are used internally by <small>CVS</small>
+(see <a href="#Magic-branch-numbers">Magic branch numbers</a>).  The branch 
1.1.1 has a
+special meaning.  See <a href="#Tracking-sources">Tracking sources</a>.
+</p>
+<hr>
+<a name="Magic-branch-numbers"></a>
+<div class="header">
+<p>
+Next: <a href="#Merging-a-branch" accesskey="n" rel="next">Merging a 
branch</a>, Previous: <a href="#Branches-and-revisions" accesskey="p" 
rel="prev">Branches and revisions</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Magic-branch-numbers-1"></a>
+<h3 class="section">5.5 Magic branch numbers</h3>
+
+
+<p>This section describes a <small>CVS</small> feature called
+<em>magic branches</em>.  For most purposes, you need not
+worry about magic branches; <small>CVS</small> handles them for
+you.  However, they are visible to you in certain
+circumstances, so it may be useful to have some idea of
+how it works.
+</p>
+<p>Externally, branch numbers consist of an odd number of
+dot-separated decimal integers.  See <a href="#Revision-numbers">Revision 
numbers</a>.  That is not the whole truth, however.  For
+efficiency reasons <small>CVS</small> sometimes inserts an extra 0
+in the second rightmost position (1.2.4 becomes
+1.2.0.4, 8.9.10.11.12 becomes 8.9.10.11.0.12 and so
+on).
+</p>
+<p><small>CVS</small> does a pretty good job at hiding these so
+called magic branches, but in a few places the hiding
+is incomplete:
+</p>
+<ul>
+<li> The magic branch number appears in the output from
+<code>cvs log</code>.
+
+</li><li> You cannot specify a symbolic branch name to <code>cvs
+admin</code>.
+
+</li></ul>
+
+<p>You can use the <code>admin</code> command to reassign a
+symbolic name to a branch the way <small>RCS</small> expects it
+to be.  If <code>R4patches</code> is assigned to the branch
+1.4.2 (magic branch number 1.4.0.2) in file
+<samp>numbers.c</samp> you can do this:
+</p>
+<div class="example">
+<pre class="example">$ cvs admin -NR4patches:1.4.2 numbers.c
+</pre></div>
+
+<p>It only works if at least one revision is already
+committed on the branch.  Be very careful so that you
+do not assign the tag to the wrong number.  (There is
+no way to see how the tag was assigned yesterday).
+</p>
+<hr>
+<a name="Merging-a-branch"></a>
+<div class="header">
+<p>
+Next: <a href="#Merging-more-than-once" accesskey="n" rel="next">Merging more 
than once</a>, Previous: <a href="#Magic-branch-numbers" accesskey="p" 
rel="prev">Magic branch numbers</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Merging-an-entire-branch"></a>
+<h3 class="section">5.6 Merging an entire branch</h3>
+<a name="index-Merging-a-branch"></a>
+<a name="index-_002dj-_0028merging-branches_0029"></a>
+
+<p>You can merge changes made on a branch into your working copy by giving
+the &lsquo;<samp>-j <var>branchname</var></samp>&rsquo; flag to the 
<code>update</code> subcommand.  With one
+&lsquo;<samp>-j <var>branchname</var></samp>&rsquo; option it merges the 
changes made between the
+greatest common ancestor (GCA) of the branch and the destination revision (in
+the simple case below the GCA is the point where the branch forked) and the
+newest revision on that branch into your working copy.
+</p>
+<a name="index-Join"></a>
+<p>The &lsquo;<samp>-j</samp>&rsquo; stands for &ldquo;join&rdquo;.
+</p>
+<a name="index-Branch-merge-example"></a>
+<a name="index-Example_002c-branch-merge"></a>
+<a name="index-Merge_002c-branch-example"></a>
+<p>Consider this revision tree:
+</p>
+<div class="example">
+<pre class="example">+-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !      &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+
+                !
+                !
+                !   +---------+    +---------+
+Branch R1fix -&gt; +---! 1.2.2.1 !----! 1.2.2.2 !
+                    +---------+    +---------+
+</pre></div>
+
+<p>The branch 1.2.2 has been given the tag (symbolic name) 
&lsquo;<samp>R1fix</samp>&rsquo;.  The
+following example assumes that the module &lsquo;<samp>mod</samp>&rsquo; 
contains only one
+file, <samp>m.c</samp>.
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout mod               # <span 
class="roman">Retrieve the latest revision, 1.4</span>
+
+$ cvs update -j R1fix m.c        # <span class="roman">Merge all changes made 
on the branch,</span>
+                                 # <span class="roman">i.e. the changes 
between revision 1.2</span>
+                                 # <span class="roman">and 1.2.2.2, into your 
working copy</span>
+                                 # <span class="roman">of the file.</span>
+
+$ cvs commit -m &quot;Included R1fix&quot; # <span class="roman">Create 
revision 1.5.</span>
+</pre></div>
+
+<p>A conflict can result from a merge operation.  If that
+happens, you should resolve it before committing the
+new revision.  See <a href="#Conflicts-example">Conflicts example</a>.
+</p>
+<p>If your source files contain keywords (see <a 
href="#Keyword-substitution">Keyword substitution</a>),
+you might be getting more conflicts than strictly necessary.  See
+<a href="#Merging-and-keywords">Merging and keywords</a>, for information on 
how to avoid this.
+</p>
+<p>The <code>checkout</code> command also supports the &lsquo;<samp>-j 
<var>branchname</var></samp>&rsquo; flag.  The
+same effect as above could be achieved with this:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -j R1fix mod
+$ cvs commit -m &quot;Included R1fix&quot;
+</pre></div>
+
+<p>It should be noted that <code>update -j <var>tagname</var></code> will also 
work but may
+not produce the desired result.  See <a 
href="#Merging-adds-and-removals">Merging adds and removals</a>, for more.
+</p>
+<hr>
+<a name="Merging-more-than-once"></a>
+<div class="header">
+<p>
+Next: <a href="#Merging-two-revisions" accesskey="n" rel="next">Merging two 
revisions</a>, Previous: <a href="#Merging-a-branch" accesskey="p" 
rel="prev">Merging a branch</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Merging-from-a-branch-several-times"></a>
+<h3 class="section">5.7 Merging from a branch several times</h3>
+
+<p>Continuing our example, the revision tree now looks
+like this:
+</p>
+<div class="example">
+<pre class="example">+-----+    +-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+    +-----+
+                !                           *
+                !                          *
+                !   +---------+    +---------+
+Branch R1fix -&gt; +---! 1.2.2.1 !----! 1.2.2.2 !
+                    +---------+    +---------+
+</pre></div>
+
+<p>where the starred line represents the merge from the
+&lsquo;<samp>R1fix</samp>&rsquo; branch to the main trunk, as just
+discussed.
+</p>
+<p>Now suppose that development continues on the
+&lsquo;<samp>R1fix</samp>&rsquo; branch:
+</p>
+<div class="example">
+<pre class="example">+-----+    +-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+    +-----+
+                !                           *
+                !                          *
+                !   +---------+    +---------+    +---------+
+Branch R1fix -&gt; +---! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
+                    +---------+    +---------+    +---------+
+</pre></div>
+
+<p>and then you want to merge those new changes onto the
+main trunk.  If you just use the <code>cvs update -j
+R1fix m.c</code> command again, <small>CVS</small> will attempt to
+merge again the changes which you have already merged,
+which can have undesirable side effects.
+</p>
+<p>So instead you need to specify that you only want to
+merge the changes on the branch which have not yet been
+merged into the trunk.  To do that you specify two
+&lsquo;<samp>-j</samp>&rsquo; options, and <small>CVS</small> merges the 
changes from
+the first revision to the second revision.  For
+example, in this case the simplest way would be
+</p>
+<div class="example">
+<pre class="example">cvs update -j 1.2.2.2 -j R1fix m.c    # <span 
class="roman">Merge changes from 1.2.2.2 to the</span>
+                                      # <span class="roman">head of the R1fix 
branch</span>
+</pre></div>
+
+<p>The problem with this is that you need to specify the
+1.2.2.2 revision manually.  A slightly better approach
+might be to use the date the last merge was done:
+</p>
+<div class="example">
+<pre class="example">cvs update -j R1fix:yesterday -j R1fix m.c
+</pre></div>
+
+<p>Better yet, tag the R1fix branch after every merge into
+the trunk, and then use that tag for subsequent merges:
+</p>
+<div class="example">
+<pre class="example">cvs update -j merged_from_R1fix_to_trunk -j R1fix m.c
+</pre></div>
+
+<hr>
+<a name="Merging-two-revisions"></a>
+<div class="header">
+<p>
+Next: <a href="#Merging-adds-and-removals" accesskey="n" rel="next">Merging 
adds and removals</a>, Previous: <a href="#Merging-more-than-once" 
accesskey="p" rel="prev">Merging more than once</a>, Up: <a 
href="#Branching-and-merging" accesskey="u" rel="up">Branching and merging</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Merging-differences-between-any-two-revisions"></a>
+<h3 class="section">5.8 Merging differences between any two revisions</h3>
+<a name="index-Merging-two-revisions"></a>
+<a name="index-Revisions_002c-merging-differences-between"></a>
+<a name="index-Differences_002c-merging"></a>
+
+<p>With two &lsquo;<samp>-j <var>revision</var></samp>&rsquo; flags, the 
<code>update</code>
+(and <code>checkout</code>) command can merge the differences
+between any two revisions into your working file.
+</p>
+<a name="index-Undoing-a-change"></a>
+<a name="index-Removing-a-change"></a>
+<div class="example">
+<pre class="example">$ cvs update -j 1.5 -j 1.3 backend.c
+</pre></div>
+
+<p>will undo all changes made between revision
+1.3 and 1.5.  Note the order of the revisions!
+</p>
+<p>If you try to use this option when operating on
+multiple files, remember that the numeric revisions will
+probably be very different between the various files.
+You almost always use symbolic
+tags rather than revision numbers when operating on
+multiple files.
+</p>
+<a name="index-Restoring-old-version-of-removed-file"></a>
+<a name="index-Resurrecting-old-version-of-dead-file"></a>
+<p>Specifying two &lsquo;<samp>-j</samp>&rsquo; options can also undo file
+removals or additions.  For example, suppose you have
+a file
+named <samp>file1</samp> which existed as revision 1.1, and
+you then removed it (thus adding a dead revision 1.2).
+Now suppose you want to add it again, with the same
+contents it had previously.  Here is how to do it:
+</p>
+<div class="example">
+<pre class="example">$ cvs update -j 1.2 -j 1.1 file1
+U file1
+$ cvs commit -m test
+Checking in file1;
+/tmp/cvs-sanity/cvsroot/first-dir/file1,v  &lt;--  file1
+new revision: 1.3; previous revision: 1.2
+done
+$
+</pre></div>
+
+<hr>
+<a name="Merging-adds-and-removals"></a>
+<div class="header">
+<p>
+Next: <a href="#Merging-and-keywords" accesskey="n" rel="next">Merging and 
keywords</a>, Previous: <a href="#Merging-two-revisions" accesskey="p" 
rel="prev">Merging two revisions</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Merging-can-add-or-remove-files"></a>
+<h3 class="section">5.9 Merging can add or remove files</h3>
+
+<p>If the changes which you are merging involve removing
+or adding some files, <code>update -j</code> will reflect
+such additions or removals.
+</p>
+<p>For example:
+</p><div class="example">
+<pre class="example">cvs update -A
+touch a b c
+cvs add a b c ; cvs ci -m &quot;added&quot; a b c
+cvs tag -b branchtag
+cvs update -r branchtag
+touch d ; cvs add d
+rm a ; cvs rm a
+cvs ci -m &quot;added d, removed a&quot;
+cvs update -A
+cvs update -jbranchtag
+</pre></div>
+
+<p>After these commands are executed and a &lsquo;<samp>cvs 
commit</samp>&rsquo; is done,
+file <samp>a</samp> will be removed and file <samp>d</samp> added in the main 
branch.
+</p>
+<p>Note that using a single static tag (&lsquo;<samp>-j 
<var>tagname</var></samp>&rsquo;)
+rather than a dynamic tag (&lsquo;<samp>-j 
<var>branchname</var></samp>&rsquo;) to merge
+changes from a branch will usually not remove files which were removed on the
+branch since <small>CVS</small> does not automatically add static tags to dead 
revisions.
+The exception to this rule occurs when
+a static tag has been attached to a dead revision manually.  Use the branch tag
+to merge all changes from the branch or use two static tags as merge endpoints
+to be sure that all intended changes are propagated in the merge.
+</p>
+<hr>
+<a name="Merging-and-keywords"></a>
+<div class="header">
+<p>
+Previous: <a href="#Merging-adds-and-removals" accesskey="p" 
rel="prev">Merging adds and removals</a>, Up: <a href="#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Merging-and-keywords-1"></a>
+<h3 class="section">5.10 Merging and keywords</h3>
+<a name="index-Merging_002c-and-keyword-substitution"></a>
+<a name="index-Keyword-substitution_002c-and-merging"></a>
+<a 
name="index-_002dj-_0028merging-branches_0029_002c-and-keyword-substitution"></a>
+<a name="index-_002dkk_002c-to-avoid-conflicts-during-a-merge"></a>
+
+<p>If you merge files containing keywords (see <a 
href="#Keyword-substitution">Keyword substitution</a>), you will normally get 
numerous
+conflicts during the merge, because the keywords are
+expanded differently in the revisions which you are
+merging.
+</p>
+<p>Therefore, you will often want to specify the
+&lsquo;<samp>-kk</samp>&rsquo; (see <a href="#Substitution-modes">Substitution 
modes</a>) switch to the
+merge command line.  By substituting just the name of
+the keyword, not the expanded value of that keyword,
+this option ensures that the revisions which you are
+merging will be the same as each other, and avoid
+spurious conflicts.
+</p>
+<p>For example, suppose you have a file like this:
+</p>
+<div class="example">
+<pre class="example">       +---------+
+      _! 1.1.2.1 !   &lt;-  br1
+     / +---------+
+    /
+   /
++-----+    +-----+
+! 1.1 !----! 1.2 !
++-----+    +-----+
+</pre></div>
+
+<p>and your working directory is currently on the trunk
+(revision 1.2).  Then you might get the following
+results from a merge:
+</p>
+<div class="example">
+<pre class="example">$ cat file1
+key $<i></i>Revision: 1.2 $
+. . .
+$ cvs update -j br1
+U file1
+RCS file: /cvsroot/first-dir/file1,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+Merging differences between 1.1 and 1.1.2.1 into file1
+rcsmerge: warning: conflicts during merge
+$ cat file1
+&lt;&lt;&lt;&lt;&lt;&lt;&lt; file1
+key $<i></i>Revision: 1.2 $
+=======
+key $<i></i>Revision: 1.1.2.1 $
+&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1.1.2.1
+. . .
+</pre></div>
+
+<p>What happened was that the merge tried to merge the
+differences between 1.1 and 1.1.2.1 into your working
+directory.  So, since the keyword changed from
+<code>Revision: 1.1</code> to <code>Revision: 1.1.2.1</code>,
+<small>CVS</small> tried to merge that change into your working
+directory, which conflicted with the fact that your
+working directory had contained <code>Revision: 1.2</code>.
+</p>
+<p>Here is what happens if you had used &lsquo;<samp>-kk</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cat file1
+key $<i></i>Revision: 1.2 $
+. . .
+$ cvs update -kk -j br1
+U file1
+RCS file: /cvsroot/first-dir/file1,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+Merging differences between 1.1 and 1.1.2.1 into file1
+$ cat file1
+key $<i></i>Revision$
+. . .
+</pre></div>
+
+<p>What is going on here is that revision 1.1 and 1.1.2.1
+both expand as plain <code>Revision</code>, and therefore
+merging the changes between them into the working
+directory need not change anything.  Therefore, there
+is no conflict.
+</p>
+<p>There is, however, one major caveat with using
+&lsquo;<samp>-kk</samp>&rsquo; on merges.  Namely, it overrides whatever
+keyword expansion mode <small>CVS</small> would normally have
+used.  In particular, this is a problem if the mode had
+been &lsquo;<samp>-kb</samp>&rsquo; for a binary file.  Therefore, if your
+repository contains binary files, you will need to deal
+with the conflicts rather than using &lsquo;<samp>-kk</samp>&rsquo;.
+</p>
+
+<p>As a result of using &lsquo;<samp>-kk</samp>&rsquo; during the merge, each 
file examined by the
+update will have &lsquo;<samp>-kk</samp>&rsquo; set as sticky options.  
Running <code>update -A</code>
+will clear the sticky options on unmodified files, but it will not clear
+the sticky options on modified files.  To get back to the default keyword
+substitution for modified files, you must commit the results of the merge
+and then run <code>update -A</code>.
+</p>
+<hr>
+<a name="Recursive-behavior"></a>
+<div class="header">
+<p>
+Next: <a href="#Adding-and-removing" accesskey="n" rel="next">Adding and 
removing</a>, Previous: <a href="#Branching-and-merging" accesskey="p" 
rel="prev">Branching and merging</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Recursive-behavior-1"></a>
+<h2 class="chapter">6 Recursive behavior</h2>
+<a name="index-Recursive-_0028directory-descending_0029"></a>
+<a name="index-Directory_002c-descending"></a>
+<a name="index-Descending-directories"></a>
+<a name="index-Subdirectories"></a>
+
+<p>Almost all of the subcommands of <small>CVS</small> work
+recursively when you specify a directory as an
+argument.  For instance, consider this directory
+structure:
+</p>
+<div class="example">
+<pre class="example">      <code>$HOME</code>
+        |
+        +--<tt>tc</tt>
+        |   |
+            +--<tt>CVS</tt>
+            |      (internal CVS files)
+            +--<tt>Makefile</tt>
+            +--<tt>backend.c</tt>
+            +--<tt>driver.c</tt>
+            +--<tt>frontend.c</tt>
+            +--<tt>parser.c</tt>
+            +--<tt>man</tt>
+            |    |
+            |    +--<tt>CVS</tt>
+            |    |  (internal CVS files)
+            |    +--<tt>tc.1</tt>
+            |
+            +--<tt>testing</tt>
+                 |
+                 +--<tt>CVS</tt>
+                 |  (internal CVS files)
+                 +--<tt>testpgm.t</tt>
+                 +--<tt>test2.t</tt>
+</pre></div>
+
+<p>If <samp>tc</samp> is the current working directory, the
+following is true:
+</p>
+<ul>
+<li> &lsquo;<samp>cvs update testing</samp>&rsquo; is equivalent to
+
+<div class="example">
+<pre class="example">cvs update testing/testpgm.t testing/test2.t
+</pre></div>
+
+</li><li> &lsquo;<samp>cvs update testing man</samp>&rsquo; updates all files 
in the
+subdirectories
+
+</li><li> &lsquo;<samp>cvs update .</samp>&rsquo; or just &lsquo;<samp>cvs 
update</samp>&rsquo; updates
+all files in the <code>tc</code> directory
+</li></ul>
+
+<p>If no arguments are given to <code>update</code> it will
+update all files in the current working directory and
+all its subdirectories.  In other words, <samp>.</samp> is a
+default argument to <code>update</code>.  This is also true
+for most of the <small>CVS</small> subcommands, not only the
+<code>update</code> command.
+</p>
+<p>The recursive behavior of the <small>CVS</small> subcommands can be
+turned off with the &lsquo;<samp>-l</samp>&rsquo; option.
+Conversely, the &lsquo;<samp>-R</samp>&rsquo; option can be used to force 
recursion if
+&lsquo;<samp>-l</samp>&rsquo; is specified in <samp>~/.cvsrc</samp> (see <a 
href="#g_t_007e_002f_002ecvsrc">~/.cvsrc</a>).
+</p>
+<div class="example">
+<pre class="example">$ cvs update -l         # <span class="roman">Don&rsquo;t 
update files in subdirectories</span>
+</pre></div>
+
+<hr>
+<a name="Adding-and-removing"></a>
+<div class="header">
+<p>
+Next: <a href="#History-browsing" accesskey="n" rel="next">History 
browsing</a>, Previous: <a href="#Recursive-behavior" accesskey="p" 
rel="prev">Recursive behavior</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Adding_002c-removing_002c-and-renaming-files-and-directories"></a>
+<h2 class="chapter">7 Adding, removing, and renaming files and directories</h2>
+
+<p>In the course of a project, one will often add new
+files.  Likewise with removing or renaming, or with
+directories.  The general concept to keep in mind in
+all these cases is that instead of making an
+irreversible change you want <small>CVS</small> to record the
+fact that a change has taken place, just as with
+modifying an existing file.  The exact mechanisms to do
+this in <small>CVS</small> vary depending on the situation.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Adding-files" 
accesskey="1">Adding files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Adding files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Removing-files" 
accesskey="2">Removing files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Removing files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Removing-directories" 
accesskey="3">Removing directories</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Removing directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Moving-files" 
accesskey="4">Moving files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Moving and renaming files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Moving-directories" 
accesskey="5">Moving directories</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Moving and renaming directories
+</td></tr>
+</table>
+
+<hr>
+<a name="Adding-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Removing-files" accesskey="n" rel="next">Removing files</a>, 
Up: <a href="#Adding-and-removing" accesskey="u" rel="up">Adding and 
removing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Adding-files-to-a-directory"></a>
+<h3 class="section">7.1 Adding files to a directory</h3>
+<a name="index-Adding-files"></a>
+
+<p>To add a new file to a directory, follow these steps.
+</p>
+<ul>
+<li> You must have a working copy of the directory.
+See <a href="#Getting-the-source">Getting the source</a>.
+
+</li><li> Create the new file inside your working copy of the directory.
+
+</li><li> Use &lsquo;<samp>cvs add <var>filename</var></samp>&rsquo; to tell 
<small>CVS</small> that you
+want to version control the file.  If the file contains
+binary data, specify &lsquo;<samp>-kb</samp>&rsquo; (see <a 
href="#Binary-files">Binary files</a>).
+
+</li><li> Use &lsquo;<samp>cvs commit <var>filename</var></samp>&rsquo; to 
actually check
+in the file into the repository.  Other developers
+cannot see the file until you perform this step.
+</li></ul>
+
+<p>You can also use the <code>add</code> command to add a new
+directory.
+</p>
+<p>Unlike most other commands, the <code>add</code> command is
+not recursive.  You have to explicitly name files and
+directories that you wish to add to the repository.
+However, each directory will need to be added
+separately before you will be able to add new files
+to those directories.
+</p>
+<div class="example">
+<pre class="example">$ mkdir -p foo/bar
+$ cp ~/myfile foo/bar/myfile
+$ cvs add foo foo/bar
+$ cvs add foo/bar/myfile
+</pre></div>
+
+<a name="index-add-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-add"></a>Command: <strong>cvs add</strong> 
<em>[<code>-k</code> kflag] [<code>-m</code> message] files &hellip;</em></dt>
+<dd>
+<p>Schedule <var>files</var> to be added to the repository.
+The files or directories specified with <code>add</code> must
+already exist in the current directory.  To add a whole
+new directory hierarchy to the source repository (for
+example, files received from a third-party vendor), use
+the <code>import</code> command instead.  See <a href="#import">import</a>.
+</p>
+<p>The added files are not placed in the source repository
+until you use <code>commit</code> to make the change
+permanent.  Doing an <code>add</code> on a file that was
+removed with the <code>remove</code> command will undo the
+effect of the <code>remove</code>, unless a <code>commit</code>
+command intervened.  See <a href="#Removing-files">Removing files</a>, for an
+example.
+</p>
+<p>The &lsquo;<samp>-k</samp>&rsquo; option specifies the default way that
+this file will be checked out; for more information see
+<a href="#Substitution-modes">Substitution modes</a>.
+</p>
+<p>The &lsquo;<samp>-m</samp>&rsquo; option specifies a description for the
+file.  This description appears in the history log (if
+it is enabled, see <a href="#history-file">history file</a>).  It will also be
+saved in the version history inside the repository when
+the file is committed.  The <code>log</code> command displays
+this description.  The description can be changed using
+&lsquo;<samp>admin -t</samp>&rsquo;.  See <a href="#admin">admin</a>.  If you 
omit the
+&lsquo;<samp>-m <var>description</var></samp>&rsquo; flag, an empty string will
+be used.  You will not be prompted for a description.
+</p></dd></dl>
+
+<p>For example, the following commands add the file
+<samp>backend.c</samp> to the repository:
+</p>
+<div class="example">
+<pre class="example">$ cvs add backend.c
+$ cvs commit -m &quot;Early version. Not yet compilable.&quot; backend.c
+</pre></div>
+
+<p>When you add a file it is added only on the branch
+which you are working on (see <a href="#Branching-and-merging">Branching and 
merging</a>).  You can
+later merge the additions to another branch if you want
+(see <a href="#Merging-adds-and-removals">Merging adds and removals</a>).
+</p>
+<hr>
+<a name="Removing-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Removing-directories" accesskey="n" rel="next">Removing 
directories</a>, Previous: <a href="#Adding-files" accesskey="p" 
rel="prev">Adding files</a>, Up: <a href="#Adding-and-removing" accesskey="u" 
rel="up">Adding and removing</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Removing-files-1"></a>
+<h3 class="section">7.2 Removing files</h3>
+<a name="index-Removing-files"></a>
+<a name="index-Deleting-files"></a>
+
+<p>Directories change.  New files are added, and old files
+disappear.  Still, you want to be able to retrieve an
+exact copy of old releases.
+</p>
+<p>Here is what you can do to remove a file,
+but remain able to retrieve old revisions:
+</p>
+<ul>
+<li> Make sure that you have not made any uncommitted
+modifications to the file.  See <a href="#Viewing-differences">Viewing 
differences</a>,
+for one way to do that.  You can also use the
+<code>status</code> or <code>update</code> command.  If you remove
+the file without committing your changes, you will of
+course not be able to retrieve the file as it was
+immediately before you deleted it.
+
+</li><li> Remove the file from your working copy of the directory.
+You can for instance use <code>rm</code>.
+
+</li><li> Use &lsquo;<samp>cvs remove <var>filename</var></samp>&rsquo; to 
tell <small>CVS</small> that
+you really want to delete the file.
+
+</li><li> Use &lsquo;<samp>cvs commit <var>filename</var></samp>&rsquo; to 
actually
+perform the removal of the file from the repository.
+</li></ul>
+
+<p>When you commit the removal of the file, <small>CVS</small>
+records the fact that the file no longer exists.  It is
+possible for a file to exist on only some branches and
+not on others, or to re-add another file with the same
+name later.  <small>CVS</small> will correctly create or not create
+the file, based on the &lsquo;<samp>-r</samp>&rsquo; and 
&lsquo;<samp>-D</samp>&rsquo; options
+specified to <code>checkout</code> or <code>update</code>.
+</p>
+<a name="index-Remove-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-remove"></a>Command: <strong>cvs remove</strong> 
<em>[options] files &hellip;</em></dt>
+<dd>
+<p>Schedule file(s) to be removed from the repository
+(files which have not already been removed from the
+working directory are not processed).  This command
+does not actually remove the file from the repository
+until you commit the removal.  For a full list of
+options, see <a href="#Invoking-CVS">Invoking CVS</a>.
+</p></dd></dl>
+
+<p>Here is an example of removing several files:
+</p>
+<div class="example">
+<pre class="example">$ cd test
+$ rm *.c
+$ cvs remove
+cvs remove: Removing .
+cvs remove: scheduling a.c for removal
+cvs remove: scheduling b.c for removal
+cvs remove: use 'cvs commit' to remove these files permanently
+$ cvs ci -m &quot;Removed unneeded files&quot;
+cvs commit: Examining .
+cvs commit: Committing .
+</pre></div>
+
+<p>As a convenience you can remove the file and <code>cvs
+remove</code> it in one step, by specifying the &lsquo;<samp>-f</samp>&rsquo;
+option.  For example, the above example could also be
+done like this:
+</p>
+<div class="example">
+<pre class="example">$ cd test
+$ cvs remove -f *.c
+cvs remove: scheduling a.c for removal
+cvs remove: scheduling b.c for removal
+cvs remove: use 'cvs commit' to remove these files permanently
+$ cvs ci -m &quot;Removed unneeded files&quot;
+cvs commit: Examining .
+cvs commit: Committing .
+</pre></div>
+
+<p>If you execute <code>remove</code> for a file, and then
+change your mind before you commit, you can undo the
+<code>remove</code> with an <code>add</code> command.
+</p>
+
+<div class="example">
+<pre class="example">$ ls
+CVS   ja.h  oj.c
+$ rm oj.c
+$ cvs remove oj.c
+cvs remove: scheduling oj.c for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+$ cvs add oj.c
+U oj.c
+cvs add: oj.c, version 1.1.1.1, resurrected
+</pre></div>
+
+<p>If you realize your mistake before you run the
+<code>remove</code> command you can use <code>update</code> to
+resurrect the file:
+</p>
+<div class="example">
+<pre class="example">$ rm oj.c
+$ cvs update oj.c
+cvs update: warning: oj.c was lost
+U oj.c
+</pre></div>
+
+<p>When you remove a file it is removed only on the branch
+which you are working on (see <a href="#Branching-and-merging">Branching and 
merging</a>).  You can
+later merge the removals to another branch if you want
+(see <a href="#Merging-adds-and-removals">Merging adds and removals</a>).
+</p>
+<hr>
+<a name="Removing-directories"></a>
+<div class="header">
+<p>
+Next: <a href="#Moving-files" accesskey="n" rel="next">Moving files</a>, 
Previous: <a href="#Removing-files" accesskey="p" rel="prev">Removing 
files</a>, Up: <a href="#Adding-and-removing" accesskey="u" rel="up">Adding and 
removing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Removing-directories-1"></a>
+<h3 class="section">7.3 Removing directories</h3>
+<a name="index-Removing-directories"></a>
+<a name="index-Directories_002c-removing"></a>
+
+<p>In concept, removing directories is somewhat similar to
+removing files&mdash;you want the directory to not exist in
+your current working directories, but you also want to
+be able to retrieve old releases in which the directory
+existed.
+</p>
+<p>The way that you remove a directory is to remove all
+the files in it.  You don&rsquo;t remove the directory
+itself; there is no way to do that.
+Instead you specify the &lsquo;<samp>-P</samp>&rsquo; option to
+<code>cvs update</code> or <code>cvs checkout</code>,
+which will cause <small>CVS</small> to remove empty
+directories from working directories.
+(Note that <code>cvs export</code> always removes empty directories.)
+Probably the
+best way to do this is to always specify &lsquo;<samp>-P</samp>&rsquo;; if
+you want an empty directory then put a dummy file (for
+example <samp>.keepme</samp>) in it to prevent &lsquo;<samp>-P</samp>&rsquo; 
from
+removing it.
+</p>
+<p>Note that &lsquo;<samp>-P</samp>&rsquo; is implied by the 
&lsquo;<samp>-r</samp>&rsquo; or &lsquo;<samp>-D</samp>&rsquo;
+options of <code>checkout</code>.  This way,
+<small>CVS</small> will be able to correctly create the directory
+or not depending on whether the particular version you
+are checking out contains any files in that directory.
+</p>
+<hr>
+<a name="Moving-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Moving-directories" accesskey="n" rel="next">Moving 
directories</a>, Previous: <a href="#Removing-directories" accesskey="p" 
rel="prev">Removing directories</a>, Up: <a href="#Adding-and-removing" 
accesskey="u" rel="up">Adding and removing</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Moving-and-renaming-files"></a>
+<h3 class="section">7.4 Moving and renaming files</h3>
+<a name="index-Moving-files"></a>
+<a name="index-Renaming-files"></a>
+<a name="index-Files_002c-moving"></a>
+
+<p>Moving files to a different directory or renaming them
+is not difficult, but some of the ways in which this
+works may be non-obvious.  (Moving or renaming a
+directory is even harder.  See <a href="#Moving-directories">Moving 
directories</a>.).
+</p>
+<p>The examples below assume that the file <var>old</var> is renamed to
+<var>new</var>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Outside" 
accesskey="1">Outside</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The normal way to Rename
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Inside" 
accesskey="2">Inside</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">A tricky, alternative way
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Rename-by-copying" 
accesskey="3">Rename by copying</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Another tricky, alternative way
+</td></tr>
+</table>
+
+<hr>
+<a name="Outside"></a>
+<div class="header">
+<p>
+Next: <a href="#Inside" accesskey="n" rel="next">Inside</a>, Up: <a 
href="#Moving-files" accesskey="u" rel="up">Moving files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="The-Normal-way-to-Rename"></a>
+<h4 class="subsection">7.4.1 The Normal way to Rename</h4>
+
+
+<p>The normal way to move a file is to copy <var>old</var> to
+<var>new</var>, and then issue the normal <small>CVS</small> commands
+to remove <var>old</var> from the repository, and add
+<var>new</var> to it.
+</p>
+<div class="example">
+<pre class="example">$ mv <var>old</var> <var>new</var>
+$ cvs remove <var>old</var>
+$ cvs add <var>new</var>
+$ cvs commit -m &quot;Renamed <var>old</var> to <var>new</var>&quot; 
<var>old</var> <var>new</var>
+</pre></div>
+
+<p>This is the simplest way to move a file, it is not
+error-prone, and it preserves the history of what was
+done.  Note that to access the history of the file you
+must specify the old or the new name, depending on what
+portion of the history you are accessing.  For example,
+<code>cvs log <var>old</var></code> will give the log up until the
+time of the rename.
+</p>
+<p>When <var>new</var> is committed its revision numbers will
+start again, usually at 1.1, so if that bothers you,
+use the &lsquo;<samp>-r rev</samp>&rsquo; option to commit.  For more
+information see <a href="#Assigning-revisions">Assigning revisions</a>.
+</p>
+<hr>
+<a name="Inside"></a>
+<div class="header">
+<p>
+Next: <a href="#Rename-by-copying" accesskey="n" rel="next">Rename by 
copying</a>, Previous: <a href="#Outside" accesskey="p" rel="prev">Outside</a>, 
Up: <a href="#Moving-files" accesskey="u" rel="up">Moving files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Moving-the-history-file"></a>
+<h4 class="subsection">7.4.2 Moving the history file</h4>
+
+<p>This method is more dangerous, since it involves moving
+files inside the repository.  Read this entire section
+before trying it out!
+</p>
+<div class="example">
+<pre class="example">$ cd $CVSROOT/<var>dir</var>
+$ mv <var>old</var>,v <var>new</var>,v
+</pre></div>
+
+<p>Advantages:
+</p>
+<ul>
+<li> The log of changes is maintained intact.
+
+</li><li> The revision numbers are not affected.
+</li></ul>
+
+<p>Disadvantages:
+</p>
+<ul>
+<li> Old releases cannot easily be fetched from the
+repository.  (The file will show up as <var>new</var> even
+in revisions from the time before it was renamed).
+
+</li><li> There is no log information of when the file was renamed.
+
+</li><li> Nasty things might happen if someone accesses the history file
+while you are moving it.  Make sure no one else runs any of the 
<small>CVS</small>
+commands while you move it.
+</li></ul>
+
+<hr>
+<a name="Rename-by-copying"></a>
+<div class="header">
+<p>
+Previous: <a href="#Inside" accesskey="p" rel="prev">Inside</a>, Up: <a 
href="#Moving-files" accesskey="u" rel="up">Moving files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Copying-the-history-file"></a>
+<h4 class="subsection">7.4.3 Copying the history file</h4>
+
+<p>This way also involves direct modifications to the
+repository.  It is safe, but not without drawbacks.
+</p>
+<div class="example">
+<pre class="example"># <span class="roman">Copy the RCS file inside the 
repository</span>
+$ cd $CVSROOT/<var>dir</var>
+$ cp <var>old</var>,v <var>new</var>,v
+# <span class="roman">Remove the old file</span>
+$ cd ~/<var>dir</var>
+$ rm <var>old</var>
+$ cvs remove <var>old</var>
+$ cvs commit <var>old</var>
+# <span class="roman">Remove all tags from <var>new</var></span>
+$ cvs update <var>new</var>
+$ cvs log <var>new</var>             # <span class="roman">Remember the 
non-branch tag names</span>
+$ cvs tag -d <var>tag1</var> <var>new</var>
+$ cvs tag -d <var>tag2</var> <var>new</var>
+&hellip;
+</pre></div>
+
+<p>By removing the tags you will be able to check out old
+revisions.
+</p>
+<p>Advantages:
+</p>
+<ul>
+<li> Checking out old revisions works correctly, as long as
+you use &lsquo;<samp>-r<var>tag</var></samp>&rsquo; and not 
&lsquo;<samp>-D<var>date</var></samp>&rsquo;
+to retrieve the revisions.
+
+</li><li> The log of changes is maintained intact.
+
+</li><li> The revision numbers are not affected.
+</li></ul>
+
+<p>Disadvantages:
+</p>
+<ul>
+<li> You cannot easily see the history of the file across the rename.
+
+</li></ul>
+
+<hr>
+<a name="Moving-directories"></a>
+<div class="header">
+<p>
+Previous: <a href="#Moving-files" accesskey="p" rel="prev">Moving files</a>, 
Up: <a href="#Adding-and-removing" accesskey="u" rel="up">Adding and 
removing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Moving-and-renaming-directories"></a>
+<h3 class="section">7.5 Moving and renaming directories</h3>
+<a name="index-Moving-directories"></a>
+<a name="index-Renaming-directories"></a>
+<a name="index-Directories_002c-moving"></a>
+
+<p>The normal way to rename or move a directory is to
+rename or move each file within it as described in
+<a href="#Outside">Outside</a>.  Then check out with the 
&lsquo;<samp>-P</samp>&rsquo;
+option, as described in <a href="#Removing-directories">Removing 
directories</a>.
+</p>
+<p>If you really want to hack the repository to rename or
+delete a directory in the repository, you can do it
+like this:
+</p>
+<ol>
+<li> Inform everyone who has a checked out copy of the directory that the
+directory will be renamed.  They should commit all their changes in all their
+copies of the project containing the directory to be removed, and remove
+all their working copies of said project, before you take the steps below.
+
+</li><li> Rename the directory inside the repository.
+
+<div class="example">
+<pre class="example">$ cd $CVSROOT/<var>parent-dir</var>
+$ mv <var>old-dir</var> <var>new-dir</var>
+</pre></div>
+
+</li><li> Fix the <small>CVS</small> administrative files, if necessary (for
+instance if you renamed an entire module).
+
+</li><li> Tell everyone that they can check out again and continue
+working.
+
+</li></ol>
+
+<p>If someone had a working copy the <small>CVS</small> commands will
+cease to work for him, until he removes the directory
+that disappeared inside the repository.
+</p>
+<p>It is almost always better to move the files in the
+directory instead of moving the directory.  If you move the
+directory you are unlikely to be able to retrieve old
+releases correctly, since they probably depend on the
+name of the directories.
+</p>
+<hr>
+<a name="History-browsing"></a>
+<div class="header">
+<p>
+Next: <a href="#Binary-files" accesskey="n" rel="next">Binary files</a>, 
Previous: <a href="#Adding-and-removing" accesskey="p" rel="prev">Adding and 
removing</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="History-browsing-1"></a>
+<h2 class="chapter">8 History browsing</h2>
+<a name="index-History-browsing"></a>
+<a name="index-Traceability"></a>
+<a name="index-Isolation"></a>
+
+
+<p>Once you have used <small>CVS</small> to store a version control
+history&mdash;what files have changed when, how, and by
+whom, there are a variety of mechanisms for looking
+through the history.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#log-messages" 
accesskey="1">log messages</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Log messages
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#history-database" 
accesskey="2">history database</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The history database
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#user_002ddefined-logging" 
accesskey="3">user-defined logging</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">User-defined logging
+</td></tr>
+</table>
+
+<hr>
+<a name="log-messages"></a>
+<div class="header">
+<p>
+Next: <a href="#history-database" accesskey="n" rel="next">history 
database</a>, Up: <a href="#History-browsing" accesskey="u" rel="up">History 
browsing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Log-messages"></a>
+<h3 class="section">8.1 Log messages</h3>
+
+<p>Whenever you commit a file you specify a log message.
+</p>
+<p>To look through the log messages which have been
+specified for every revision which has been committed,
+use the <code>cvs log</code> command (see <a href="#log">log</a>).
+</p>
+<hr>
+<a name="history-database"></a>
+<div class="header">
+<p>
+Next: <a href="#user_002ddefined-logging" accesskey="n" 
rel="next">user-defined logging</a>, Previous: <a href="#log-messages" 
accesskey="p" rel="prev">log messages</a>, Up: <a href="#History-browsing" 
accesskey="u" rel="up">History browsing</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="The-history-database"></a>
+<h3 class="section">8.2 The history database</h3>
+
+<p>You can use the history file (see <a href="#history-file">history file</a>) 
to
+log various <small>CVS</small> actions.  To retrieve the
+information from the history file, use the <code>cvs
+history</code> command (see <a href="#history">history</a>).
+</p>
+<p>Note: you can control what is logged to this file by using the
+&lsquo;<samp>LogHistory</samp>&rsquo; keyword in the 
<samp>CVSROOT/config</samp> file
+(see <a href="#config">config</a>).
+</p>
+
+<hr>
+<a name="user_002ddefined-logging"></a>
+<div class="header">
+<p>
+Previous: <a href="#history-database" accesskey="p" rel="prev">history 
database</a>, Up: <a href="#History-browsing" accesskey="u" rel="up">History 
browsing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="User_002ddefined-logging"></a>
+<h3 class="section">8.3 User-defined logging</h3>
+
+<p>You can customize <small>CVS</small> to log various kinds of
+actions, in whatever manner you choose.  These
+mechanisms operate by executing a script at various
+times.  The script might append a message to a file
+listing the information and the programmer who created
+it, or send mail to a group of developers, or, perhaps,
+post a message to a particular newsgroup.  To log
+commits, use the <samp>loginfo</samp> file (see <a 
href="#loginfo">loginfo</a>).
+To log tags, use the <samp>taginfo</samp> file (see <a 
href="#taginfo">taginfo</a>).
+To log checkouts, exports, and tags,
+respectively, you can also use the
+&lsquo;<samp>-o</samp>&rsquo;, &lsquo;<samp>-e</samp>&rsquo;, and 
&lsquo;<samp>-t</samp>&rsquo; options in the
+modules file.  For a more flexible way of giving
+notifications to various users, which requires less in
+the way of keeping centralized scripts up to date, use
+the <code>cvs watch add</code> command (see <a 
href="#Getting-Notified">Getting Notified</a>); this command is useful even if 
you are not
+using <code>cvs watch on</code>.
+</p>
+<hr>
+<a name="Binary-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Multiple-developers" accesskey="n" rel="next">Multiple 
developers</a>, Previous: <a href="#History-browsing" accesskey="p" 
rel="prev">History browsing</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Handling-binary-files"></a>
+<h2 class="chapter">9 Handling binary files</h2>
+<a name="index-Binary-files"></a>
+
+<p>The most common use for <small>CVS</small> is to store text
+files.  With text files, <small>CVS</small> can merge revisions,
+display the differences between revisions in a
+human-visible fashion, and other such operations.
+However, if you are willing to give up a few of these
+abilities, <small>CVS</small> can store binary files.  For
+example, one might store a web site in <small>CVS</small>
+including both text files and binary images.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Binary-why" 
accesskey="1">Binary why</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">More details on issues with binary files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Binary-howto" 
accesskey="2">Binary howto</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">How to store them
+</td></tr>
+</table>
+
+<hr>
+<a name="Binary-why"></a>
+<div class="header">
+<p>
+Next: <a href="#Binary-howto" accesskey="n" rel="next">Binary howto</a>, Up: 
<a href="#Binary-files" accesskey="u" rel="up">Binary files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="The-issues-with-binary-files"></a>
+<h3 class="section">9.1 The issues with binary files</h3>
+
+<p>While the need to manage binary files may seem obvious
+if the files that you customarily work with are binary,
+putting them into version control does present some
+additional issues.
+</p>
+<p>One basic function of version control is to show the
+differences between two revisions.  For example, if
+someone else checked in a new version of a file, you
+may wish to look at what they changed and determine
+whether their changes are good.  For text files,
+<small>CVS</small> provides this functionality via the <code>cvs
+diff</code> command.  For binary files, it may be possible to
+extract the two revisions and then compare them with a
+tool external to <small>CVS</small> (for example, word processing
+software often has such a feature).  If there is no
+such tool, one must track changes via other mechanisms,
+such as urging people to write good log messages, and
+hoping that the changes they actually made were the
+changes that they intended to make.
+</p>
+<p>Another ability of a version control system is the
+ability to merge two revisions.  For <small>CVS</small> this
+happens in two contexts.  The first is when users make
+changes in separate working directories
+(see <a href="#Multiple-developers">Multiple developers</a>).  The second is 
when one
+merges explicitly with the &lsquo;<samp>update -j</samp>&rsquo; command
+(see <a href="#Branching-and-merging">Branching and merging</a>).
+</p>
+<p>In the case of text
+files, <small>CVS</small> can merge changes made independently,
+and signal a conflict if the changes conflict.  With
+binary files, the best that <small>CVS</small> can do is present
+the two different copies of the file, and leave it to
+the user to resolve the conflict.  The user may choose
+one copy or the other, or may run an external merge
+tool which knows about that particular file format, if
+one exists.
+Note that having the user merge relies primarily on the
+user to not accidentally omit some changes, and thus is
+potentially error prone.
+</p>
+<p>If this process is thought to be undesirable, the best
+choice may be to avoid merging.  To avoid the merges
+that result from separate working directories, see the
+discussion of reserved checkouts (file locking) in
+<a href="#Multiple-developers">Multiple developers</a>.  To avoid the merges
+resulting from branches, restrict use of branches.
+</p>
+<hr>
+<a name="Binary-howto"></a>
+<div class="header">
+<p>
+Previous: <a href="#Binary-why" accesskey="p" rel="prev">Binary why</a>, Up: 
<a href="#Binary-files" accesskey="u" rel="up">Binary files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="How-to-store-binary-files"></a>
+<h3 class="section">9.2 How to store binary files</h3>
+
+<p>There are two issues with using <small>CVS</small> to store
+binary files.  The first is that <small>CVS</small> by default
+converts line endings between the canonical form in
+which they are stored in the repository (linefeed
+only), and the form appropriate to the operating system
+in use on the client (for example, carriage return
+followed by line feed for Windows NT).
+</p>
+<p>The second is that a binary file might happen to
+contain data which looks like a keyword (see <a 
href="#Keyword-substitution">Keyword substitution</a>), so keyword expansion 
must be turned
+off.
+</p>
+
+<p>The &lsquo;<samp>-kb</samp>&rsquo; option available with some 
<small>CVS</small>
+commands insures that neither line ending conversion
+nor keyword expansion will be done.
+</p>
+<p>Here is an example of how you can create a new file
+using the &lsquo;<samp>-kb</samp>&rsquo; flag:
+</p>
+<div class="example">
+<pre class="example">$ echo '$<i></i>Id$' &gt; kotest
+$ cvs add -kb -m&quot;A test file&quot; kotest
+$ cvs ci -m&quot;First checkin; contains a keyword&quot; kotest
+</pre></div>
+
+<p>If a file accidentally gets added without &lsquo;<samp>-kb</samp>&rsquo;,
+one can use the <code>cvs admin</code> command to recover.
+For example:
+</p>
+<div class="example">
+<pre class="example">$ echo '$<i></i>Id$' &gt; kotest
+$ cvs add -m&quot;A test file&quot; kotest
+$ cvs ci -m&quot;First checkin; contains a keyword&quot; kotest
+$ cvs admin -kb kotest
+$ cvs update -A kotest
+# <span class="roman">For non-unix systems:</span>
+# <span class="roman">Copy in a good copy of the file from outside CVS</span>
+$ cvs commit -m &quot;make it binary&quot; kotest
+</pre></div>
+
+<p>When you check in the file <samp>kotest</samp> the file is
+not preserved as a binary file, because you did not
+check it in as a binary file.  The <code>cvs
+admin -kb</code> command sets the default keyword
+substitution method for this file, but it does not
+alter the working copy of the file that you have.  If you need to
+cope with line endings (that is, you are using
+<small>CVS</small> on a non-unix system), then you need to
+check in a new copy of the file, as shown by the
+<code>cvs commit</code> command above.
+On unix, the <code>cvs update -A</code> command suffices.
+(Note that you can use <code>cvs log</code> to determine the default keyword
+substitution method for a file and <code>cvs status</code> to determine
+the keyword substitution method for a working copy.)
+</p>
+<p>However, in using <code>cvs admin -k</code> to change the
+keyword expansion, be aware that the keyword expansion
+mode is not version controlled.  This means that, for
+example, that if you have a text file in old releases,
+and a binary file with the same name in new releases,
+<small>CVS</small> provides no way to check out the file in text
+or binary mode depending on what version you are
+checking out.  There is no good workaround for this
+problem.
+</p>
+<p>You can also set a default for whether <code>cvs add</code>
+and <code>cvs import</code> treat a file as binary based on
+its name; for example you could say that files who
+names end in &lsquo;<samp>.exe</samp>&rsquo; are binary.  See <a 
href="#Wrappers">Wrappers</a>.
+There is currently no way to have <small>CVS</small> detect
+whether a file is binary based on its contents.  The
+main difficulty with designing such a feature is that
+it is not clear how to distinguish between binary and
+non-binary files, and the rules to apply would vary
+considerably with the operating system.
+</p>
+<hr>
+<a name="Multiple-developers"></a>
+<div class="header">
+<p>
+Next: <a href="#Revision-management" accesskey="n" rel="next">Revision 
management</a>, Previous: <a href="#Binary-files" accesskey="p" 
rel="prev">Binary files</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Multiple-developers-1"></a>
+<h2 class="chapter">10 Multiple developers</h2>
+<a name="index-Multiple-developers"></a>
+<a name="index-Team-of-developers"></a>
+<a name="index-File-locking"></a>
+<a name="index-Locking-files"></a>
+<a name="index-Working-copy"></a>
+<a name="index-Reserved-checkouts"></a>
+<a name="index-Unreserved-checkouts"></a>
+<a name="index-RCS_002dstyle-locking"></a>
+
+<p>When more than one person works on a software project
+things often get complicated.  Often, two people try to
+edit the same file simultaneously.  One solution, known
+as <em>file locking</em> or <em>reserved checkouts</em>, is
+to allow only one person to edit each file at a time.
+This is the only solution with some version control
+systems, including <small>RCS</small> and <small>SCCS</small>.  Currently
+the usual way to get reserved checkouts with <small>CVS</small>
+is the <code>cvs admin -l</code> command (see <a href="#admin-options">admin 
options</a>).  This is not as nicely integrated into
+<small>CVS</small> as the watch features, described below, but it
+seems that most people with a need for reserved
+checkouts find it adequate.
+It also may be possible to use the watches
+features described below, together with suitable
+procedures (not enforced by software), to avoid having
+two people edit at the same time.
+</p>
+<p>The default model with <small>CVS</small> is known as
+<em>unreserved checkouts</em>.  In this model, developers
+can edit their own <em>working copy</em> of a file
+simultaneously.  The first person that commits his
+changes has no automatic way of knowing that another
+has started to edit it.  Others will get an error
+message when they try to commit the file.  They must
+then use <small>CVS</small> commands to bring their working copy
+up to date with the repository revision.  This process
+is almost automatic.
+</p>
+<p><small>CVS</small> also supports mechanisms which facilitate
+various kinds of communication, without actually
+enforcing rules like reserved checkouts do.
+</p>
+<p>The rest of this chapter describes how these various
+models work, and some of the issues involved in
+choosing between them.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#File-status" 
accesskey="1">File status</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">A file can be in several states
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Updating-a-file" 
accesskey="2">Updating a file</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Bringing a file up-to-date
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Conflicts-example" 
accesskey="3">Conflicts example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">An informative example
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Informing-others" 
accesskey="4">Informing others</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">To cooperate you must inform
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Concurrency" 
accesskey="5">Concurrency</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Simultaneous repository access
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Watches" 
accesskey="6">Watches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Mechanisms to track who is editing files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Choosing-a-model" 
accesskey="7">Choosing a model</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Reserved or unreserved checkouts?
+</td></tr>
+</table>
+
+<hr>
+<a name="File-status"></a>
+<div class="header">
+<p>
+Next: <a href="#Updating-a-file" accesskey="n" rel="next">Updating a file</a>, 
Up: <a href="#Multiple-developers" accesskey="u" rel="up">Multiple 
developers</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="File-status-1"></a>
+<h3 class="section">10.1 File status</h3>
+<a name="index-File-status"></a>
+<a name="index-Status-of-a-file"></a>
+
+<p>Based on what operations you have performed on a
+checked out file, and what operations others have
+performed to that file in the repository, one can
+classify a file in a number of states.  The states, as
+reported by the <code>status</code> command, are:
+</p>
+<dl compact="compact">
+<dd><a name="index-Up_002dto_002ddate"></a>
+</dd>
+<dt>Up-to-date</dt>
+<dd><p>The file is identical with the latest revision in the
+repository for the branch in use.
+</p>
+</dd>
+<dt>Locally Modified</dt>
+<dd><a name="index-Locally-Modified"></a>
+<p>You have edited the file, and not yet committed your changes.
+</p>
+</dd>
+<dt>Locally Added</dt>
+<dd><a name="index-Locally-Added"></a>
+<p>You have added the file with <code>add</code>, and not yet
+committed your changes.
+</p>
+</dd>
+<dt>Locally Removed</dt>
+<dd><a name="index-Locally-Removed"></a>
+<p>You have removed the file with <code>remove</code>, and not yet
+committed your changes.
+</p>
+</dd>
+<dt>Needs Checkout</dt>
+<dd><a name="index-Needs-Checkout"></a>
+<p>Someone else has committed a newer revision to the
+repository.  The name is slightly misleading; you will
+ordinarily use <code>update</code> rather than
+<code>checkout</code> to get that newer revision.
+</p>
+</dd>
+<dt>Needs Patch</dt>
+<dd><a name="index-Needs-Patch"></a>
+<p>Like Needs Checkout, but the <small>CVS</small> server will send
+a patch rather than the entire file.  Sending a patch or
+sending an entire file accomplishes the same thing.
+</p>
+</dd>
+<dt>Needs Merge</dt>
+<dd><a name="index-Needs-Merge"></a>
+<p>Someone else has committed a newer revision to the repository, and you
+have also made modifications to the file.
+</p>
+</dd>
+<dt>Unresolved Conflict</dt>
+<dd><a name="index-Unresolved-Conflict"></a>
+<p>A file with the same name as this new file has been added to the repository
+from a second workspace.  This file will need to be moved out of the way
+to allow an <code>update</code> to complete.
+</p>
+</dd>
+<dt>File had conflicts on merge</dt>
+<dd><a name="index-File-had-conflicts-on-merge"></a>
+<p>This is like Locally Modified, except that a previous
+<code>update</code> command gave a conflict.  If you have not
+already done so, you need to
+resolve the conflict as described in <a href="#Conflicts-example">Conflicts 
example</a>.
+</p>
+</dd>
+<dt>Unknown</dt>
+<dd><a name="index-Unknown"></a>
+<p><small>CVS</small> doesn&rsquo;t know anything about this file.  For
+example, you have created a new file and have not run
+<code>add</code>.
+</p>
+</dd>
+</dl>
+
+<p>To help clarify the file status, <code>status</code> also
+reports the <code>Working revision</code> which is the
+revision that the file in the working directory derives
+from, and the <code>Repository revision</code> which is the
+latest revision in the repository for the branch in
+use.
+</p>
+<p>The options to <code>status</code> are listed in
+<a href="#Invoking-CVS">Invoking CVS</a>.  For information on its <code>Sticky 
tag</code>
+and <code>Sticky date</code> output, see <a href="#Sticky-tags">Sticky 
tags</a>.
+For information on its <code>Sticky options</code> output,
+see the &lsquo;<samp>-k</samp>&rsquo; option in <a 
href="#update-options">update options</a>.
+</p>
+<p>You can think of the <code>status</code> and <code>update</code>
+commands as somewhat complementary.  You use
+<code>update</code> to bring your files up to date, and you
+can use <code>status</code> to give you some idea of what an
+<code>update</code> would do (of course, the state of the
+repository might change before you actually run
+<code>update</code>).  In fact, if you want a command to
+display file status in a more brief format than is
+displayed by the <code>status</code> command, you can invoke
+</p>
+<a name="index-update_002c-to-display-file-status"></a>
+<div class="example">
+<pre class="example">$ cvs -n -q update
+</pre></div>
+
+<p>The &lsquo;<samp>-n</samp>&rsquo; option means to not actually do the
+update, but merely to display statuses; the &lsquo;<samp>-q</samp>&rsquo;
+option avoids printing the name of each directory.  For
+more information on the <code>update</code> command, and
+these options, see <a href="#Invoking-CVS">Invoking CVS</a>.
+</p>
+<hr>
+<a name="Updating-a-file"></a>
+<div class="header">
+<p>
+Next: <a href="#Conflicts-example" accesskey="n" rel="next">Conflicts 
example</a>, Previous: <a href="#File-status" accesskey="p" rel="prev">File 
status</a>, Up: <a href="#Multiple-developers" accesskey="u" rel="up">Multiple 
developers</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Bringing-a-file-up-to-date"></a>
+<h3 class="section">10.2 Bringing a file up to date</h3>
+<a name="index-Bringing-a-file-up-to-date"></a>
+<a name="index-Updating-a-file"></a>
+<a name="index-Merging-a-file"></a>
+<a name="index-Update_002c-introduction"></a>
+
+<p>When you want to update or merge a file, use the <code>cvs update -d</code>
+command.  For files that are not up to date this is roughly equivalent
+to a <code>checkout</code> command: the newest revision of the file is
+extracted from the repository and put in your working directory.  The
+<code>-d</code> option, not necessary with <code>checkout</code>, tells 
<small>CVS</small>
+that you wish it to create directories added by other developers.
+</p>
+<p>Your modifications to a file are never lost when you
+use <code>update</code>.  If no newer revision exists,
+running <code>update</code> has no effect.  If you have
+edited the file, and a newer revision is available,
+<small>CVS</small> will merge all changes into your working copy.
+</p>
+<p>For instance, imagine that you checked out revision 1.4 and started
+editing it.  In the meantime someone else committed revision 1.5, and
+shortly after that revision 1.6.  If you run <code>update</code> on the file
+now, <small>CVS</small> will incorporate all changes between revision 1.4 and 
1.6 into
+your file.
+</p>
+<a name="index-Overlap"></a>
+<p>If any of the changes between 1.4 and 1.6 were made too
+close to any of the changes you have made, an
+<em>overlap</em> occurs.  In such cases a warning is
+printed, and the resulting file includes both
+versions of the lines that overlap, delimited by
+special markers.
+See <a href="#update">update</a>, for a complete description of the
+<code>update</code> command.
+</p>
+<hr>
+<a name="Conflicts-example"></a>
+<div class="header">
+<p>
+Next: <a href="#Informing-others" accesskey="n" rel="next">Informing 
others</a>, Previous: <a href="#Updating-a-file" accesskey="p" 
rel="prev">Updating a file</a>, Up: <a href="#Multiple-developers" 
accesskey="u" rel="up">Multiple developers</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Conflicts-example-1"></a>
+<h3 class="section">10.3 Conflicts example</h3>
+<a name="index-Merge_002c-an-example"></a>
+<a name="index-Example-of-merge"></a>
+<a name="index-driver_002ec-_0028merge-example_0029"></a>
+
+<p>Suppose revision 1.4 of <samp>driver.c</samp> contains this:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdio.h&gt;
+
+void main()
+{
+    parse();
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(nerr == 0 ? 0 : 1);
+}
+</pre></div>
+
+<p>Revision 1.6 of <samp>driver.c</samp> contains this:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdio.h&gt;
+
+int main(int argc,
+         char **argv)
+{
+    parse();
+    if (argc != 1)
+    {
+        fprintf(stderr, &quot;tc: No args expected.\n&quot;);
+        exit(1);
+    }
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(!!nerr);
+}
+</pre></div>
+
+<p>Your working copy of <samp>driver.c</samp>, based on revision
+1.4, contains this before you run &lsquo;<samp>cvs update</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+
+void main()
+{
+    init_scanner();
+    parse();
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+</pre></div>
+
+<p>You run &lsquo;<samp>cvs update</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cvs update driver.c
+RCS file: /usr/local/cvsroot/yoyodyne/tc/driver.c,v
+retrieving revision 1.4
+retrieving revision 1.6
+Merging differences between 1.4 and 1.6 into driver.c
+rcsmerge warning: overlaps during merge
+cvs update: conflicts found in driver.c
+C driver.c
+</pre></div>
+
+<a name="index-Conflicts-_0028merge-example_0029"></a>
+<p><small>CVS</small> tells you that there were some conflicts.
+Your original working file is saved unmodified in
+<samp>.#driver.c.1.4</samp>.  The new version of
+<samp>driver.c</samp> contains this:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+
+int main(int argc,
+         char **argv)
+{
+    init_scanner();
+    parse();
+    if (argc != 1)
+    {
+        fprintf(stderr, &quot;tc: No args expected.\n&quot;);
+        exit(1);
+    }
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+&lt;&lt;&lt;&lt;&lt;&lt;&lt; driver.c
+    exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+=======
+    exit(!!nerr);
+&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1.6
+}
+</pre></div>
+
+<a name="index-Markers_002c-conflict"></a>
+<a name="index-Conflict-markers"></a>
+<a name="index-_003c_003c_003c_003c_003c_003c_003c"></a>
+<a name="index-_003e_003e_003e_003e_003e_003e_003e"></a>
+<a name="index-_003d_003d_003d_003d_003d_003d_003d"></a>
+
+<p>Note how all non-overlapping modifications are incorporated in your working
+copy, and that the overlapping section is clearly marked with
+&lsquo;<samp>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</samp>&rsquo;, 
&lsquo;<samp>=======</samp>&rsquo; and 
&lsquo;<samp>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</samp>&rsquo;.
+</p>
+<a name="index-Resolving-a-conflict"></a>
+<a name="index-Conflict-resolution"></a>
+<p>You resolve the conflict by editing the file, removing the markers and
+the erroneous line.  Suppose you end up with this file:
+</p><div class="example">
+<pre class="example">#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+
+int main(int argc,
+         char **argv)
+{
+    init_scanner();
+    parse();
+    if (argc != 1)
+    {
+        fprintf(stderr, &quot;tc: No args expected.\n&quot;);
+        exit(1);
+    }
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+</pre></div>
+
+<p>You can now go ahead and commit this as revision 1.7.
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Initialize scanner. Use symbolic 
exit values.&quot; driver.c
+Checking in driver.c;
+/usr/local/cvsroot/yoyodyne/tc/driver.c,v  &lt;--  driver.c
+new revision: 1.7; previous revision: 1.6
+done
+</pre></div>
+
+<p>For your protection, <small>CVS</small> will refuse to check in a
+file if a conflict occurred and you have not resolved
+the conflict.  Currently to resolve a conflict, you
+must change the timestamp on the file.  In previous
+versions of <small>CVS</small>, you also needed to
+insure that the file contains no conflict markers.
+Because
+your file may legitimately contain conflict markers (that
+is, occurrences of &lsquo;<samp>&gt;&gt;&gt;&gt;&gt;&gt;&gt; </samp>&rsquo; at 
the start of a
+line that don&rsquo;t mark a conflict), the current
+version of <small>CVS</small> will print a warning and proceed to
+check in the file.
+</p>
+<a name="index-emerge"></a>
+<p>If you use release 1.04 or later of pcl-cvs (a <small>GNU</small>
+Emacs front-end for <small>CVS</small>) you can use an Emacs
+package called emerge to help you resolve conflicts.
+See the documentation for pcl-cvs.
+</p>
+<hr>
+<a name="Informing-others"></a>
+<div class="header">
+<p>
+Next: <a href="#Concurrency" accesskey="n" rel="next">Concurrency</a>, 
Previous: <a href="#Conflicts-example" accesskey="p" rel="prev">Conflicts 
example</a>, Up: <a href="#Multiple-developers" accesskey="u" rel="up">Multiple 
developers</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Informing-others-about-commits"></a>
+<h3 class="section">10.4 Informing others about commits</h3>
+<a name="index-Informing-others"></a>
+<a name="index-Spreading-information"></a>
+<a name="index-Mail_002c-automatic-mail-on-commit"></a>
+
+<p>It is often useful to inform others when you commit a
+new revision of a file.  The <samp>loginfo</samp> file can be
+used to automate this process.
+See <a href="#loginfo">loginfo</a>.  You can use these features of 
<small>CVS</small>
+to, for instance, instruct <small>CVS</small> to mail a
+message to all developers, or post a message to a local
+newsgroup.
+</p>
+<hr>
+<a name="Concurrency"></a>
+<div class="header">
+<p>
+Next: <a href="#Watches" accesskey="n" rel="next">Watches</a>, Previous: <a 
href="#Informing-others" accesskey="p" rel="prev">Informing others</a>, Up: <a 
href="#Multiple-developers" accesskey="u" rel="up">Multiple developers</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Several-developers-simultaneously-attempting-to-run-CVS"></a>
+<h3 class="section">10.5 Several developers simultaneously attempting to run 
CVS</h3>
+
+<a name="index-Locks_002c-cvs_002c-introduction"></a>
+<p>If several developers try to run <small>CVS</small> at the same
+time, one may get the following message:
+</p>
+<div class="example">
+<pre class="example">[11:43:23] waiting for bach's lock in 
/usr/local/cvsroot/foo
+</pre></div>
+
+<a name="index-_0023cvs_002erfl_002c-removing"></a>
+<a name="index-_0023cvs_002ewfl_002c-removing"></a>
+<a name="index-_0023cvs_002elock_002c-removing"></a>
+<p><small>CVS</small> will try again every 30 seconds, and either
+continue with the operation or print the message again,
+if it still needs to wait.  If a lock seems to stick
+around for an undue amount of time, find the person
+holding the lock and ask them about the cvs command
+they are running.  If they aren&rsquo;t running a cvs
+command, look in the repository directory mentioned in
+the message and remove files which they own whose names
+start with <samp>#cvs.rfl</samp>,
+<samp>#cvs.wfl</samp>, or <samp>#cvs.lock</samp>.
+</p>
+<p>Note that these locks are to protect <small>CVS</small>&rsquo;s
+internal data structures and have no relationship to
+the word <em>lock</em> in the sense used by
+<small>RCS</small>&mdash;which refers to reserved checkouts
+(see <a href="#Multiple-developers">Multiple developers</a>).
+</p>
+<p>Any number of people can be reading from a given
+repository at a time; only when someone is writing do
+the locks prevent other people from reading or writing.
+</p>
+<a name="index-Atomic-transactions_002c-lack-of"></a>
+<a name="index-Transactions_002c-atomic_002c-lack-of"></a>
+<p>One might hope for the following property:
+</p>
+<blockquote>
+<p>If someone commits some changes in one cvs command,
+then an update by someone else will either get all the
+changes, or none of them.
+</p></blockquote>
+
+<p>but <small>CVS</small> does <em>not</em> have this property.  For
+example, given the files
+</p>
+<div class="example">
+<pre class="example">a/one.c
+a/two.c
+b/three.c
+b/four.c
+</pre></div>
+
+<p>if someone runs
+</p>
+<div class="example">
+<pre class="example">cvs ci a/two.c b/three.c
+</pre></div>
+
+<p>and someone else runs <code>cvs update</code> at the same
+time, the person running <code>update</code> might get only
+the change to <samp>b/three.c</samp> and not the change to
+<samp>a/two.c</samp>.
+</p>
+<hr>
+<a name="Watches"></a>
+<div class="header">
+<p>
+Next: <a href="#Choosing-a-model" accesskey="n" rel="next">Choosing a 
model</a>, Previous: <a href="#Concurrency" accesskey="p" 
rel="prev">Concurrency</a>, Up: <a href="#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Mechanisms-to-track-who-is-editing-files"></a>
+<h3 class="section">10.6 Mechanisms to track who is editing files</h3>
+<a name="index-Watches"></a>
+
+<p>For many groups, use of <small>CVS</small> in its default mode is
+perfectly satisfactory.  Users may sometimes go to
+check in a modification only to find that another
+modification has intervened, but they deal with it and
+proceed with their check in.  Other groups prefer to be
+able to know who is editing what files, so that if two
+people try to edit the same file they can choose to
+talk about who is doing what when rather than be
+surprised at check in time.  The features in this
+section allow such coordination, while retaining the
+ability of two developers to edit the same file at the
+same time.
+</p>
+<p>For maximum benefit developers should use <code>cvs
+edit</code> (not <code>chmod</code>) to make files read-write to
+edit them, and <code>cvs release</code> (not <code>rm</code>) to
+discard a working directory which is no longer in use,
+but <small>CVS</small> is not able to enforce this behavior.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Setting-a-watch" 
accesskey="1">Setting a watch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Telling CVS to watch certain files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Getting-Notified" 
accesskey="2">Getting Notified</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Telling CVS to notify you
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Editing-files" 
accesskey="3">Editing files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">How to edit a file which is being watched
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Watch-information" 
accesskey="4">Watch information</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Information about who is watching and editing
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Watches-Compatibility" 
accesskey="5">Watches Compatibility</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Watches interact poorly with CVS 1.6 or earlier
+</td></tr>
+</table>
+
+<hr>
+<a name="Setting-a-watch"></a>
+<div class="header">
+<p>
+Next: <a href="#Getting-Notified" accesskey="n" rel="next">Getting 
Notified</a>, Up: <a href="#Watches" accesskey="u" rel="up">Watches</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Telling-CVS-to-watch-certain-files"></a>
+<h4 class="subsection">10.6.1 Telling CVS to watch certain files</h4>
+
+<p>To enable the watch features, you first specify that
+certain files are to be watched.
+</p>
+<a name="index-watch-on-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watch-on"></a>Command: <strong>cvs watch on</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<a name="index-Read_002donly-files_002c-and-watches"></a>
+<p>Specify that developers should run <code>cvs edit</code>
+before editing <var>files</var>.  <small>CVS</small> will create working
+copies of <var>files</var> read-only, to remind developers
+to run the <code>cvs edit</code> command before working on
+them.
+</p>
+<p>If <var>files</var> includes the name of a directory, <small>CVS</small>
+arranges to watch all files added to the corresponding
+repository directory, and sets a default for files
+added in the future; this allows the user to set
+notification policies on a per-directory basis.  The
+contents of the directory are processed recursively,
+unless the <code>-l</code> option is given.
+The <code>-R</code> option can be used to force recursion if the 
<code>-l</code>
+option is set in <samp>~/.cvsrc</samp> (see <a 
href="#g_t_007e_002f_002ecvsrc">~/.cvsrc</a>).
+</p>
+<p>If <var>files</var> is omitted, it defaults to the current directory.
+</p>
+<a name="index-watch-off-_0028subcommand_0029"></a>
+</dd></dl>
+
+<dl>
+<dt><a name="index-cvs-watch-off"></a>Command: <strong>cvs watch off</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Do not create <var>files</var> read-only on checkout; thus,
+developers will not be reminded to use <code>cvs edit</code>
+and <code>cvs unedit</code>.
+</p>
+<p>The <var>files</var> and options are processed as for <code>cvs
+watch on</code>.
+</p>
+</dd></dl>
+
+<hr>
+<a name="Getting-Notified"></a>
+<div class="header">
+<p>
+Next: <a href="#Editing-files" accesskey="n" rel="next">Editing files</a>, 
Previous: <a href="#Setting-a-watch" accesskey="p" rel="prev">Setting a 
watch</a>, Up: <a href="#Watches" accesskey="u" rel="up">Watches</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Telling-CVS-to-notify-you"></a>
+<h4 class="subsection">10.6.2 Telling CVS to notify you</h4>
+
+<p>You can tell <small>CVS</small> that you want to receive
+notifications about various actions taken on a file.
+You can do this without using <code>cvs watch on</code> for
+the file, but generally you will want to use <code>cvs
+watch on</code>, to remind developers to use the <code>cvs edit</code>
+command.
+</p>
+<a name="index-watch-add-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watch-add"></a>Command: <strong>cvs watch add</strong> 
<em>[<code>-lR</code>] [<code>-a</code> <var>action</var>]&hellip; 
[<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Add the current user to the list of people to receive notification of
+work done on <var>files</var>.
+</p>
+<p>The <code>-a</code> option specifies what kinds of events 
<small>CVS</small> should notify
+the user about.  <var>action</var> is one of the following:
+</p>
+<dl compact="compact">
+<dt><code>edit</code></dt>
+<dd><p>Another user has applied the <code>cvs edit</code> command (described
+below) to a watched file.
+</p>
+</dd>
+<dt><code>commit</code></dt>
+<dd><p>Another user has committed changes to one of the named <var>files</var>.
+</p>
+</dd>
+<dt><code>unedit</code></dt>
+<dd><p>Another user has abandoned editing a file (other than by committing 
changes).
+They can do this in several ways, by:
+</p>
+<ul>
+<li> applying the <code>cvs unedit</code> command (described below) to the file
+
+</li><li> applying the <code>cvs release</code> command (see <a 
href="#release">release</a>) to the file&rsquo;s parent directory
+(or recursively to a directory more than one level up)
+
+</li><li> deleting the file and allowing <code>cvs update</code> to recreate it
+
+</li></ul>
+
+</dd>
+<dt><code>all</code></dt>
+<dd><p>All of the above.
+</p>
+</dd>
+<dt><code>none</code></dt>
+<dd><p>None of the above.  (This is useful with <code>cvs edit</code>,
+described below.)
+</p>
+</dd>
+</dl>
+
+<p>The <code>-a</code> option may appear more than once, or not at all.  If
+omitted, the action defaults to <code>all</code>.
+</p>
+<p>The <var>files</var> and options are processed as for
+<code>cvs watch on</code>.
+</p>
+</dd></dl>
+
+
+<a name="index-watch-remove-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watch-remove"></a>Command: <strong>cvs watch 
remove</strong> <em>[<code>-lR</code>] [<code>-a</code> 
<var>action</var>]&hellip; [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Remove a notification request established using <code>cvs watch add</code>;
+the arguments are the same.  If the <code>-a</code> option is present, only
+watches for the specified actions are removed.
+</p>
+</dd></dl>
+
+<a name="index-notify-_0028admin-file_0029"></a>
+<p>When the conditions exist for notification, <small>CVS</small>
+calls the <samp>notify</samp> administrative file.  Edit
+<samp>notify</samp> as one edits the other administrative
+files (see <a href="#Intro-administrative-files">Intro administrative 
files</a>).  This
+file follows the usual conventions for administrative
+files (see <a href="#syntax">syntax</a>), where each line is a regular
+expression followed by a command to execute.  The
+command should contain a single occurrence of &lsquo;<samp>%s</samp>&rsquo;
+which will be replaced by the user to notify; the rest
+of the information regarding the notification will be
+supplied to the command on standard input.  The
+standard thing to put in the <code>notify</code> file is the
+single line:
+</p>
+<div class="example">
+<pre class="example">ALL mail %s -s &quot;CVS notification&quot;
+</pre></div>
+
+<p>This causes users to be notified by electronic mail.
+</p>
+<a name="index-users-_0028admin-file_0029"></a>
+<p>Note that if you set this up in the straightforward
+way, users receive notifications on the server machine.
+One could of course write a <samp>notify</samp> script which
+directed notifications elsewhere, but to make this
+easy, <small>CVS</small> allows you to associate a notification
+address for each user.  To do so create a file
+<samp>users</samp> in <samp>CVSROOT</samp> with a line for each
+user in the format <var>user</var>:<var>value</var>.  Then
+instead of passing the name of the user to be notified
+to <samp>notify</samp>, <small>CVS</small> will pass the <var>value</var>
+(normally an email address on some other machine).
+</p>
+<p><small>CVS</small> does not notify you for your own changes.
+Currently this check is done based on whether the user
+name of the person taking the action which triggers
+notification matches the user name of the person
+getting notification.  In fact, in general, the watches
+features only track one edit by each user.  It probably
+would be more useful if watches tracked each working
+directory separately, so this behavior might be worth
+changing.
+</p>
+<hr>
+<a name="Editing-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Watch-information" accesskey="n" rel="next">Watch 
information</a>, Previous: <a href="#Getting-Notified" accesskey="p" 
rel="prev">Getting Notified</a>, Up: <a href="#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="How-to-edit-a-file-which-is-being-watched"></a>
+<h4 class="subsection">10.6.3 How to edit a file which is being watched</h4>
+
+<a name="index-Checkout_002c-as-term-for-getting-ready-to-edit"></a>
+<p>Since a file which is being watched is checked out
+read-only, you cannot simply edit it.  To make it
+read-write, and inform others that you are planning to
+edit it, use the <code>cvs edit</code> command.  Some systems
+call this a <em>checkout</em>, but <small>CVS</small> uses that term
+for obtaining a copy of the sources (see <a href="#Getting-the-source">Getting 
the source</a>), an operation which those systems call a
+<em>get</em> or a <em>fetch</em>.
+</p>
+<a name="index-edit-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-edit"></a>Command: <strong>cvs edit</strong> 
<em>[<code>-lR</code>] [<code>-a</code> <var>action</var>]&hellip; 
[<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Prepare to edit the working files <var>files</var>.  <small>CVS</small> 
makes the
+<var>files</var> read-write, and notifies users who have requested
+<code>edit</code> notification for any of <var>files</var>.
+</p>
+<p>The <code>cvs edit</code> command accepts the same options as the
+<code>cvs watch add</code> command, and establishes a temporary watch for the
+user on <var>files</var>; <small>CVS</small> will remove the watch when 
<var>files</var> are
+<code>unedit</code>ed or <code>commit</code>ted.  If the user does not wish to
+receive notifications, she should specify <code>-a none</code>.
+</p>
+<p>The <var>files</var> and the options are processed as for the <code>cvs
+watch</code> commands.
+</p>
+
+</dd></dl>
+
+<p>Normally when you are done with a set of changes, you
+use the <code>cvs commit</code> command, which checks in your
+changes and returns the watched files to their usual
+read-only state.  But if you instead decide to abandon
+your changes, or not to make any changes, you can use
+the <code>cvs unedit</code> command.
+</p>
+<a name="index-unedit-_0028subcommand_0029"></a>
+<a name="index-Abandoning-work"></a>
+<a name="index-Reverting-to-repository-version"></a>
+<dl>
+<dt><a name="index-cvs-unedit"></a>Command: <strong>cvs unedit</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Abandon work on the working files <var>files</var>, and revert them to the
+repository versions on which they are based.  <small>CVS</small> makes those
+<var>files</var> read-only for which users have requested notification using
+<code>cvs watch on</code>.  <small>CVS</small> notifies users who have 
requested <code>unedit</code>
+notification for any of <var>files</var>.
+</p>
+<p>The <var>files</var> and options are processed as for the
+<code>cvs watch</code> commands.
+</p>
+<p>If watches are not in use, the <code>unedit</code> command
+probably does not work, and the way to revert to the
+repository version is with the command <code>cvs update -C file</code>
+(see <a href="#update">update</a>).
+The meaning is
+not precisely the same; the latter may also
+bring in some changes which have been made in the
+repository since the last time you updated.
+</p></dd></dl>
+
+<p>When using client/server <small>CVS</small>, you can use the
+<code>cvs edit</code> and <code>cvs unedit</code> commands even if
+<small>CVS</small> is unable to successfully communicate with the
+server; the notifications will be sent upon the next
+successful <small>CVS</small> command.
+</p>
+<hr>
+<a name="Watch-information"></a>
+<div class="header">
+<p>
+Next: <a href="#Watches-Compatibility" accesskey="n" rel="next">Watches 
Compatibility</a>, Previous: <a href="#Editing-files" accesskey="p" 
rel="prev">Editing files</a>, Up: <a href="#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Information-about-who-is-watching-and-editing"></a>
+<h4 class="subsection">10.6.4 Information about who is watching and 
editing</h4>
+
+<a name="index-watchers-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watchers"></a>Command: <strong>cvs watchers</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>List the users currently watching changes to <var>files</var>.  The report
+includes the files being watched, and the mail address of each watcher.
+</p>
+<p>The <var>files</var> and options are processed as for the
+<code>cvs watch</code> commands.
+</p>
+</dd></dl>
+
+
+<a name="index-editors-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-editors"></a>Command: <strong>cvs editors</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>List the users currently working on <var>files</var>.  The report
+includes the mail address of each user, the time when the user began
+working with the file, and the host and path of the working directory
+containing the file.
+</p>
+<p>The <var>files</var> and options are processed as for the
+<code>cvs watch</code> commands.
+</p>
+</dd></dl>
+
+<hr>
+<a name="Watches-Compatibility"></a>
+<div class="header">
+<p>
+Previous: <a href="#Watch-information" accesskey="p" rel="prev">Watch 
information</a>, Up: <a href="#Watches" accesskey="u" rel="up">Watches</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Using-watches-with-old-versions-of-CVS"></a>
+<h4 class="subsection">10.6.5 Using watches with old versions of CVS</h4>
+
+<a name="index-CVS-1_002e6_002c-and-watches"></a>
+<p>If you use the watch features on a repository, it
+creates <samp>CVS</samp> directories in the repository and
+stores the information about watches in that directory.
+If you attempt to use <small>CVS</small> 1.6 or earlier with the
+repository, you get an error message such as the
+following (all on one line):
+</p>
+<div class="example">
+<pre class="example">cvs update: cannot open CVS/Entries for reading:
+No such file or directory
+</pre></div>
+
+<p>and your operation will likely be aborted.  To use the
+watch features, you must upgrade all copies of <small>CVS</small>
+which use that repository in local or server mode.  If
+you cannot upgrade, use the <code>watch off</code> and
+<code>watch remove</code> commands to remove all watches, and
+that will restore the repository to a state which
+<small>CVS</small> 1.6 can cope with.
+</p>
+<hr>
+<a name="Choosing-a-model"></a>
+<div class="header">
+<p>
+Previous: <a href="#Watches" accesskey="p" rel="prev">Watches</a>, Up: <a 
href="#Multiple-developers" accesskey="u" rel="up">Multiple developers</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Choosing-between-reserved-or-unreserved-checkouts"></a>
+<h3 class="section">10.7 Choosing between reserved or unreserved checkouts</h3>
+<a name="index-Choosing_002c-reserved-or-unreserved-checkouts"></a>
+
+<p>Reserved and unreserved checkouts each have pros and
+cons.  Let it be said that a lot of this is a matter of
+opinion or what works given different groups&rsquo; working
+styles, but here is a brief description of some of the
+issues.  There are many ways to organize a team of
+developers.  <small>CVS</small> does not try to enforce a certain
+organization.  It is a tool that can be used in several
+ways.
+</p>
+<p>Reserved checkouts can be very counter-productive.  If
+two persons want to edit different parts of a file,
+there may be no reason to prevent either of them from
+doing so.  Also, it is common for someone to take out a
+lock on a file, because they are planning to edit it,
+but then forget to release the lock.
+</p>
+<p>People, especially people who are familiar with
+reserved checkouts, often wonder how often conflicts
+occur if unreserved checkouts are used, and how
+difficult they are to resolve.  The experience with
+many groups is that they occur rarely and usually are
+relatively straightforward to resolve.
+</p>
+<p>The rarity of serious conflicts may be surprising, until one realizes
+that they occur only when two developers disagree on the proper design
+for a given section of code; such a disagreement suggests that the
+team has not been communicating properly in the first place.  In order
+to collaborate under <em>any</em> source management regimen, developers
+must agree on the general design of the system; given this agreement,
+overlapping changes are usually straightforward to merge.
+</p>
+<p>In some cases unreserved checkouts are clearly
+inappropriate.  If no merge tool exists for the kind of
+file you are managing (for example word processor files
+or files edited by Computer Aided Design programs), and
+it is not desirable to change to a program which uses a
+mergeable data format, then resolving conflicts is
+going to be unpleasant enough that you generally will
+be better off to simply avoid the conflicts instead, by
+using reserved checkouts.
+</p>
+<p>The watches features described above in <a href="#Watches">Watches</a>
+can be considered to be an intermediate model between
+reserved checkouts and unreserved checkouts.  When you
+go to edit a file, it is possible to find out who else
+is editing it.  And rather than having the system
+simply forbid both people editing the file, it can tell
+you what the situation is and let you figure out
+whether it is a problem in that particular case or not.
+Therefore, for some groups it can be considered the
+best of both the reserved checkout and unreserved
+checkout worlds.
+</p>
+<hr>
+<a name="Revision-management"></a>
+<div class="header">
+<p>
+Next: <a href="#Keyword-substitution" accesskey="n" rel="next">Keyword 
substitution</a>, Previous: <a href="#Multiple-developers" accesskey="p" 
rel="prev">Multiple developers</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Revision-management-1"></a>
+<h2 class="chapter">11 Revision management</h2>
+<a name="index-Revision-management"></a>
+
+
+<p>If you have read this far, you probably have a pretty
+good grasp on what <small>CVS</small> can do for you.  This
+chapter talks a little about things that you still have
+to decide.
+</p>
+<p>If you are doing development on your own using <small>CVS</small>
+you could probably skip this chapter.  The questions
+this chapter takes up become more important when more
+than one person is working in a repository.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#When-to-commit" 
accesskey="1">When to commit</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Some discussion on the subject
+</td></tr>
+</table>
+
+<hr>
+<a name="When-to-commit"></a>
+<div class="header">
+<p>
+Up: <a href="#Revision-management" accesskey="u" rel="up">Revision 
management</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="When-to-commit_003f"></a>
+<h3 class="section">11.1 When to commit?</h3>
+<a name="index-When-to-commit"></a>
+<a name="index-Committing_002c-when-to"></a>
+<a name="index-Policy"></a>
+
+<p>Your group should decide which policy to use regarding
+commits.  Several policies are possible, and as your
+experience with <small>CVS</small> grows you will probably find
+out what works for you.
+</p>
+<p>If you commit files too quickly you might commit files
+that do not even compile.  If your partner updates his
+working sources to include your buggy file, he will be
+unable to compile the code.  On the other hand, other
+persons will not be able to benefit from the
+improvements you make to the code if you commit very
+seldom, and conflicts will probably be more common.
+</p>
+<p>It is common to only commit files after making sure
+that they can be compiled.  Some sites require that the
+files pass a test suite.  Policies like this can be
+enforced using the commitinfo file
+(see <a href="#commitinfo">commitinfo</a>), but you should think twice before
+you enforce such a convention.  By making the
+development environment too controlled it might become
+too regimented and thus counter-productive to the real
+goal, which is to get software written.
+</p>
+<hr>
+<a name="Keyword-substitution"></a>
+<div class="header">
+<p>
+Next: <a href="#Tracking-sources" accesskey="n" rel="next">Tracking 
sources</a>, Previous: <a href="#Revision-management" accesskey="p" 
rel="prev">Revision management</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Keyword-substitution-1"></a>
+<h2 class="chapter">12 Keyword substitution</h2>
+<a name="index-Keyword-substitution"></a>
+<a name="index-Keyword-expansion"></a>
+<a name="index-Identifying-files"></a>
+
+
+<p>As long as you edit source files inside a working
+directory you can always find out the state of
+your files via &lsquo;<samp>cvs status</samp>&rsquo; and &lsquo;<samp>cvs 
log</samp>&rsquo;.
+But as soon as you export the files from your
+development environment it becomes harder to identify
+which revisions they are.
+</p>
+<p><small>CVS</small> can use a mechanism known as <em>keyword
+substitution</em> (or <em>keyword expansion</em>) to help
+identifying the files.  Embedded strings of the form
+<code>$<var>keyword</var>$</code> and
+<code>$<var>keyword</var>:&hellip;$</code> in a file are replaced
+with strings of the form
+<code>$<var>keyword</var>:<var>value</var>$</code> whenever you obtain
+a new revision of the file.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Keyword-list" 
accesskey="1">Keyword list</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Keywords
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Using-keywords" 
accesskey="2">Using keywords</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Using keywords
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Avoiding-substitution" 
accesskey="3">Avoiding substitution</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Avoiding substitution
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Substitution-modes" 
accesskey="4">Substitution modes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Substitution modes
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Log-keyword" 
accesskey="5">Log keyword</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Problems with the $<i></i>Log$ keyword.
+</td></tr>
+</table>
+
+<hr>
+<a name="Keyword-list"></a>
+<div class="header">
+<p>
+Next: <a href="#Using-keywords" accesskey="n" rel="next">Using keywords</a>, 
Up: <a href="#Keyword-substitution" accesskey="u" rel="up">Keyword 
substitution</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Keyword-List"></a>
+<h3 class="section">12.1 Keyword List</h3>
+<a name="index-Keyword-List"></a>
+
+
+<p>This is a list of the keywords:
+</p>
+<dl compact="compact">
+<dd><a name="index-Author-keyword"></a>
+</dd>
+<dt><code>$<i></i>Author$</code></dt>
+<dd><p>The login name of the user who checked in the revision.
+</p>
+<a name="index-Date-keyword"></a>
+</dd>
+<dt><code>$<i></i>Date$</code></dt>
+<dd><p>The date and time (UTC) the revision was checked in.
+</p>
+<a name="index-Header-keyword"></a>
+</dd>
+<dt><code>$<i></i>Header$</code></dt>
+<dd><p>A standard header containing the full pathname of the
+<small>RCS</small> file, the revision number, the date (UTC), the
+author, the state, and the locker (if locked).  Files
+will normally never be locked when you use <small>CVS</small>.
+</p>
+<a name="index-Id-keyword"></a>
+</dd>
+<dt><code>$<i></i>Id$</code></dt>
+<dd><p>Same as <code>$<i></i>Header$</code>, except that the <small>RCS</small>
+filename is without a path.
+</p>
+<a name="index-Name-keyword"></a>
+</dd>
+<dt><code>$<i></i>Name$</code></dt>
+<dd><p>Tag name used to check out this file.  The keyword is
+expanded only if one checks out with an explicit tag
+name.  For example, when running the command <code>cvs
+co -r first</code>, the keyword expands to &lsquo;<samp>Name: 
first</samp>&rsquo;.
+</p>
+<a name="index-Locker-keyword"></a>
+</dd>
+<dt><code>$<i></i>Locker$</code></dt>
+<dd><p>The login name of the user who locked the revision
+(empty if not locked, which is the normal case unless
+<code>cvs admin -l</code> is in use).
+</p>
+<a name="index-Log-keyword"></a>
+</dd>
+<dt><code>$<i></i>Log$</code></dt>
+<dd><p>The log message supplied during commit, preceded by a
+header containing the <small>RCS</small> filename, the revision
+number, the author, and the date (UTC).  Existing log
+messages are <em>not</em> replaced.  Instead, the new log
+message is inserted after <code>$<i></i>Log:&hellip;$</code>.
+Each new line is prefixed with the same string which
+precedes the <code>$Log</code> keyword.  For example, if the
+file contains:
+</p>
+<div class="example">
+<pre class="example">  /* Here is what people have been up to:
+   *
+   * $<i></i>Log: frob.c,v $
+   * Revision 1.1  1997/01/03 14:23:51  joe
+   * Add the superfrobnicate option
+   *
+   */
+</pre></div>
+
+<p>then additional lines which are added when expanding
+the <code>$Log</code> keyword will be preceded by &lsquo;<samp>   * 
</samp>&rsquo;.
+Unlike previous versions of <small>CVS</small> and <small>RCS</small>, the
+<em>comment leader</em> from the <small>RCS</small> file is not used.
+The <code>$Log</code> keyword is useful for
+accumulating a complete change log in a source file,
+but for several reasons it can be problematic.
+See <a href="#Log-keyword">Log keyword</a>.
+</p>
+<a name="index-RCSfile-keyword"></a>
+</dd>
+<dt><code>$<i></i>RCSfile$</code></dt>
+<dd><p>The name of the RCS file without a path.
+</p>
+<a name="index-Revision-keyword"></a>
+</dd>
+<dt><code>$<i></i>Revision$</code></dt>
+<dd><p>The revision number assigned to the revision.
+</p>
+<a name="index-Source-keyword"></a>
+</dd>
+<dt><code>$<i></i>Source$</code></dt>
+<dd><p>The full pathname of the RCS file.
+</p>
+<a name="index-State-keyword"></a>
+</dd>
+<dt><code>$<i></i>State$</code></dt>
+<dd><p>The state assigned to the revision.  States can be
+assigned with <code>cvs admin -s</code>&mdash;see <a 
href="#admin-options">admin options</a>.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="Using-keywords"></a>
+<div class="header">
+<p>
+Next: <a href="#Avoiding-substitution" accesskey="n" rel="next">Avoiding 
substitution</a>, Previous: <a href="#Keyword-list" accesskey="p" 
rel="prev">Keyword list</a>, Up: <a href="#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Using-keywords-1"></a>
+<h3 class="section">12.2 Using keywords</h3>
+
+<p>To include a keyword string you simply include the
+relevant text string, such as <code>$<i></i>Id$</code>, inside the
+file, and commit the file.  <small>CVS</small> will automatically (Or,
+more accurately, as part of the update run that
+automatically happens after a commit.)
+expand the string as part of the commit operation.
+</p>
+<p>It is common to embed the <code>$<i></i>Id$</code> string in
+the source files so that it gets passed through to
+generated files.  For example, if you are managing
+computer program source code, you might include a
+variable which is initialized to contain that string.
+Or some C compilers may provide a <code>#pragma ident</code>
+directive.  Or a document management system might
+provide a way to pass a string through to generated
+files.
+</p>
+
+<a name="index-Ident-_0028shell-command_0029"></a>
+<p>The <code>ident</code> command (which is part of the <small>RCS</small>
+package) can be used to extract keywords and their
+values from a file.  This can be handy for text files,
+but it is even more useful for extracting keywords from
+binary files.
+</p>
+<div class="example">
+<pre class="example">$ ident samp.c
+samp.c:
+     $<i></i>Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
+$ gcc samp.c
+$ ident a.out
+a.out:
+     $<i></i>Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
+</pre></div>
+
+<a name="index-What-_0028shell-command_0029"></a>
+<p>S<small>CCS</small> is another popular revision control system.
+It has a command, <code>what</code>, which is very similar to
+<code>ident</code> and used for the same purpose.  Many sites
+without <small>RCS</small> have <small>SCCS</small>.  Since <code>what</code>
+looks for the character sequence <code>@(#)</code> it is
+easy to include keywords that are detected by either
+command.  Simply prefix the keyword with the
+magic <small>SCCS</small> phrase, like this:
+</p>
+<div class="example">
+<pre class="example">static char *id=&quot;@(#) $<i></i>Id: ab.c,v 1.5 
1993/10/19 14:57:32 ceder Exp $&quot;;
+</pre></div>
+
+<hr>
+<a name="Avoiding-substitution"></a>
+<div class="header">
+<p>
+Next: <a href="#Substitution-modes" accesskey="n" rel="next">Substitution 
modes</a>, Previous: <a href="#Using-keywords" accesskey="p" rel="prev">Using 
keywords</a>, Up: <a href="#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Avoiding-substitution-1"></a>
+<h3 class="section">12.3 Avoiding substitution</h3>
+
+<p>Keyword substitution has its disadvantages.  Sometimes
+you might want the literal text string
+&lsquo;<samp>$<i></i>Author$</samp>&rsquo; to appear inside a file without
+<small>CVS</small> interpreting it as a keyword and expanding it
+into something like &lsquo;<samp>$<i></i>Author: ceder $</samp>&rsquo;.
+</p>
+<p>There is unfortunately no way to selectively turn off
+keyword substitution.  You can use &lsquo;<samp>-ko</samp>&rsquo;
+(see <a href="#Substitution-modes">Substitution modes</a>) to turn off keyword
+substitution entirely.
+</p>
+<p>In many cases you can avoid using keywords in
+the source, even though they appear in the final
+product.  For example, the source for this manual
+contains &lsquo;<samp>address@hidden</samp>&rsquo; whenever the text
+&lsquo;<samp>$<i></i>Author$</samp>&rsquo; should appear.  In 
<code>nroff</code>
+and <code>troff</code> you can embed the null-character
+<code>\&amp;</code> inside the keyword for a similar effect.
+</p>
+<hr>
+<a name="Substitution-modes"></a>
+<div class="header">
+<p>
+Next: <a href="#Log-keyword" accesskey="n" rel="next">Log keyword</a>, 
Previous: <a href="#Avoiding-substitution" accesskey="p" rel="prev">Avoiding 
substitution</a>, Up: <a href="#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Substitution-modes-1"></a>
+<h3 class="section">12.4 Substitution modes</h3>
+<a name="index-Keyword-substitution_002c-changing-modes"></a>
+<a name="index-_002dk-_0028keyword-substitution_0029"></a>
+<a name="index-Kflag"></a>
+
+<p>Each file has a stored default substitution mode, and
+each working directory copy of a file also has a
+substitution mode.  The former is set by the &lsquo;<samp>-k</samp>&rsquo;
+option to <code>cvs add</code> and <code>cvs admin</code>; the
+latter is set by the &lsquo;<samp>-k</samp>&rsquo; or 
&lsquo;<samp>-A</samp>&rsquo; options to <code>cvs
+checkout</code> or <code>cvs update</code>.
+<code>cvs diff</code> and <code>cvs rdiff</code> also
+have &lsquo;<samp>-k</samp>&rsquo; options.
+For some examples,
+see <a href="#Binary-files">Binary files</a>, and <a 
href="#Merging-and-keywords">Merging and keywords</a>.
+</p>
+<p>The modes available are:
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>-kkv</samp>&rsquo;</dt>
+<dd><p>Generate keyword strings using the default form, e.g.
+<code>$<i></i>Revision: 5.7 $</code> for the <code>Revision</code>
+keyword.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kkvl</samp>&rsquo;</dt>
+<dd><p>Like &lsquo;<samp>-kkv</samp>&rsquo;, except that a locker&rsquo;s name 
is always
+inserted if the given revision is currently locked.
+The locker&rsquo;s name is only relevant if <code>cvs admin
+-l</code> is in use.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kk</samp>&rsquo;</dt>
+<dd><p>Generate only keyword names in keyword strings; omit
+their values.  For example, for the <code>Revision</code>
+keyword, generate the string <code>$<i></i>Revision$</code>
+instead of <code>$<i></i>Revision: 5.7 $</code>.  This option
+is useful to ignore differences due to keyword
+substitution when comparing different revisions of a
+file (see <a href="#Merging-and-keywords">Merging and keywords</a>).
+</p>
+</dd>
+<dt>&lsquo;<samp>-ko</samp>&rsquo;</dt>
+<dd><p>Generate the old keyword string, present in the working
+file just before it was checked in.  For example, for
+the <code>Revision</code> keyword, generate the string
+<code>$<i></i>Revision: 1.1 $</code> instead of
+<code>$<i></i>Revision: 5.7 $</code> if that is how the
+string appeared when the file was checked in.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kb</samp>&rsquo;</dt>
+<dd><p>Like &lsquo;<samp>-ko</samp>&rsquo;, but also inhibit conversion of line
+endings between the canonical form in which they are
+stored in the repository (linefeed only), and the form
+appropriate to the operating system in use on the
+client.  For systems, like unix, which use linefeed
+only to terminate lines, this is the same as
+&lsquo;<samp>-ko</samp>&rsquo;.  For more information on binary files, see
+<a href="#Binary-files">Binary files</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kv</samp>&rsquo;</dt>
+<dd><p>Generate only keyword values for keyword strings.  For
+example, for the <code>Revision</code> keyword, generate the string
+<code>5.7</code> instead of <code>$<i></i>Revision: 5.7 $</code>.
+This can help generate files in programming languages
+where it is hard to strip keyword delimiters like
+<code>$<i></i>Revision: $</code> from a string.  However,
+further keyword substitution cannot be performed once
+the keyword names are removed, so this option should be
+used with care.
+</p>
+<p>One often would like to use &lsquo;<samp>-kv</samp>&rsquo; with <code>cvs
+export</code>&mdash;see <a href="#export">export</a>.  But be aware that 
doesn&rsquo;t
+handle an export containing binary files correctly.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="Log-keyword"></a>
+<div class="header">
+<p>
+Previous: <a href="#Substitution-modes" accesskey="p" rel="prev">Substitution 
modes</a>, Up: <a href="#Keyword-substitution" accesskey="u" rel="up">Keyword 
substitution</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Problems-with-the-_0024Log_0024-keyword_002e"></a>
+<h3 class="section">12.5 Problems with the $<i></i>Log$ keyword.</h3>
+
+<p>The <code>$<i></i>Log$</code> keyword is somewhat
+controversial.  As long as you are working on your
+development system the information is easily accessible
+even if you do not use the <code>$<i></i>Log$</code>
+keyword&mdash;just do a <code>cvs log</code>.  Once you export
+the file the history information might be useless
+anyhow.
+</p>
+<p>A more serious concern is that <small>CVS</small> is not good at
+handling <code>$<i></i>Log$</code> entries when a branch is
+merged onto the main trunk.  Conflicts often result
+from the merging operation.
+</p>
+<p>People also tend to &quot;fix&quot; the log entries in the file
+(correcting spelling mistakes and maybe even factual
+errors).  If that is done the information from
+<code>cvs log</code> will not be consistent with the
+information inside the file.  This may or may not be a
+problem in real life.
+</p>
+<p>It has been suggested that the <code>$<i></i>Log$</code>
+keyword should be inserted <em>last</em> in the file, and
+not in the files header, if it is to be used at all.
+That way the long list of change messages will not
+interfere with everyday source file browsing.
+</p>
+<hr>
+<a name="Tracking-sources"></a>
+<div class="header">
+<p>
+Next: <a href="#Builds" accesskey="n" rel="next">Builds</a>, Previous: <a 
href="#Keyword-substitution" accesskey="p" rel="prev">Keyword substitution</a>, 
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Tracking-third_002dparty-sources"></a>
+<h2 class="chapter">13 Tracking third-party sources</h2>
+<a name="index-Third_002dparty-sources"></a>
+<a name="index-Tracking-sources"></a>
+
+<p>If you modify a program to better fit your site, you
+probably want to include your modifications when the next
+release of the program arrives.  <small>CVS</small> can help you with
+this task.
+</p>
+<a name="index-Vendor"></a>
+<a name="index-Vendor-branch"></a>
+<a name="index-Branch_002c-vendor_002d"></a>
+<p>In the terminology used in <small>CVS</small>, the supplier of the
+program is called a <em>vendor</em>.  The unmodified
+distribution from the vendor is checked in on its own
+branch, the <em>vendor branch</em>.  <small>CVS</small> reserves branch
+1.1.1 for this use.
+</p>
+<p>When you modify the source and commit it, your revision
+will end up on the main trunk.  When a new release is
+made by the vendor, you commit it on the vendor branch
+and copy the modifications onto the main trunk.
+</p>
+<p>Use the <code>import</code> command to create and update
+the vendor branch.  When you import a new file,
+the vendor branch is made the &lsquo;head&rsquo; revision, so
+anyone that checks out a copy of the file gets that
+revision.  When a local modification is committed it is
+placed on the main trunk, and made the &lsquo;head&rsquo;
+revision.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#First-import" 
accesskey="1">First import</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Importing for the first time
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Update-imports" 
accesskey="2">Update imports</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Updating with the import command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Reverting-local-changes" 
accesskey="3">Reverting local changes</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Reverting to the latest vendor release
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Binary-files-in-imports" 
accesskey="4">Binary files in imports</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Binary files require special handling
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Keywords-in-imports" 
accesskey="5">Keywords in imports</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Keyword substitution might be undesirable
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Multiple-vendor-branches" 
accesskey="6">Multiple vendor branches</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">What if you get sources from several places?
+</td></tr>
+</table>
+
+<hr>
+<a name="First-import"></a>
+<div class="header">
+<p>
+Next: <a href="#Update-imports" accesskey="n" rel="next">Update imports</a>, 
Up: <a href="#Tracking-sources" accesskey="u" rel="up">Tracking sources</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Importing-for-the-first-time"></a>
+<h3 class="section">13.1 Importing for the first time</h3>
+<a name="index-Importing-modules"></a>
+
+<p>Use the <code>import</code> command to check in the sources
+for the first time.  When you use the <code>import</code>
+command to track third-party sources, the <em>vendor
+tag</em> and <em>release tags</em> are useful.  The
+<em>vendor tag</em> is a symbolic name for the branch
+(which is always 1.1.1, unless you use the &lsquo;<samp>-b
+<var>branch</var></samp>&rsquo; flag&mdash;see <a 
href="#Multiple-vendor-branches">Multiple vendor branches</a>.).  The
+<em>release tags</em> are symbolic names for a particular
+release, such as &lsquo;<samp>FSF_0_04</samp>&rsquo;.
+</p>
+<p>Note that <code>import</code> does <em>not</em> change the
+directory in which you invoke it.  In particular, it
+does not set up that directory as a <small>CVS</small> working
+directory; if you want to work with the sources import
+them first and then check them out into a different
+directory (see <a href="#Getting-the-source">Getting the source</a>).
+</p>
+<a name="index-wdiff-_0028import-example_0029"></a>
+<p>Suppose you have the sources to a program called
+<code>wdiff</code> in a directory <samp>wdiff-0.04</samp>,
+and are going to make private modifications that you
+want to be able to use even when new releases are made
+in the future.  You start by importing the source to
+your repository:
+</p>
+<div class="example">
+<pre class="example">$ cd wdiff-0.04
+$ cvs import -m &quot;Import of FSF v. 0.04&quot; fsf/wdiff FSF_DIST WDIFF_0_04
+</pre></div>
+
+<p>The vendor tag is named &lsquo;<samp>FSF_DIST</samp>&rsquo; in the above
+example, and the only release tag assigned is
+&lsquo;<samp>WDIFF_0_04</samp>&rsquo;.
+</p>
+<hr>
+<a name="Update-imports"></a>
+<div class="header">
+<p>
+Next: <a href="#Reverting-local-changes" accesskey="n" rel="next">Reverting 
local changes</a>, Previous: <a href="#First-import" accesskey="p" 
rel="prev">First import</a>, Up: <a href="#Tracking-sources" accesskey="u" 
rel="up">Tracking sources</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Updating-with-the-import-command"></a>
+<h3 class="section">13.2 Updating with the import command</h3>
+
+<p>When a new release of the source arrives, you import it into the
+repository with the same <code>import</code> command that you used to set up
+the repository in the first place.  The only difference is that you
+specify a different release tag this time:
+</p>
+<div class="example">
+<pre class="example">$ tar xfz wdiff-0.05.tar.gz
+$ cd wdiff-0.05
+$ cvs import -m &quot;Import of FSF v. 0.05&quot; fsf/wdiff FSF_DIST WDIFF_0_05
+</pre></div>
+
+<p><strong>WARNING:  If you use a release tag that already exists in one of the
+repository archives, files removed by an import may not be detected.</strong>
+</p>
+<p>For files that have not been modified locally, the newly created
+revision becomes the head revision.  If you have made local
+changes, <code>import</code> will warn you that you must merge the changes
+into the main trunk, and tell you to use &lsquo;<samp>checkout 
-j</samp>&rsquo; to do so:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -jFSF_DIST:yesterday -jFSF_DIST wdiff
+</pre></div>
+
+<p>The above command will check out the latest revision of
+&lsquo;<samp>wdiff</samp>&rsquo;, merging the changes made on the vendor 
branch &lsquo;<samp>FSF_DIST</samp>&rsquo;
+since yesterday into the working copy.  If any conflicts arise during
+the merge they should be resolved in the normal way (see <a 
href="#Conflicts-example">Conflicts example</a>).  Then, the modified files may 
be committed.
+</p>
+<p>However, it is much better to use the two release tags rather than using
+a date on the branch as suggested above:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -jWDIFF_0_04 -jWDIFF_0_05 wdiff
+</pre></div>
+
+<p>The reason this is better is that
+using a date, as suggested above, assumes that you do
+not import more than one release of a product per day.
+More importantly, using the release tags allows <small>CVS</small> to detect 
files
+that were removed between the two vendor releases and mark them for
+removal.  Since <code>import</code> has no way to detect removed files, you
+should do a merge like this even if <code>import</code> doesn&rsquo;t tell you 
to.
+</p>
+<hr>
+<a name="Reverting-local-changes"></a>
+<div class="header">
+<p>
+Next: <a href="#Binary-files-in-imports" accesskey="n" rel="next">Binary files 
in imports</a>, Previous: <a href="#Update-imports" accesskey="p" 
rel="prev">Update imports</a>, Up: <a href="#Tracking-sources" accesskey="u" 
rel="up">Tracking sources</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Reverting-to-the-latest-vendor-release"></a>
+<h3 class="section">13.3 Reverting to the latest vendor release</h3>
+
+<p>You can also revert local changes completely and return
+to the latest vendor release by changing the &lsquo;head&rsquo;
+revision back to the vendor branch on all files.  For
+example, if you have a checked-out copy of the sources
+in <samp>~/work.d/wdiff</samp>, and you want to revert to the
+vendor&rsquo;s version for all the files in that directory,
+you would type:
+</p>
+<div class="example">
+<pre class="example">$ cd ~/work.d/wdiff
+$ cvs admin -bFSF_DIST .
+</pre></div>
+
+<p>You must specify the &lsquo;<samp>-bFSF_DIST</samp>&rsquo; without any space
+after the &lsquo;<samp>-b</samp>&rsquo;.  See <a href="#admin-options">admin 
options</a>.
+</p>
+<hr>
+<a name="Binary-files-in-imports"></a>
+<div class="header">
+<p>
+Next: <a href="#Keywords-in-imports" accesskey="n" rel="next">Keywords in 
imports</a>, Previous: <a href="#Reverting-local-changes" accesskey="p" 
rel="prev">Reverting local changes</a>, Up: <a href="#Tracking-sources" 
accesskey="u" rel="up">Tracking sources</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="How-to-handle-binary-files-with-cvs-import"></a>
+<h3 class="section">13.4 How to handle binary files with cvs import</h3>
+
+<p>Use the &lsquo;<samp>-k</samp>&rsquo; wrapper option to tell import which
+files are binary.  See <a href="#Wrappers">Wrappers</a>.
+</p>
+<hr>
+<a name="Keywords-in-imports"></a>
+<div class="header">
+<p>
+Next: <a href="#Multiple-vendor-branches" accesskey="n" rel="next">Multiple 
vendor branches</a>, Previous: <a href="#Binary-files-in-imports" accesskey="p" 
rel="prev">Binary files in imports</a>, Up: <a href="#Tracking-sources" 
accesskey="u" rel="up">Tracking sources</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="How-to-handle-keyword-substitution-with-cvs-import"></a>
+<h3 class="section">13.5 How to handle keyword substitution with cvs 
import</h3>
+
+<p>The sources which you are importing may contain
+keywords (see <a href="#Keyword-substitution">Keyword substitution</a>).  For 
example,
+the vendor may use <small>CVS</small> or some other system
+which uses similar keyword expansion syntax.  If you
+just import the files in the default fashion, then
+the keyword expansions supplied by the vendor will
+be replaced by keyword expansions supplied by your
+own copy of <small>CVS</small>.  It may be more convenient to
+maintain the expansions supplied by the vendor, so
+that this information can supply information about
+the sources that you imported from the vendor.
+</p>
+<p>To maintain the keyword expansions supplied by the
+vendor, supply the &lsquo;<samp>-ko</samp>&rsquo; option to <code>cvs
+import</code> the first time you import the file.
+This will turn off keyword expansion
+for that file entirely, so if you want to be more
+selective you&rsquo;ll have to think about what you want
+and use the &lsquo;<samp>-k</samp>&rsquo; option to <code>cvs update</code> or
+<code>cvs admin</code> as appropriate.
+</p>
+<hr>
+<a name="Multiple-vendor-branches"></a>
+<div class="header">
+<p>
+Previous: <a href="#Keywords-in-imports" accesskey="p" rel="prev">Keywords in 
imports</a>, Up: <a href="#Tracking-sources" accesskey="u" rel="up">Tracking 
sources</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Multiple-vendor-branches-1"></a>
+<h3 class="section">13.6 Multiple vendor branches</h3>
+
+<p>All the examples so far assume that there is only one
+vendor from which you are getting sources.  In some
+situations you might get sources from a variety of
+places.  For example, suppose that you are dealing with
+a project where many different people and teams are
+modifying the software.  There are a variety of ways to
+handle this, but in some cases you have a bunch of
+source trees lying around and what you want to do more
+than anything else is just to all put them in <small>CVS</small> so
+that you at least have them in one place.
+</p>
+<p>For handling situations in which there may be more than
+one vendor, you may specify the &lsquo;<samp>-b</samp>&rsquo; option to
+<code>cvs import</code>.  It takes as an argument the vendor
+branch to import to.  The default is &lsquo;<samp>-b 1.1.1</samp>&rsquo;.
+</p>
+<p>For example, suppose that there are two teams, the red
+team and the blue team, that are sending you sources.
+You want to import the red team&rsquo;s efforts to branch
+1.1.1 and use the vendor tag RED.  You want to import
+the blue team&rsquo;s efforts to branch 1.1.3 and use the
+vendor tag BLUE.  So the commands you might use are:
+</p>
+<div class="example">
+<pre class="example">$ cvs import dir RED RED_1-0
+$ cvs import -b 1.1.3 dir BLUE BLUE_1-5
+</pre></div>
+
+<p>Note that if your vendor tag does not match your
+&lsquo;<samp>-b</samp>&rsquo; option, <small>CVS</small> will not detect this 
case!  For
+example,
+</p>
+<div class="example">
+<pre class="example">$ cvs import -b 1.1.3 dir RED RED_1-0
+</pre></div>
+
+<p>Be careful; this kind of mismatch is sure to sow
+confusion or worse.  I can&rsquo;t think of a useful purpose
+for the ability to specify a mismatch here, but if you
+discover such a use, don&rsquo;t.  <small>CVS</small> is likely to make this
+an error in some future release.
+</p>
+
+<hr>
+<a name="Builds"></a>
+<div class="header">
+<p>
+Next: <a href="#Special-Files" accesskey="n" rel="next">Special Files</a>, 
Previous: <a href="#Tracking-sources" accesskey="p" rel="prev">Tracking 
sources</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="How-your-build-system-interacts-with-CVS"></a>
+<h2 class="chapter">14 How your build system interacts with CVS</h2>
+<a name="index-Builds"></a>
+<a name="index-make"></a>
+
+<p>As mentioned in the introduction, <small>CVS</small> does not
+contain software for building your software from source
+code.  This section describes how various aspects of
+your build system might interact with <small>CVS</small>.
+</p>
+<p>One common question, especially from people who are
+accustomed to <small>RCS</small>, is how to make their build get
+an up to date copy of the sources.  The answer to this
+with <small>CVS</small> is two-fold.  First of all, since
+<small>CVS</small> itself can recurse through directories, there
+is no need to modify your <samp>Makefile</samp> (or whatever
+configuration file your build tool uses) to make sure
+each file is up to date.  Instead, just use two
+commands, first <code>cvs -q update</code> and then
+<code>make</code> or whatever the command is to invoke your
+build tool.  Secondly, you do not necessarily
+<em>want</em> to get a copy of a change someone else made
+until you have finished your own work.  One suggested
+approach is to first update your sources, then
+implement, build and
+test the change you were thinking of, and then commit
+your sources (updating first if necessary).  By
+periodically (in between changes, using the approach
+just described) updating your entire tree, you ensure
+that your sources are sufficiently up to date.
+</p>
+<a name="index-Bill-of-materials"></a>
+<p>One common need is to record which versions of which
+source files went into a particular build.  This kind
+of functionality is sometimes called <em>bill of
+materials</em> or something similar.  The best way to do
+this with <small>CVS</small> is to use the <code>tag</code> command to
+record which versions went into a given build
+(see <a href="#Tags">Tags</a>).
+</p>
+<p>Using <small>CVS</small> in the most straightforward manner
+possible, each developer will have a copy of the entire
+source tree which is used in a particular build.  If
+the source tree is small, or if developers are
+geographically dispersed, this is the preferred
+solution.  In fact one approach for larger projects is
+to break a project down into smaller
+separately-compiled subsystems, and arrange a way of
+releasing them internally so that each developer need
+check out only those subsystems which they are
+actively working on.
+</p>
+<p>Another approach is to set up a structure which allows
+developers to have their own copies of some files, and
+for other files to access source files from a central
+location.  Many people have come up with some such a
+system using features such as the symbolic link feature
+found in many operating systems, or the <code>VPATH</code>
+feature found in many versions of <code>make</code>.  One build
+tool which is designed to help with this kind of thing
+is Odin (see
+<code>ftp://ftp.cs.colorado.edu/pub/distribs/odin</code>).
+</p>
+<hr>
+<a name="Special-Files"></a>
+<div class="header">
+<p>
+Next: <a href="#CVS-commands" accesskey="n" rel="next">CVS commands</a>, 
Previous: <a href="#Builds" accesskey="p" rel="prev">Builds</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Special-Files-1"></a>
+<h2 class="chapter">15 Special Files</h2>
+
+<a name="index-Special-files"></a>
+<a name="index-Device-nodes"></a>
+<a name="index-Ownership_002c-saving-in-CVS"></a>
+<a name="index-Permissions_002c-saving-in-CVS"></a>
+<a name="index-Hard-links"></a>
+<a name="index-Symbolic-links"></a>
+
+<p>In normal circumstances, <small>CVS</small> works only with regular
+files.  Every file in a project is assumed to be
+persistent; it must be possible to open, read and close
+them; and so on.  <small>CVS</small> also ignores file permissions and
+ownerships, leaving such issues to be resolved by the
+developer at installation time.  In other words, it is
+not possible to &quot;check in&quot; a device into a repository;
+if the device file cannot be opened, <small>CVS</small> will refuse to
+handle it.  Files also lose their ownerships and
+permissions during repository transactions.
+</p>
+
+<hr>
+<a name="CVS-commands"></a>
+<div class="header">
+<p>
+Next: <a href="#Invoking-CVS" accesskey="n" rel="next">Invoking CVS</a>, 
Previous: <a href="#Special-Files" accesskey="p" rel="prev">Special Files</a>, 
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Guide-to-CVS-commands"></a>
+<h2 class="appendix">Appendix A Guide to CVS commands</h2>
+
+<p>This appendix describes the overall structure of
+<small>CVS</small> commands, and describes some commands in
+detail (others are described elsewhere; for a quick
+reference to <small>CVS</small> commands, see <a href="#Invoking-CVS">Invoking 
CVS</a>).
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Structure" 
accesskey="1">Structure</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Overall structure of CVS commands
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Exit-status" 
accesskey="2">Exit status</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Indicating CVS&rsquo;s success or failure
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#g_t_007e_002f_002ecvsrc" 
accesskey="3">~/.cvsrc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Default options with the ~/.cvsrc file
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Global-options" 
accesskey="4">Global options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Options you give to the left of cvs_command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Common-options" 
accesskey="5">Common options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Options you give to the right of cvs_command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#add" 
accesskey="6">add</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Add files and directories to the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#admin" 
accesskey="7">admin</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Administration
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#annotate" 
accesskey="8">annotate</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">What revision modified each line of a file?
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#checkout" 
accesskey="9">checkout</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Checkout sources for editing
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#commit">commit</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Check files into the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#diff">diff</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Show differences between revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#export">export</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Export sources from CVS, similar to checkout
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#history">history</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Show status of files and users
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#import">import</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Import sources into CVS, using vendor branches
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#log">log</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Show log messages for files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#rdiff">rdiff</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">&rsquo;patch&rsquo; format diffs between releases
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#release">release</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Indicate that a directory is no longer in use
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#remove">remove</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Remove files from active development
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#update">update</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Bring work tree in sync with repository
+</td></tr>
+</table>
+
+<hr>
+<a name="Structure"></a>
+<div class="header">
+<p>
+Next: <a href="#Exit-status" accesskey="n" rel="next">Exit status</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Overall-structure-of-CVS-commands"></a>
+<h3 class="appendixsec">A.1 Overall structure of CVS commands</h3>
+<a name="index-Structure"></a>
+<a name="index-CVS-command-structure"></a>
+<a name="index-Command-structure"></a>
+<a name="index-Format-of-CVS-commands"></a>
+
+<p>The overall format of all <small>CVS</small> commands is:
+</p>
+<div class="example">
+<pre class="example">cvs [ cvs_options ] cvs_command [ command_options ] [ 
command_args ]
+</pre></div>
+
+<dl compact="compact">
+<dt><code>cvs</code></dt>
+<dd><p>The name of the <small>CVS</small> program.
+</p>
+</dd>
+<dt><code>cvs_options</code></dt>
+<dd><p>Some options that affect all sub-commands of <small>CVS</small>.  These 
are
+described below.
+</p>
+</dd>
+<dt><code>cvs_command</code></dt>
+<dd><p>One of several different sub-commands.  Some of the commands have
+aliases that can be used instead; those aliases are noted in the
+reference manual for that command.  There are only two situations
+where you may omit &lsquo;<samp>cvs_command</samp>&rsquo;: &lsquo;<samp>cvs 
-H</samp>&rsquo; elicits a
+list of available commands, and &lsquo;<samp>cvs -v</samp>&rsquo; displays 
version
+information on <small>CVS</small> itself.
+</p>
+</dd>
+<dt><code>command_options</code></dt>
+<dd><p>Options that are specific for the command.
+</p>
+</dd>
+<dt><code>command_args</code></dt>
+<dd><p>Arguments to the commands.
+</p></dd>
+</dl>
+
+<p>There is unfortunately some confusion between
+<code>cvs_options</code> and <code>command_options</code>.
+When given as a <code>cvs_option</code>, some options only
+affect some of the commands.  When given as a
+<code>command_option</code> it may have a different meaning, and
+be accepted by more commands.  In other words, do not
+take the above categorization too seriously.  Look at
+the documentation instead.
+</p>
+<hr>
+<a name="Exit-status"></a>
+<div class="header">
+<p>
+Next: <a href="#g_t_007e_002f_002ecvsrc" accesskey="n" 
rel="next">~/.cvsrc</a>, Previous: <a href="#Structure" accesskey="p" 
rel="prev">Structure</a>, Up: <a href="#CVS-commands" accesskey="u" 
rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="CVS_0027s-exit-status"></a>
+<h3 class="appendixsec">A.2 CVS&rsquo;s exit status</h3>
+<a name="index-Exit-status_002c-of-CVS"></a>
+
+<p><small>CVS</small> can indicate to the calling environment whether it
+succeeded or failed by setting its <em>exit status</em>.
+The exact way of testing the exit status will vary from
+one operating system to another.  For example in a unix
+shell script the &lsquo;<samp>$?</samp>&rsquo; variable will be 0 if the
+last command returned a successful exit status, or
+greater than 0 if the exit status indicated failure.
+</p>
+<p>If <small>CVS</small> is successful, it returns a successful status;
+if there is an error, it prints an error message and
+returns a failure status.  The one exception to this is
+the <code>cvs diff</code> command.  It will return a
+successful status if it found no differences, or a
+failure status if there were differences or if there
+was an error.  Because this behavior provides no good
+way to detect errors, in the future it is possible that
+<code>cvs diff</code> will be changed to behave like the
+other <small>CVS</small> commands.
+</p>
+<hr>
+<a name="g_t_007e_002f_002ecvsrc"></a>
+<div class="header">
+<p>
+Next: <a href="#Global-options" accesskey="n" rel="next">Global options</a>, 
Previous: <a href="#Exit-status" accesskey="p" rel="prev">Exit status</a>, Up: 
<a href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Default-options-and-the-_007e_002f_002ecvsrc-file"></a>
+<h3 class="appendixsec">A.3 Default options and the ~/.cvsrc file</h3>
+<a name="index-_002ecvsrc-file"></a>
+<a name="index-Option-defaults"></a>
+
+<p>There are some <code>command_options</code> that are used so
+often that you might have set up an alias or some other
+means to make sure you always specify that option.  One
+example (the one that drove the implementation of the
+<samp>.cvsrc</samp> support, actually) is that many people find the
+default output of the &lsquo;<samp>diff</samp>&rsquo; command to be very
+hard to read, and that either context diffs or unidiffs
+are much easier to understand.
+</p>
+<p>The <samp>~/.cvsrc</samp> file is a way that you can add
+default options to <code>cvs_commands</code> within cvs,
+instead of relying on aliases or other shell scripts.
+</p>
+<p>The format of the <samp>~/.cvsrc</samp> file is simple.  The
+file is searched for a line that begins with the same
+name as the <code>cvs_command</code> being executed.  If a
+match is found, then the remainder of the line is split
+up (at whitespace characters) into separate options and
+added to the command arguments <em>before</em> any
+options from the command line.
+</p>
+<p>If a command has two names (e.g., <code>checkout</code> and
+<code>co</code>), the official name, not necessarily the one
+used on the command line, will be used to match against
+the file.  So if this is the contents of the user&rsquo;s
+<samp>~/.cvsrc</samp> file:
+</p>
+<div class="example">
+<pre class="example">log -N
+diff -uN
+rdiff -u
+update -Pd
+checkout -P
+release -d
+</pre></div>
+
+<p>the command &lsquo;<samp>cvs checkout foo</samp>&rsquo; would have the
+&lsquo;<samp>-P</samp>&rsquo; option added to the arguments, as well as
+&lsquo;<samp>cvs co foo</samp>&rsquo;.
+</p>
+<p>With the example file above, the output from &lsquo;<samp>cvs
+diff foobar</samp>&rsquo; will be in unidiff format.  &lsquo;<samp>cvs diff
+-c foobar</samp>&rsquo; will provide context diffs, as usual.
+Getting &quot;old&quot; format diffs would be slightly more
+complicated, because <code>diff</code> doesn&rsquo;t have an option
+to specify use of the &quot;old&quot; format, so you would need
+&lsquo;<samp>cvs -f diff foobar</samp>&rsquo;.
+</p>
+<p>In place of the command name you can use <code>cvs</code> to
+specify global options (see <a href="#Global-options">Global options</a>).  For
+example the following line in <samp>.cvsrc</samp>
+</p>
+<div class="example">
+<pre class="example">cvs -z6
+</pre></div>
+
+<p>causes <small>CVS</small> to use compression level 6.
+</p>
+<hr>
+<a name="Global-options"></a>
+<div class="header">
+<p>
+Next: <a href="#Common-options" accesskey="n" rel="next">Common options</a>, 
Previous: <a href="#g_t_007e_002f_002ecvsrc" accesskey="p" 
rel="prev">~/.cvsrc</a>, Up: <a href="#CVS-commands" accesskey="u" rel="up">CVS 
commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Global-options-1"></a>
+<h3 class="appendixsec">A.4 Global options</h3>
+<a name="index-Options_002c-global"></a>
+<a name="index-Global-options"></a>
+<a name="index-Left_002dhand-options"></a>
+
+<p>The available &lsquo;<samp>cvs_options</samp>&rsquo; (that are given to the
+left of &lsquo;<samp>cvs_command</samp>&rsquo;) are:
+</p>
+<dl compact="compact">
+<dt><code>--allow-root=<var>rootdir</var></code></dt>
+<dd><p>Specify legal <small>CVSROOT</small> directory.  See
+<a href="#Password-authentication-server">Password authentication server</a>.
+</p>
+<a name="index-Authentication_002c-stream"></a>
+<a name="index-Stream-authentication"></a>
+</dd>
+<dt><code>-a</code></dt>
+<dd><p>Authenticate all communication between the client and
+the server.  Only has an effect on the <small>CVS</small> client.
+As of this writing, this is only implemented when using
+a GSSAPI connection (see <a href="#GSSAPI-authenticated">GSSAPI 
authenticated</a>).
+Authentication prevents certain sorts of attacks
+involving hijacking the active <small>TCP</small> connection.
+Enabling authentication does not enable encryption.
+</p>
+<a name="index-RCSBIN_002c-overriding"></a>
+<a name="index-Overriding-RCSBIN"></a>
+</dd>
+<dt><code>-b <var>bindir</var></code></dt>
+<dd><p>In <small>CVS</small> 1.9.18 and older, this specified that
+<small>RCS</small> programs are in the <var>bindir</var> directory.
+Current versions of <small>CVS</small> do not run <small>RCS</small>
+programs; for compatibility this option is accepted,
+but it does nothing.
+</p>
+<a name="index-TMPDIR_002c-overriding"></a>
+<a name="index-Overriding-TMPDIR"></a>
+</dd>
+<dt><code>-T <var>tempdir</var></code></dt>
+<dd><p>Use <var>tempdir</var> as the directory where temporary files are
+located.  Overrides the setting of the <code>$TMPDIR</code> environment
+variable and any precompiled directory.  This parameter should be
+specified as an absolute pathname.
+(When running client/server, &lsquo;<samp>-T</samp>&rsquo; affects only the 
local process;
+specifying &lsquo;<samp>-T</samp>&rsquo; for the client has no effect on the 
server and
+vice versa.)
+</p>
+<a name="index-CVSROOT_002c-overriding"></a>
+<a name="index-Overriding-CVSROOT"></a>
+</dd>
+<dt><code>-d <var>cvs_root_directory</var></code></dt>
+<dd><p>Use <var>cvs_root_directory</var> as the root directory
+pathname of the repository.  Overrides the setting of
+the <code>$CVSROOT</code> environment variable.  See <a 
href="#Repository">Repository</a>.
+</p>
+<a name="index-EDITOR_002c-overriding"></a>
+<a name="index-Overriding-EDITOR"></a>
+</dd>
+<dt><code>-e <var>editor</var></code></dt>
+<dd><p>Use <var>editor</var> to enter revision log information.  Overrides the
+setting of the <code>$CVSEDITOR</code> and <code>$EDITOR</code>
+environment variables.  For more information, see
+<a href="#Committing-your-changes">Committing your changes</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Do not read the <samp>~/.cvsrc</samp> file.  This
+option is most often used because of the
+non-orthogonality of the <small>CVS</small> option set.  For
+example, the &lsquo;<samp>cvs log</samp>&rsquo; option 
&lsquo;<samp>-N</samp>&rsquo; (turn off
+display of tag names) does not have a corresponding
+option to turn the display on.  So if you have
+&lsquo;<samp>-N</samp>&rsquo; in the <samp>~/.cvsrc</samp> entry for 
&lsquo;<samp>log</samp>&rsquo;,
+you may need to use &lsquo;<samp>-f</samp>&rsquo; to show the tag names.
+</p>
+</dd>
+<dt><code>-H</code></dt>
+<dt><code>--help</code></dt>
+<dd><p>Display usage information about the specified 
&lsquo;<samp>cvs_command</samp>&rsquo;
+(but do not actually execute the command).  If you don&rsquo;t specify
+a command name, &lsquo;<samp>cvs -H</samp>&rsquo; displays overall help for
+<small>CVS</small>, including a list of other help options.
+</p>
+<a name="index-Read_002donly-mode"></a>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not change any files.  Attempt to execute the
+&lsquo;<samp>cvs_command</samp>&rsquo;, but only to issue reports; do not 
remove,
+update, or merge any existing files, or create any new files.
+</p>
+<p>Note that <small>CVS</small> will not necessarily produce exactly
+the same output as without &lsquo;<samp>-n</samp>&rsquo;.  In some cases
+the output will be the same, but in other cases
+<small>CVS</small> will skip some of the processing that would
+have been required to produce the exact same output.
+</p>
+</dd>
+<dt><code>-Q</code></dt>
+<dd><p>Cause the command to be really quiet; the command will only
+generate output for serious problems.
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Cause the command to be somewhat quiet; informational messages,
+such as reports of recursion through subdirectories, are
+suppressed.
+</p>
+<a name="index-Read_002donly-files_002c-and-_002dr"></a>
+</dd>
+<dt><code>-r</code></dt>
+<dd><p>Make new working files read-only.  Same effect
+as if the <code>$CVSREAD</code> environment variable is set
+(see <a href="#Environment-variables">Environment variables</a>).  The default 
is to
+make working files writable, unless watches are on
+(see <a href="#Watches">Watches</a>).
+</p>
+</dd>
+<dt><code>-s <var>variable</var>=<var>value</var></code></dt>
+<dd><p>Set a user variable (see <a href="#Variables">Variables</a>).
+</p>
+<a name="index-Trace"></a>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Trace program execution; display messages showing the steps of
+<small>CVS</small> activity.  Particularly useful with 
&lsquo;<samp>-n</samp>&rsquo; to explore the
+potential impact of an unfamiliar command.
+</p>
+</dd>
+<dt><code>-v</code></dt>
+<dt><code>--version</code></dt>
+<dd><p>Display version and copyright information for <small>CVS</small>.
+</p>
+<a name="index-CVSREAD_002c-overriding"></a>
+<a name="index-Overriding-CVSREAD"></a>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Make new working files read-write.  Overrides the
+setting of the <code>$CVSREAD</code> environment variable.
+Files are created read-write by default, unless <code>$CVSREAD</code> is
+set or &lsquo;<samp>-r</samp>&rsquo; is given.
+</p>
+</dd>
+<dt><code>-x</code></dt>
+<dd><a name="index-Encryption"></a>
+<p>Encrypt all communication between the client and the
+server.  Only has an effect on the <small>CVS</small> client.  As
+of this writing, this is only implemented when using a
+GSSAPI connection (see <a href="#GSSAPI-authenticated">GSSAPI 
authenticated</a>) or a
+Kerberos connection (see <a href="#Kerberos-authenticated">Kerberos 
authenticated</a>).
+Enabling encryption implies that message traffic is
+also authenticated.  Encryption support is not
+available by default; it must be enabled using a
+special configure option, <samp>--enable-encryption</samp>,
+when you build <small>CVS</small>.
+</p>
+</dd>
+<dt><code>-z <var>gzip-level</var></code></dt>
+<dd><a name="index-Compression"></a>
+<a name="index-Gzip"></a>
+<p>Set the compression level.
+Valid levels are 1 (high speed, low compression) to
+9 (low speed, high compression), or 0 to disable
+compression (the default).
+Only has an effect on the <small>CVS</small> client.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="Common-options"></a>
+<div class="header">
+<p>
+Next: <a href="#add" accesskey="n" rel="next">add</a>, Previous: <a 
href="#Global-options" accesskey="p" rel="prev">Global options</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Common-command-options"></a>
+<h3 class="appendixsec">A.5 Common command options</h3>
+<a name="index-Common-options"></a>
+<a name="index-Right_002dhand-options"></a>
+
+<p>This section describes the &lsquo;<samp>command_options</samp>&rsquo; that
+are available across several <small>CVS</small> commands.  These
+options are always given to the right of
+&lsquo;<samp>cvs_command</samp>&rsquo;. Not all
+commands support all of these options; each option is
+only supported for commands where it makes sense.
+However, when a command has one of these options you
+can almost always count on the same behavior of the
+option as in other commands.  (Other command options,
+which are listed with the individual commands, may have
+different behavior from one <small>CVS</small> command to the other).
+</p>
+<p><strong>The &lsquo;<samp>history</samp>&rsquo; command is an exception; it 
supports
+many options that conflict even with these standard options.</strong>
+</p>
+<dl compact="compact">
+<dd><a name="index-Dates"></a>
+<a name="index-Time"></a>
+<a name="index-Specifying-dates"></a>
+</dd>
+<dt><code>-D <var>date_spec</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date_spec</var>.
+<var>date_spec</var> is a single argument, a date description
+specifying a date in the past.
+</p>
+<p>The specification is <em>sticky</em> when you use it to make a
+private copy of a source file; that is, when you get a working
+file using &lsquo;<samp>-D</samp>&rsquo;, <small>CVS</small> records the date 
you specified, so that
+further updates in the same directory will use the same date
+(for more information on sticky tags/dates, see <a href="#Sticky-tags">Sticky 
tags</a>).
+</p>
+<p>&lsquo;<samp>-D</samp>&rsquo; is available with the <code>annotate</code>, 
<code>checkout</code>,
+<code>diff</code>, <code>export</code>, <code>history</code>,
+<code>rdiff</code>, <code>rtag</code>, and <code>update</code> commands.
+(The <code>history</code> command uses this option in a
+slightly different way; see <a href="#history-options">history options</a>).
+</p>
+
+<a name="index-Timezone_002c-in-input"></a>
+<a name="index-Zone_002c-time_002c-in-input"></a>
+<p>A wide variety of date formats are supported by
+<small>CVS</small>.  The most standard ones are ISO8601 (from the
+International Standards Organization) and the Internet
+e-mail standard (specified in RFC822 as amended by
+RFC1123).
+</p>
+<p>ISO8601 dates have many variants but a few examples
+are:
+</p>
+<div class="example">
+<pre class="example">1972-09-24
+1972-09-24 20:05
+</pre></div>
+
+<p>There are a lot more ISO8601 date formats, and <small>CVS</small>
+accepts many of them, but you probably don&rsquo;t want to
+hear the <em>whole</em> long story :-).
+</p>
+
+<p>In addition to the dates allowed in Internet e-mail
+itself, <small>CVS</small> also allows some of the fields to be
+omitted.  For example:
+</p>
+<div class="example">
+<pre class="example">24 Sep 1972 20:05
+24 Sep
+</pre></div>
+
+<p>The date is interpreted as being in the
+local timezone, unless a specific timezone is
+specified.
+</p>
+<p>These two date formats are preferred.  However,
+<small>CVS</small> currently accepts a wide variety of other date
+formats.  They are intentionally not documented here in
+any detail, and future versions of <small>CVS</small> might not
+accept all of them.
+</p>
+<p>One such format is
+<code><var>month</var>/<var>day</var>/<var>year</var></code>.  This may
+confuse people who are accustomed to having the month
+and day in the other order; &lsquo;<samp>1/4/96</samp>&rsquo; is January 4,
+not April 1.
+</p>
+<p>Remember to quote the argument to the &lsquo;<samp>-D</samp>&rsquo;
+flag so that your shell doesn&rsquo;t interpret spaces as
+argument separators.  A command using the &lsquo;<samp>-D</samp>&rsquo;
+flag can look like this:
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -D &quot;1 hour ago&quot; cvs.texinfo
+</pre></div>
+
+<a name="index-Forcing-a-tag-match"></a>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>When you specify a particular date or tag to <small>CVS</small> 
commands, they
+normally ignore files that do not contain the tag (or did not
+exist prior to the date) that you specified.  Use the 
&lsquo;<samp>-f</samp>&rsquo; option
+if you want files retrieved even when there is no match for the
+tag or date.  (The most recent revision of the file
+will be used).
+</p>
+<p>Note that even with &lsquo;<samp>-f</samp>&rsquo;, a tag that you specify
+must exist (that is, in some file, not necessary in
+every file).  This is so that <small>CVS</small> will continue to
+give an error if you mistype a tag name.
+</p>
+<p>&lsquo;<samp>-f</samp>&rsquo; is available with these commands:
+<code>annotate</code>, <code>checkout</code>, <code>export</code>,
+<code>rdiff</code>, <code>rtag</code>, and <code>update</code>.
+</p>
+<p><strong>WARNING:  The <code>commit</code> and <code>remove</code>
+commands also have a
+&lsquo;<samp>-f</samp>&rsquo; option, but it has a different behavior for
+those commands.  See <a href="#commit-options">commit options</a>, and
+<a href="#Removing-files">Removing files</a>.</strong>
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Alter the default processing of keywords.
+See <a href="#Keyword-substitution">Keyword substitution</a>, for the meaning 
of
+<var>kflag</var>.  Your <var>kflag</var> specification is
+<em>sticky</em> when you use it to create a private copy
+of a source file; that is, when you use this option
+with the <code>checkout</code> or <code>update</code> commands,
+<small>CVS</small> associates your selected <var>kflag</var> with the
+file, and continues to use it with future update
+commands on the same file until you specify otherwise.
+</p>
+<p>The &lsquo;<samp>-k</samp>&rsquo; option is available with the 
<code>add</code>,
+<code>checkout</code>, <code>diff</code>, <code>rdiff</code>, 
<code>import</code> and
+<code>update</code> commands.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory, rather than
+recursing through subdirectories.
+</p>
+<p>Available with the following commands: <code>annotate</code>, 
<code>checkout</code>,
+<code>commit</code>, <code>diff</code>, <code>edit</code>, 
<code>editors</code>, <code>export</code>,
+<code>log</code>, <code>rdiff</code>, <code>remove</code>, <code>rtag</code>,
+<code>status</code>, <code>tag</code>, <code>unedit</code>, 
<code>update</code>, <code>watch</code>,
+and <code>watchers</code>.
+</p>
+<a name="index-Editor_002c-avoiding-invocation-of"></a>
+<a name="index-Avoiding-editor-invocation"></a>
+</dd>
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as log information, instead of
+invoking an editor.
+</p>
+<p>Available with the following commands: <code>add</code>,
+<code>commit</code> and <code>import</code>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run any tag program.  (A program can be
+specified to run in the modules
+database (see <a href="#modules">modules</a>); this option bypasses it).
+</p>
+<p><strong>This is not the same as the &lsquo;<samp>cvs -n</samp>&rsquo;
+program option, which you can specify to the left of a cvs command!</strong>
+</p>
+<p>Available with the <code>checkout</code>, <code>export</code>,
+and <code>rtag</code> commands.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a href="#Removing-directories">Removing 
directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Pipe the files retrieved from the repository to standard output,
+rather than writing them in the current directory.  Available
+with the <code>checkout</code> and <code>update</code> commands.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Process directories recursively.  This is on by default.
+</p>
+<p>Available with the following commands: <code>annotate</code>, 
<code>checkout</code>,
+<code>commit</code>, <code>diff</code>, <code>edit</code>, 
<code>editors</code>, <code>export</code>,
+<code>rdiff</code>, <code>remove</code>, <code>rtag</code>,
+<code>status</code>, <code>tag</code>, <code>unedit</code>, 
<code>update</code>, <code>watch</code>,
+and <code>watchers</code>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><a name="index-HEAD_002c-special-tag"></a>
+<a name="index-BASE_002c-special-tag"></a>
+<p>Use the revision specified by the <var>tag</var> argument instead of the
+default <em>head</em> revision.  As well as arbitrary tags defined
+with the <code>tag</code> or <code>rtag</code> command, two special tags are
+always available: &lsquo;<samp>HEAD</samp>&rsquo; refers to the most recent 
version
+available in the repository, and &lsquo;<samp>BASE</samp>&rsquo; refers to the
+revision you last checked out into the current working directory.
+</p>
+
+<p>The tag specification is sticky when you use this
+with <code>checkout</code> or <code>update</code> to make your own
+copy of a file: <small>CVS</small> remembers the tag and continues to use it on
+future update commands, until you specify otherwise (for more information
+on sticky tags/dates, see <a href="#Sticky-tags">Sticky tags</a>).
+</p>
+<p>The tag can be either a symbolic or numeric tag, as
+described in <a href="#Tags">Tags</a>, or the name of a branch, as
+described in <a href="#Branching-and-merging">Branching and merging</a>.
+When a command expects a specific revision,
+the name of a branch is interpreted as the most recent
+revision on that branch.
+</p>
+<p>Specifying the &lsquo;<samp>-q</samp>&rsquo; global option along with the
+&lsquo;<samp>-r</samp>&rsquo; command option is often useful, to suppress
+the warning messages when the <small>RCS</small> file
+does not contain the specified tag.
+</p>
+<p><strong>This is not the same as the overall &lsquo;<samp>cvs 
-r</samp>&rsquo; option,
+which you can specify to the left of a <small>CVS</small> command!</strong>
+</p>
+<p>&lsquo;<samp>-r</samp>&rsquo; is available with the <code>annotate</code>, 
<code>checkout</code>,
+<code>commit</code>, <code>diff</code>, <code>history</code>, 
<code>export</code>, <code>rdiff</code>, 
+<code>rtag</code>, and <code>update</code> commands.
+</p>
+</dd>
+<dt><code>-W</code></dt>
+<dd><p>Specify file names that should be filtered.  You can
+use this option repeatedly.  The spec can be a file
+name pattern of the same type that you can specify in
+the <samp>.cvswrappers</samp> file.
+Available with the following commands: <code>import</code>,
+and <code>update</code>.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="add"></a>
+<div class="header">
+<p>
+Next: <a href="#admin" accesskey="n" rel="next">admin</a>, Previous: <a 
href="#Common-options" accesskey="p" rel="prev">Common options</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="add_002d_002d_002dAdd-files-and-directories-to-the-repository"></a>
+<h3 class="appendixsec">A.6 add&mdash;Add files and directories to the 
repository</h3>
+<a name="index-add-_0028subcommand_0029-1"></a>
+
+<ul>
+<li> Synopsis: add [-k rcs-kflag] [-m message] files...
+</li><li> Requires: repository, working directory.
+</li><li> Changes: repository, working directory.
+</li></ul>
+
+<p>The <code>add</code> command is used to present new files
+and directories for addition into the <small>CVS</small>
+repository.  When <code>add</code> is used on a directory,
+a new directory is created in the repository
+immediately.  When used on a file, only the working
+directory is updated.  Changes to the repository are
+not made until the <code>commit</code> command is used on
+the newly added file. 
+</p>
+<p>The <code>add</code> command also resurrects files that
+have been previously removed.  This can be done
+before or after the <code>commit</code> command is used
+to finalize the removal of files.  Resurrected files
+are restored into the working directory at the time
+the <code>add</code> command is executed.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#add-options" 
accesskey="1">add options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">add options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#add-examples" 
accesskey="2">add examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">add examples
+</td></tr>
+</table>
+
+<hr>
+<a name="add-options"></a>
+<div class="header">
+<p>
+Next: <a href="#add-examples" accesskey="n" rel="next">add examples</a>, Up: 
<a href="#add" accesskey="u" rel="up">add</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="add-options-1"></a>
+<h4 class="appendixsubsec">A.6.1 add options</h4>
+
+<p>These standard options are supported by <code>add</code>
+(see <a href="#Common-options">Common options</a>, for a complete description 
of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="#Keyword-substitution">Keyword substitution</a>.
+This option is sticky; future updates of
+this file in this working directory will use the same
+<var>kflag</var>.  The <code>status</code> command can be viewed
+to see the sticky options.  For more information on
+the <code>status</code> command, See <a href="#Invoking-CVS">Invoking CVS</a>.
+</p>
+</dd>
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as the log message, instead of
+invoking an editor.
+</p></dd>
+</dl>
+
+<hr>
+<a name="add-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#add-options" accesskey="p" rel="prev">add options</a>, Up: 
<a href="#add" accesskey="u" rel="up">add</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="add-examples-1"></a>
+<h4 class="appendixsubsec">A.6.2 add examples</h4>
+
+<a name="Adding-a-directory"></a>
+<h4 class="appendixsubsubsec">A.6.2.1 Adding a directory</h4>
+
+<div class="example">
+<pre class="example">$ mkdir doc
+$ cvs add doc
+Directory /path/to/repository/doc added to the repository
+</pre></div>
+
+<a name="Adding-a-file"></a>
+<h4 class="appendixsubsubsec">A.6.2.2 Adding a file</h4>
+
+<div class="example">
+<pre class="example">
+$ &gt;TODO
+$ cvs add TODO
+cvs add: scheduling file `TODO' for addition
+cvs add: use 'cvs commit' to add this file permanently
+</pre></div>
+
+<a name="Undoing-a-remove-command"></a>
+<h4 class="appendixsubsubsec">A.6.2.3 Undoing a <code>remove</code> 
command</h4>
+
+<div class="example">
+<pre class="example">$ rm -f makefile
+$ cvs remove makefile
+cvs remove: scheduling `makefile' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+$ cvs add makefile
+U makefile
+cvs add: makefile, version 1.2, resurrected
+</pre></div>
+
+<hr>
+<a name="admin"></a>
+<div class="header">
+<p>
+Next: <a href="#annotate" accesskey="n" rel="next">annotate</a>, Previous: <a 
href="#add" accesskey="p" rel="prev">add</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="admin_002d_002d_002dAdministration"></a>
+<h3 class="appendixsec">A.7 admin&mdash;Administration</h3>
+<a name="index-Admin-_0028subcommand_0029"></a>
+
+<ul>
+<li> Requires: repository, working directory.
+</li><li> Changes: repository.
+</li><li> Synonym: rcs
+</li></ul>
+
+<p>This is the <small>CVS</small> interface to assorted
+administrative facilities.  Some of them have
+questionable usefulness for <small>CVS</small> but exist for
+historical purposes.  Some of the questionable options
+are likely to disappear in the future.  This command
+<em>does</em> work recursively, so extreme care should be
+used.
+</p>
+<a name="index-cvsadmin"></a>
+<p>On unix, if there is a group named <code>cvsadmin</code>,
+only members of that group can run <code>cvs admin</code>
+(except for the <code>cvs admin -k</code> command, which can
+be run by anybody).  This group should exist on the
+server, or any system running the non-client/server
+<small>CVS</small>.  To disallow <code>cvs admin</code> for all users,
+create a group with no users in it.  On NT, the
+<code>cvsadmin</code> feature does not exist and all users
+can run <code>cvs admin</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#admin-options" 
accesskey="1">admin options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">admin options
+</td></tr>
+</table>
+
+<hr>
+<a name="admin-options"></a>
+<div class="header">
+<p>
+Up: <a href="#admin" accesskey="u" rel="up">admin</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="admin-options-1"></a>
+<h4 class="appendixsubsec">A.7.1 admin options</h4>
+
+<p>Some of these options have questionable usefulness for
+<small>CVS</small> but exist for historical purposes.  Some even
+make it impossible to use <small>CVS</small> until you undo the
+effect!
+</p>
+<dl compact="compact">
+<dt><code>-A<var>oldfile</var></code></dt>
+<dd><p>Might not work together with <small>CVS</small>.  Append the
+access list of <var>oldfile</var> to the access list of the
+<small>RCS</small> file.
+</p>
+</dd>
+<dt><code>-a<var>logins</var></code></dt>
+<dd><p>Might not work together with <small>CVS</small>.  Append the
+login names appearing in the comma-separated list
+<var>logins</var> to the access list of the <small>RCS</small> file.
+</p>
+</dd>
+<dt><code>-b[<var>rev</var>]</code></dt>
+<dd><p>Set the default branch to <var>rev</var>.  In <small>CVS</small>, you
+normally do not manipulate default branches; sticky
+tags (see <a href="#Sticky-tags">Sticky tags</a>) are a better way to decide
+which branch you want to work on.  There is one reason
+to run <code>cvs admin -b</code>: to revert to the vendor&rsquo;s
+version when using vendor branches (see <a 
href="#Reverting-local-changes">Reverting local changes</a>).
+There can be no space between &lsquo;<samp>-b</samp>&rsquo; and its argument.
+</p>
+<a name="index-Comment-leader"></a>
+</dd>
+<dt><code>-c<var>string</var></code></dt>
+<dd><p>Sets the comment leader to <var>string</var>.  The comment
+leader is not used by current versions of <small>CVS</small> or
+<small>RCS</small> 5.7.  Therefore, you can almost surely not
+worry about it.  See <a href="#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-e[<var>logins</var>]</code></dt>
+<dd><p>Might not work together with <small>CVS</small>.  Erase the login
+names appearing in the comma-separated list
+<var>logins</var> from the access list of the RCS file.  If
+<var>logins</var> is omitted, erase the entire access list.
+There can be no space between &lsquo;<samp>-e</samp>&rsquo; and its argument.
+</p>
+</dd>
+<dt><code>-I</code></dt>
+<dd><p>Run interactively, even if the standard input is not a
+terminal.  This option does not work with the
+client/server <small>CVS</small> and is likely to disappear in
+a future release of <small>CVS</small>.
+</p>
+</dd>
+<dt><code>-i</code></dt>
+<dd><p>Useless with <small>CVS</small>.  This creates and initializes a
+new <small>RCS</small> file, without depositing a revision.  With
+<small>CVS</small>, add files with the <code>cvs add</code> command
+(see <a href="#Adding-files">Adding files</a>).
+</p>
+</dd>
+<dt><code>-k<var>subst</var></code></dt>
+<dd><p>Set the default keyword
+substitution to <var>subst</var>.  See <a href="#Keyword-substitution">Keyword 
substitution</a>.  Giving an explicit &lsquo;<samp>-k</samp>&rsquo; option to
+<code>cvs update</code>, <code>cvs export</code>, or <code>cvs
+checkout</code> overrides this default.
+</p>
+</dd>
+<dt><code>-l[<var>rev</var>]</code></dt>
+<dd><p>Lock the revision with number <var>rev</var>.  If a branch
+is given, lock the latest revision on that branch.  If
+<var>rev</var> is omitted, lock the latest revision on the
+default branch.  There can be no space between
+&lsquo;<samp>-l</samp>&rsquo; and its argument.
+</p>
+<p>This can be used in conjunction with the
+<samp>rcslock.pl</samp> script in the <samp>contrib</samp>
+directory of the <small>CVS</small> source distribution to
+provide reserved checkouts (where only one user can be
+editing a given file at a time).  See the comments in
+that file for details (and see the <samp>README</samp> file
+in that directory for disclaimers about the unsupported
+nature of contrib).  According to comments in that
+file, locking must set to strict (which is the default).
+</p>
+</dd>
+<dt><code>-L</code></dt>
+<dd><p>Set locking to strict.  Strict locking means that the
+owner of an RCS file is not exempt from locking for
+checkin.  For use with <small>CVS</small>, strict locking must be
+set; see the discussion under the &lsquo;<samp>-l</samp>&rsquo; option above.
+</p>
+<a name="index-Changing-a-log-message"></a>
+<a name="index-Replacing-a-log-message"></a>
+<a name="index-Correcting-a-log-message"></a>
+<a name="index-Fixing-a-log-message"></a>
+<a name="index-Log-message_002c-correcting"></a>
+</dd>
+<dt><code>-m<var>rev</var>:<var>msg</var></code></dt>
+<dd><p>Replace the log message of revision <var>rev</var> with
+<var>msg</var>.
+</p>
+
+</dd>
+<dt><code>-N<var>name</var>[:[<var>rev</var>]]</code></dt>
+<dd><p>Act like &lsquo;<samp>-n</samp>&rsquo;, except override any previous
+assignment of <var>name</var>.  For use with magic branches,
+see <a href="#Magic-branch-numbers">Magic branch numbers</a>.
+</p>
+</dd>
+<dt><code>-n<var>name</var>[:[<var>rev</var>]]</code></dt>
+<dd><p>Associate the symbolic name <var>name</var> with the branch
+or revision <var>rev</var>.  It is normally better to use
+&lsquo;<samp>cvs tag</samp>&rsquo; or &lsquo;<samp>cvs rtag</samp>&rsquo; 
instead.  Delete the
+symbolic name if both &lsquo;<samp>:</samp>&rsquo; and <var>rev</var> are
+omitted; otherwise, print an error message if
+<var>name</var> is already associated with another number.
+If <var>rev</var> is symbolic, it is expanded before
+association.  A <var>rev</var> consisting of a branch number
+followed by a &lsquo;<samp>.</samp>&rsquo; stands for the current latest
+revision in the branch.  A &lsquo;<samp>:</samp>&rsquo; with an empty
+<var>rev</var> stands for the current latest revision on the
+default branch, normally the trunk.  For example,
+&lsquo;<samp>cvs admin -n<var>name</var>:</samp>&rsquo; associates 
<var>name</var> with the
+current latest revision of all the RCS files;
+this contrasts with &lsquo;<samp>cvs admin -n<var>name</var>:$</samp>&rsquo; 
which
+associates <var>name</var> with the revision numbers
+extracted from keyword strings in the corresponding
+working files.
+</p>
+<a name="index-Deleting-revisions"></a>
+<a name="index-Outdating-revisions"></a>
+<a name="index-Saving-space"></a>
+</dd>
+<dt><code>-o<var>range</var></code></dt>
+<dd><p>Deletes (<em>outdates</em>) the revisions given by
+<var>range</var>.
+</p>
+<p>Note that this command can be quite dangerous unless
+you know <em>exactly</em> what you are doing (for example
+see the warnings below about how the
+<var>rev1</var>:<var>rev2</var> syntax is confusing).
+</p>
+<p>If you are short on disc this option might help you.
+But think twice before using it&mdash;there is no way short
+of restoring the latest backup to undo this command!
+If you delete different revisions than you planned,
+either due to carelessness or (heaven forbid) a <small>CVS</small>
+bug, there is no opportunity to correct the error
+before the revisions are deleted.  It probably would be
+a good idea to experiment on a copy of the repository
+first.
+</p>
+<p>Specify <var>range</var> in one of the following ways:
+</p>
+<dl compact="compact">
+<dt><code><var>rev1</var>::<var>rev2</var></code></dt>
+<dd><p>Collapse all revisions between rev1 and rev2, so that
+<small>CVS</small> only stores the differences associated with going
+from rev1 to rev2, not intermediate steps.  For
+example, after &lsquo;<samp>-o 1.3::1.5</samp>&rsquo; one can retrieve
+revision 1.3, revision 1.5, or the differences to get
+from 1.3 to 1.5, but not the revision 1.4, or the
+differences between 1.3 and 1.4.  Other examples:
+&lsquo;<samp>-o 1.3::1.4</samp>&rsquo; and &lsquo;<samp>-o 
1.3::1.3</samp>&rsquo; have no
+effect, because there are no intermediate revisions to
+remove.
+</p>
+</dd>
+<dt><code>::<var>rev</var></code></dt>
+<dd><p>Collapse revisions between the beginning of the branch
+containing <var>rev</var> and <var>rev</var> itself.  The
+branchpoint and <var>rev</var> are left intact.  For
+example, &lsquo;<samp>-o ::1.3.2.6</samp>&rsquo; deletes revision 1.3.2.1,
+revision 1.3.2.5, and everything in between, but leaves
+1.3 and 1.3.2.6 intact.
+</p>
+</dd>
+<dt><code><var>rev</var>::</code></dt>
+<dd><p>Collapse revisions between <var>rev</var> and the end of the
+branch containing <var>rev</var>.  Revision <var>rev</var> is
+left intact but the head revision is deleted.
+</p>
+</dd>
+<dt><code><var>rev</var></code></dt>
+<dd><p>Delete the revision <var>rev</var>.  For example, &lsquo;<samp>-o
+1.3</samp>&rsquo; is equivalent to &lsquo;<samp>-o 1.2::1.4</samp>&rsquo;.
+</p>
+</dd>
+<dt><code><var>rev1</var>:<var>rev2</var></code></dt>
+<dd><p>Delete the revisions from <var>rev1</var> to <var>rev2</var>,
+inclusive, on the same branch.  One will not be able to
+retrieve <var>rev1</var> or <var>rev2</var> or any of the
+revisions in between.  For example, the command
+&lsquo;<samp>cvs admin -oR_1_01:R_1_02 .</samp>&rsquo; is rarely useful.
+It means to delete revisions up to, and including, the
+tag R_1_02.  But beware!  If there are files that have not
+changed between R_1_02 and R_1_03 the file will have
+<em>the same</em> numerical revision number assigned to
+the tags R_1_02 and R_1_03.  So not only will it be
+impossible to retrieve R_1_02; R_1_03 will also have to
+be restored from the tapes!  In most cases you want to
+specify <var>rev1</var>::<var>rev2</var> instead.
+</p>
+</dd>
+<dt><code>:<var>rev</var></code></dt>
+<dd><p>Delete revisions from the beginning of the
+branch containing <var>rev</var> up to and including
+<var>rev</var>.
+</p>
+</dd>
+<dt><code><var>rev</var>:</code></dt>
+<dd><p>Delete revisions from revision <var>rev</var>, including
+<var>rev</var> itself, to the end of the branch containing
+<var>rev</var>.
+</p></dd>
+</dl>
+
+<p>None of the revisions to be deleted may have
+branches or locks.
+</p>
+<p>If any of the revisions to be deleted have symbolic
+names, and one specifies one of the &lsquo;<samp>::</samp>&rsquo; syntaxes,
+then <small>CVS</small> will give an error and not delete any
+revisions.  If you really want to delete both the
+symbolic names and the revisions, first delete the
+symbolic names with <code>cvs tag -d</code>, then run
+<code>cvs admin -o</code>.  If one specifies the
+non-&lsquo;<samp>::</samp>&rsquo; syntaxes, then <small>CVS</small> will 
delete the
+revisions but leave the symbolic names pointing to
+nonexistent revisions.  This behavior is preserved for
+compatibility with previous versions of <small>CVS</small>, but
+because it isn&rsquo;t very useful, in the future it may
+change to be like the &lsquo;<samp>::</samp>&rsquo; case.
+</p>
+<p>Due to the way <small>CVS</small> handles branches <var>rev</var>
+cannot be specified symbolically if it is a branch.
+See <a href="#Magic-branch-numbers">Magic branch numbers</a> for an 
explanation.
+</p>
+<p>Make sure that no-one has checked out a copy of the
+revision you outdate.  Strange things will happen if he
+starts to edit it and tries to check it back in.  For
+this reason, this option is not a good way to take back
+a bogus commit; commit a new revision undoing the bogus
+change instead (see <a href="#Merging-two-revisions">Merging two 
revisions</a>).
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Run quietly; do not print diagnostics.
+</p>
+</dd>
+<dt><code>-s<var>state</var>[:<var>rev</var>]</code></dt>
+<dd><p>Useful with <small>CVS</small>.  Set the state attribute of the
+revision <var>rev</var> to <var>state</var>.  If <var>rev</var> is a
+branch number, assume the latest revision on that
+branch.  If <var>rev</var> is omitted, assume the latest
+revision on the default branch.  Any identifier is
+acceptable for <var>state</var>.  A useful set of states is
+&lsquo;<samp>Exp</samp>&rsquo; (for experimental), 
&lsquo;<samp>Stab</samp>&rsquo; (for
+stable), and &lsquo;<samp>Rel</samp>&rsquo; (for released).  By default,
+the state of a new revision is set to &lsquo;<samp>Exp</samp>&rsquo; when
+it is created.  The state is visible in the output from
+<var>cvs log</var> (see <a href="#log">log</a>), and in the
+&lsquo;<samp>$<i></i>Log$</samp>&rsquo; and 
&lsquo;<samp>$<i></i>State$</samp>&rsquo; keywords
+(see <a href="#Keyword-substitution">Keyword substitution</a>).  Note that 
<small>CVS</small>
+uses the <code>dead</code> state for its own purposes (see <a 
href="#Attic">Attic</a>); to
+take a file to or from the <code>dead</code> state use
+commands like <code>cvs remove</code> and <code>cvs add</code>
+(see <a href="#Adding-and-removing">Adding and removing</a>), not <code>cvs 
admin -s</code>.
+</p>
+</dd>
+<dt><code>-t[<var>file</var>]</code></dt>
+<dd><p>Useful with <small>CVS</small>.  Write descriptive text from the
+contents of the named <var>file</var> into the RCS file,
+deleting the existing text.  The <var>file</var> pathname
+may not begin with &lsquo;<samp>-</samp>&rsquo;.  The descriptive text can be 
seen in the
+output from &lsquo;<samp>cvs log</samp>&rsquo; (see <a href="#log">log</a>).
+There can be no space between &lsquo;<samp>-t</samp>&rsquo; and its argument.
+</p>
+<p>If <var>file</var> is omitted,
+obtain the text from standard input, terminated by
+end-of-file or by a line containing &lsquo;<samp>.</samp>&rsquo; by itself.
+Prompt for the text if interaction is possible; see
+&lsquo;<samp>-I</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-t-<var>string</var></code></dt>
+<dd><p>Similar to &lsquo;<samp>-t<var>file</var></samp>&rsquo;. Write 
descriptive text
+from the <var>string</var> into the <small>RCS</small> file, deleting
+the existing text.
+There can be no space between &lsquo;<samp>-t</samp>&rsquo; and its argument.
+</p>
+
+</dd>
+<dt><code>-U</code></dt>
+<dd><p>Set locking to non-strict.  Non-strict locking means
+that the owner of a file need not lock a revision for
+checkin.  For use with <small>CVS</small>, strict locking must be
+set; see the discussion under the &lsquo;<samp>-l</samp>&rsquo; option
+above.
+</p>
+</dd>
+<dt><code>-u[<var>rev</var>]</code></dt>
+<dd><p>See the option &lsquo;<samp>-l</samp>&rsquo; above, for a discussion of
+using this option with <small>CVS</small>.  Unlock the revision
+with number <var>rev</var>.  If a branch is given, unlock
+the latest revision on that branch.  If <var>rev</var> is
+omitted, remove the latest lock held by the caller.
+Normally, only the locker of a revision may unlock it;
+somebody else unlocking a revision breaks the lock.
+This causes the original locker to be sent a <code>commit</code>
+notification (see <a href="#Getting-Notified">Getting Notified</a>).
+There can be no space between &lsquo;<samp>-u</samp>&rsquo; and its argument.
+</p>
+</dd>
+<dt><code>-V<var>n</var></code></dt>
+<dd><p>In previous versions of <small>CVS</small>, this option meant to
+write an <small>RCS</small> file which would be acceptable to
+<small>RCS</small> version <var>n</var>, but it is now obsolete and
+specifying it will produce an error.
+</p>
+</dd>
+<dt><code>-x<var>suffixes</var></code></dt>
+<dd><p>In previous versions of <small>CVS</small>, this was documented
+as a way of specifying the names of the <small>RCS</small>
+files.  However, <small>CVS</small> has always required that the
+<small>RCS</small> files used by <small>CVS</small> end in 
&lsquo;<samp>,v</samp>&rsquo;, so
+this option has never done anything useful.
+</p>
+</dd>
+</dl>
+
+
+<hr>
+<a name="annotate"></a>
+<div class="header">
+<p>
+Next: <a href="#checkout" accesskey="n" rel="next">checkout</a>, Previous: <a 
href="#admin" accesskey="p" rel="prev">admin</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a 
name="annotate_002d_002d_002dWhat-revision-modified-each-line-of-a-file_003f"></a>
+<h3 class="appendixsec">A.8 annotate&mdash;What revision modified each line of 
a file?</h3>
+<a name="index-annotate-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: annotate [options] files&hellip;
+</li><li> Requires: repository.
+</li><li> Synonym: blame
+</li><li> Changes: nothing.
+</li></ul>
+
+<p>For each file in <var>files</var>, print the head revision
+of the trunk, together with information on the last
+modification for each line.  
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#annotate-options" 
accesskey="1">annotate options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">annotate options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#annotate-example" 
accesskey="2">annotate example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">annotate example
+</td></tr>
+</table>
+
+<hr>
+<a name="annotate-options"></a>
+<div class="header">
+<p>
+Next: <a href="#annotate-example" accesskey="n" rel="next">annotate 
example</a>, Up: <a href="#annotate" accesskey="u" rel="up">annotate</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="annotate-options-1"></a>
+<h4 class="appendixsubsec">A.8.1 annotate options</h4>
+
+<p>These standard options are supported by <code>annotate</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local directory only, no recursion.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Process directories recursively.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Annotate binary files.
+</p>
+</dd>
+<dt><code>-r <var>revision</var></code></dt>
+<dd><p>Annotate file as of specified revision/tag.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Annotate file as of specified date.
+</p></dd>
+</dl>
+
+<hr>
+<a name="annotate-example"></a>
+<div class="header">
+<p>
+Previous: <a href="#annotate-options" accesskey="p" rel="prev">annotate 
options</a>, Up: <a href="#annotate" accesskey="u" rel="up">annotate</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="annotate-example-1"></a>
+<h4 class="appendixsubsec">A.8.2 annotate example</h4>
+
+<p>For example:
+</p>
+<div class="example">
+<pre class="example">$ cvs annotate ssfile
+Annotations for ssfile
+***************
+1.1          (mary     27-Mar-96): ssfile line 1
+1.2          (joe      28-Mar-96): ssfile line 2
+</pre></div>
+
+<p>The file <samp>ssfile</samp> currently contains two lines.
+The <code>ssfile line 1</code> line was checked in by
+<code>mary</code> on March 27.  Then, on March 28, <code>joe</code>
+added a line <code>ssfile line 2</code>, without modifying
+the <code>ssfile line 1</code> line.  This report doesn&rsquo;t
+tell you anything about lines which have been deleted
+or replaced; you need to use <code>cvs diff</code> for that
+(see <a href="#diff">diff</a>).
+</p>
+<p>The options to <code>cvs annotate</code> are listed in
+<a href="#Invoking-CVS">Invoking CVS</a>, and can be used to select the files
+and revisions to annotate.  The options are described
+in more detail there and in <a href="#Common-options">Common options</a>.
+</p>
+
+
+<hr>
+<a name="checkout"></a>
+<div class="header">
+<p>
+Next: <a href="#commit" accesskey="n" rel="next">commit</a>, Previous: <a 
href="#annotate" accesskey="p" rel="prev">annotate</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="checkout_002d_002d_002dCheck-out-sources-for-editing"></a>
+<h3 class="appendixsec">A.9 checkout&mdash;Check out sources for editing</h3>
+<a name="index-checkout-_0028subcommand_0029"></a>
+<a name="index-co-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: checkout [options] modules&hellip;
+</li><li> Requires: repository.
+</li><li> Changes: working directory.
+</li><li> Synonyms: co, get
+</li></ul>
+
+<p>Create or update a working directory containing copies of the
+source files specified by <var>modules</var>.  You must execute
+<code>checkout</code> before using most of the other <small>CVS</small>
+commands, since most of them operate on your working
+directory.
+</p>
+<p>The <var>modules</var> are either
+symbolic names for some
+collection of source directories and files, or paths to
+directories or files in the repository.  The symbolic
+names are defined in the &lsquo;<samp>modules</samp>&rsquo; file.
+See <a href="#modules">modules</a>.
+</p>
+<p>Depending on the modules you specify, <code>checkout</code> may
+recursively create directories and populate them with
+the appropriate source files.  You can then edit these
+source files at any time (regardless of whether other
+software developers are editing their own copies of the
+sources); update them to include new changes applied by
+others to the source repository; or commit your work as
+a permanent change to the source repository.
+</p>
+<p>Note that <code>checkout</code> is used to create
+directories.  The top-level directory created is always
+added to the directory where <code>checkout</code> is
+invoked, and usually has the same name as the specified
+module.  In the case of a module alias, the created
+sub-directory may have a different name, but you can be
+sure that it will be a sub-directory, and that
+<code>checkout</code> will show the relative path leading to
+each file as it is extracted into your private work
+area (unless you specify the &lsquo;<samp>-Q</samp>&rsquo; global option).
+</p>
+<p>The files created by <code>checkout</code> are created
+read-write, unless the &lsquo;<samp>-r</samp>&rsquo; option to 
<small>CVS</small>
+(see <a href="#Global-options">Global options</a>) is specified, the
+<code>CVSREAD</code> environment variable is specified
+(see <a href="#Environment-variables">Environment variables</a>), or a watch 
is in
+effect for that file (see <a href="#Watches">Watches</a>).
+</p>
+<p>Note that running <code>checkout</code> on a directory that was already
+built by a prior <code>checkout</code> is also permitted.
+This is similar to specifying the &lsquo;<samp>-d</samp>&rsquo; option
+to the <code>update</code> command in the sense that new
+directories that have been created in the repository
+will appear in your work area.
+However, <code>checkout</code> takes a module name whereas
+<code>update</code> takes a directory name.  Also
+to use <code>checkout</code> this way it must be run from the
+top level directory (where you originally ran
+<code>checkout</code> from), so before you run
+<code>checkout</code> to update an existing directory, don&rsquo;t
+forget to change your directory to the top level
+directory.
+</p>
+<p>For the output produced by the <code>checkout</code> command,
+See <a href="#update-output">update output</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#checkout-options" 
accesskey="1">checkout options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">checkout options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#checkout-examples" 
accesskey="2">checkout examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">checkout examples
+</td></tr>
+</table>
+
+<hr>
+<a name="checkout-options"></a>
+<div class="header">
+<p>
+Next: <a href="#checkout-examples" accesskey="n" rel="next">checkout 
examples</a>, Up: <a href="#checkout" accesskey="u" rel="up">checkout</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="checkout-options-1"></a>
+<h4 class="appendixsubsec">A.9.1 checkout options</h4>
+
+<p>These standard options are supported by <code>checkout</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+This option is sticky, and implies &lsquo;<samp>-P</samp>&rsquo;.  See
+<a href="#Sticky-tags">Sticky tags</a> for more information on sticky 
tags/dates.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Only useful with the &lsquo;<samp>-D <var>date</var></samp>&rsquo; or 
&lsquo;<samp>-r
+<var>tag</var></samp>&rsquo; flags.  If no matching revision is found,
+retrieve the most recent revision (instead of ignoring
+the file).
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="#Keyword-substitution">Keyword substitution</a>.
+This option is sticky; future updates of
+this file in this working directory will use the same
+<var>kflag</var>.  The <code>status</code> command can be viewed
+to see the sticky options.  See <a href="#Invoking-CVS">Invoking CVS</a> for
+more information on the <code>status</code> command.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run any checkout program (as specified
+with the &lsquo;<samp>-o</samp>&rsquo; option in the modules file;
+see <a href="#modules">modules</a>).
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a href="#Moving-directories">Moving 
directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Pipe files to the standard output.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Checkout directories recursively.  This option is on by default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Use revision <var>tag</var>.  This option is sticky, and implies 
&lsquo;<samp>-P</samp>&rsquo;.
+See <a href="#Sticky-tags">Sticky tags</a>, for more information on sticky 
tags/dates.
+</p></dd>
+</dl>
+
+<p>In addition to those, you can use these special command
+options with <code>checkout</code>:
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags, dates, or &lsquo;<samp>-k</samp>&rsquo; options.
+Does not reset sticky &lsquo;<samp>-k</samp>&rsquo; options on modified files.
+See <a href="#Sticky-tags">Sticky tags</a> for more information on sticky 
tags/dates.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Copy the module file, sorted, to the standard output,
+instead of creating or modifying any files or
+directories in your working directory.
+</p>
+</dd>
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Create a directory called <var>dir</var> for the working
+files, instead of using the module name.  In general,
+using this flag is equivalent to using &lsquo;<samp>mkdir
+<var>dir</var>; cd <var>dir</var></samp>&rsquo; followed by the checkout
+command without the &lsquo;<samp>-d</samp>&rsquo; flag.
+</p>
+<p>There is an important exception, however.  It is very
+convenient when checking out a single item to have the
+output appear in a directory that doesn&rsquo;t contain empty
+intermediate directories.  In this case <em>only</em>,
+<small>CVS</small> tries to &ldquo;shorten&rdquo; pathnames to avoid those 
empty
+directories.
+</p>
+<p>For example, given a module &lsquo;<samp>foo</samp>&rsquo; that contains
+the file &lsquo;<samp>bar.c</samp>&rsquo;, the command &lsquo;<samp>cvs co -d 
dir
+foo</samp>&rsquo; will create directory &lsquo;<samp>dir</samp>&rsquo; and 
place
+&lsquo;<samp>bar.c</samp>&rsquo; inside.  Similarly, given a module
+&lsquo;<samp>bar</samp>&rsquo; which has subdirectory 
&lsquo;<samp>baz</samp>&rsquo; wherein
+there is a file &lsquo;<samp>quux.c</samp>&rsquo;, the command 
&lsquo;<samp>cvs co
+-d dir bar/baz</samp>&rsquo; will create directory 
&lsquo;<samp>dir</samp>&rsquo; and
+place &lsquo;<samp>quux.c</samp>&rsquo; inside.
+</p>
+<p>Using the &lsquo;<samp>-N</samp>&rsquo; flag will defeat this behavior.
+Given the same module definitions above, &lsquo;<samp>cvs co
+-N -d dir foo</samp>&rsquo; will create directories 
&lsquo;<samp>dir/foo</samp>&rsquo;
+and place &lsquo;<samp>bar.c</samp>&rsquo; inside, while &lsquo;<samp>cvs co 
-N -d
+dir bar/baz</samp>&rsquo; will create directories 
&lsquo;<samp>dir/bar/baz</samp>&rsquo;
+and place &lsquo;<samp>quux.c</samp>&rsquo; inside.
+</p>
+</dd>
+<dt><code>-j <var>tag</var></code></dt>
+<dd><p>With two &lsquo;<samp>-j</samp>&rsquo; options, merge changes from the
+revision specified with the first &lsquo;<samp>-j</samp>&rsquo; option to
+the revision specified with the second &lsquo;<samp>j</samp>&rsquo; option,
+into the working directory.
+</p>
+<p>With one &lsquo;<samp>-j</samp>&rsquo; option, merge changes from the
+ancestor revision to the revision specified with the
+&lsquo;<samp>-j</samp>&rsquo; option, into the working directory.  The
+ancestor revision is the common ancestor of the
+revision which the working directory is based on, and
+the revision specified in the &lsquo;<samp>-j</samp>&rsquo; option.
+</p>
+<p>In addition, each -j option can contain an optional
+date specification which, when used with branches, can
+limit the chosen revision to one within a specific
+date.  An optional date is specified by adding a colon
+(:) to the tag:
+&lsquo;<samp>-j<var>Symbolic_Tag</var>:<var>Date_Specifier</var></samp>&rsquo;.
+</p>
+<p>See <a href="#Branching-and-merging">Branching and merging</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Only useful together with &lsquo;<samp>-d <var>dir</var></samp>&rsquo;. 
 With
+this option, <small>CVS</small> will not &ldquo;shorten&rdquo; module paths
+in your working directory when you check out a single
+module.  See the &lsquo;<samp>-d</samp>&rsquo; flag for examples and a
+discussion.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Like &lsquo;<samp>-c</samp>&rsquo;, but include the status of all 
modules,
+and sort it by the status string.  See <a href="#modules">modules</a>, for
+info about the &lsquo;<samp>-s</samp>&rsquo; option that is used inside the
+modules file to set the module status.
+</p></dd>
+</dl>
+
+<hr>
+<a name="checkout-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#checkout-options" accesskey="p" rel="prev">checkout 
options</a>, Up: <a href="#checkout" accesskey="u" rel="up">checkout</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="checkout-examples-1"></a>
+<h4 class="appendixsubsec">A.9.2 checkout examples</h4>
+
+<p>Get a copy of the module &lsquo;<samp>tc</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout tc
+</pre></div>
+
+<p>Get a copy of the module &lsquo;<samp>tc</samp>&rsquo; as it looked one day
+ago:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -D yesterday tc
+</pre></div>
+
+<hr>
+<a name="commit"></a>
+<div class="header">
+<p>
+Next: <a href="#diff" accesskey="n" rel="next">diff</a>, Previous: <a 
href="#checkout" accesskey="p" rel="prev">checkout</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="commit_002d_002d_002dCheck-files-into-the-repository"></a>
+<h3 class="appendixsec">A.10 commit&mdash;Check files into the repository</h3>
+<a name="index-commit-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: commit [-lRf] [-m &rsquo;log_message&rsquo; |
+-F file] [-r revision] [files&hellip;]
+</li><li> Requires: working directory, repository.
+</li><li> Changes: repository.
+</li><li> Synonym: ci
+</li></ul>
+
+<p>Use <code>commit</code> when you want to incorporate changes
+from your working source files into the source
+repository.
+</p>
+<p>If you don&rsquo;t specify particular files to commit, all of
+the files in your working current directory are
+examined.  <code>commit</code> is careful to change in the
+repository only those files that you have really
+changed.  By default (or if you explicitly specify the
+&lsquo;<samp>-R</samp>&rsquo; option), files in subdirectories are also
+examined and committed if they have changed; you can
+use the &lsquo;<samp>-l</samp>&rsquo; option to limit <code>commit</code> to 
the
+current directory only.
+</p>
+<p><code>commit</code> verifies that the selected files are up
+to date with the current revisions in the source
+repository; it will notify you, and exit without
+committing, if any of the specified files must be made
+current first with <code>update</code> (see <a href="#update">update</a>).
+<code>commit</code> does not call the <code>update</code> command
+for you, but rather leaves that for you to do when the
+time is right.
+</p>
+<p>When all is well, an editor is invoked to allow you to
+enter a log message that will be written to one or more
+logging programs (see <a href="#modules">modules</a>, and see <a 
href="#loginfo">loginfo</a>)
+and placed in the <small>RCS</small> file inside the
+repository.  This log message can be retrieved with the
+<code>log</code> command; See <a href="#log">log</a>.  You can specify the
+log message on the command line with the &lsquo;<samp>-m
+<var>message</var></samp>&rsquo; option, and thus avoid the editor invocation,
+or use the &lsquo;<samp>-F <var>file</var></samp>&rsquo; option to specify
+that the argument file contains the log message.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#commit-options" 
accesskey="1">commit options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">commit options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#commit-examples" 
accesskey="2">commit examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">commit examples
+</td></tr>
+</table>
+
+<hr>
+<a name="commit-options"></a>
+<div class="header">
+<p>
+Next: <a href="#commit-examples" accesskey="n" rel="next">commit examples</a>, 
Up: <a href="#commit" accesskey="u" rel="up">commit</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="commit-options-1"></a>
+<h4 class="appendixsubsec">A.10.1 commit options</h4>
+
+<p>These standard options are supported by <code>commit</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Commit directories recursively.  This is on by default.
+</p>
+</dd>
+<dt><code>-r <var>revision</var></code></dt>
+<dd><p>Commit to <var>revision</var>.  <var>revision</var> must be
+either a branch, or a revision on the main trunk that
+is higher than any existing revision number
+(see <a href="#Assigning-revisions">Assigning revisions</a>).  You
+cannot commit to a specific revision on a branch.
+</p></dd>
+</dl>
+
+<p><code>commit</code> also supports these options:
+</p>
+<dl compact="compact">
+<dt><code>-F <var>file</var></code></dt>
+<dd><p>Read the log message from <var>file</var>, instead
+of invoking an editor.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Note that this is not the standard behavior of
+the &lsquo;<samp>-f</samp>&rsquo; option as defined in <a 
href="#Common-options">Common options</a>.
+</p>
+<p>Force <small>CVS</small> to commit a new revision even if you haven&rsquo;t
+made any changes to the file.  If the current revision
+of <var>file</var> is 1.7, then the following two commands
+are equivalent:
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -f <var>file</var>
+$ cvs commit -r 1.8 <var>file</var>
+</pre></div>
+
+<p>The &lsquo;<samp>-f</samp>&rsquo; option disables recursion (i.e., it
+implies &lsquo;<samp>-l</samp>&rsquo;).  To force <small>CVS</small> to commit 
a new
+revision for all files in all subdirectories, you must
+use &lsquo;<samp>-f -R</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as the log message, instead of
+invoking an editor.
+</p></dd>
+</dl>
+
+<hr>
+<a name="commit-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#commit-options" accesskey="p" rel="prev">commit 
options</a>, Up: <a href="#commit" accesskey="u" rel="up">commit</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="commit-examples-1"></a>
+<h4 class="appendixsubsec">A.10.2 commit examples</h4>
+
+
+<a name="Committing-to-a-branch"></a>
+<h4 class="appendixsubsubsec">A.10.2.1 Committing to a branch</h4>
+
+<p>You can commit to a branch revision (one that has an
+even number of dots) with the &lsquo;<samp>-r</samp>&rsquo; option.  To
+create a branch revision, use the &lsquo;<samp>-b</samp>&rsquo; option
+of the <code>rtag</code> or <code>tag</code> commands
+(see <a href="#Branching-and-merging">Branching and merging</a>).  Then, 
either <code>checkout</code> or
+<code>update</code> can be used to base your sources on the
+newly created branch.  From that point on, all
+<code>commit</code> changes made within these working sources
+will be automatically added to a branch revision,
+thereby not disturbing main-line development in any
+way.  For example, if you had to create a patch to the
+1.2 version of the product, even though the 2.0 version
+is already under development, you might do:
+</p>
+<div class="example">
+<pre class="example">$ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
+$ cvs checkout -r FCS1_2_Patch product_module
+$ cd product_module
+[[ hack away ]]
+$ cvs commit
+</pre></div>
+
+<p>This works automatically since the &lsquo;<samp>-r</samp>&rsquo; option is
+sticky.
+</p>
+<a name="Creating-the-branch-after-editing"></a>
+<h4 class="appendixsubsubsec">A.10.2.2 Creating the branch after editing</h4>
+
+<p>Say you have been working on some extremely
+experimental software, based on whatever revision you
+happened to checkout last week.  If others in your
+group would like to work on this software with you, but
+without disturbing main-line development, you could
+commit your change to a new branch.  Others can then
+checkout your experimental stuff and utilize the full
+benefit of <small>CVS</small> conflict resolution.  The scenario might
+look like:
+</p>
+<div class="example">
+<pre class="example">[[ hacked sources are present ]]
+$ cvs tag -b EXPR1
+$ cvs update -r EXPR1
+$ cvs commit
+</pre></div>
+
+<p>The <code>update</code> command will make the &lsquo;<samp>-r
+EXPR1</samp>&rsquo; option sticky on all files.  Note that your
+changes to the files will never be removed by the
+<code>update</code> command.  The <code>commit</code> will
+automatically commit to the correct branch, because the
+&lsquo;<samp>-r</samp>&rsquo; is sticky.  You could also do like this:
+</p>
+<div class="example">
+<pre class="example">[[ hacked sources are present ]]
+$ cvs tag -b EXPR1
+$ cvs commit -r EXPR1
+</pre></div>
+
+<p>but then, only those files that were changed by you
+will have the &lsquo;<samp>-r EXPR1</samp>&rsquo; sticky flag.  If you hack
+away, and commit without specifying the &lsquo;<samp>-r EXPR1</samp>&rsquo;
+flag, some files may accidentally end up on the main
+trunk.
+</p>
+<p>To work with you on the experimental change, others
+would simply do
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -r EXPR1 whatever_module
+</pre></div>
+
+<hr>
+<a name="diff"></a>
+<div class="header">
+<p>
+Next: <a href="#export" accesskey="n" rel="next">export</a>, Previous: <a 
href="#commit" accesskey="p" rel="prev">commit</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="diff_002d_002d_002dShow-differences-between-revisions"></a>
+<h3 class="appendixsec">A.11 diff&mdash;Show differences between revisions</h3>
+<a name="index-diff-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: diff [-lR] [-k kflag] [format_options] [[-r rev1 | -D date1] 
[-r rev2 |  -D date2]] [files&hellip;]
+</li><li> Requires: working directory, repository.
+</li><li> Changes: nothing.
+</li></ul>
+
+<p>The <code>diff</code> command is used to compare different
+revisions of files.  The default action is to compare
+your working files with the revisions they were based
+on, and report any differences that are found.
+</p>
+<p>If any file names are given, only those files are
+compared.  If any directories are given, all files
+under them will be compared.
+</p>
+<p>The exit status for diff is different than for other
+<small>CVS</small> commands; for details See <a href="#Exit-status">Exit 
status</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#diff-options" 
accesskey="1">diff options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">diff options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#diff-examples" 
accesskey="2">diff examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">diff examples
+</td></tr>
+</table>
+
+<hr>
+<a name="diff-options"></a>
+<div class="header">
+<p>
+Next: <a href="#diff-examples" accesskey="n" rel="next">diff examples</a>, Up: 
<a href="#diff" accesskey="u" rel="up">diff</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="diff-options-1"></a>
+<h4 class="appendixsubsec">A.11.1 diff options</h4>
+
+<p>These standard options are supported by <code>diff</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+See &lsquo;<samp>-r</samp>&rsquo; for how this affects the comparison.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Examine directories recursively.  This option is on by
+default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Compare with revision <var>tag</var>.  Zero, one or two
+&lsquo;<samp>-r</samp>&rsquo; options can be present.  With no 
&lsquo;<samp>-r</samp>&rsquo;
+option, the working file will be compared with the
+revision it was based on.  With one &lsquo;<samp>-r</samp>&rsquo;, that
+revision will be compared to your current working file.
+With two &lsquo;<samp>-r</samp>&rsquo; options those two revisions will be
+compared (and your working file will not affect the
+outcome in any way).
+</p>
+<p>One or both &lsquo;<samp>-r</samp>&rsquo; options can be replaced by a
+&lsquo;<samp>-D <var>date</var></samp>&rsquo; option, described above.
+</p></dd>
+</dl>
+
+<p>The following options specify the format of the
+output.  They have the same meaning as in GNU diff.
+Most options have two equivalent names, one of which is a single letter
+preceded by &lsquo;<samp>-</samp>&rsquo;, and the other of which is a long 
name preceded by
+&lsquo;<samp>--</samp>&rsquo;.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>-<var>lines</var></samp>&rsquo;</dt>
+<dd><p>Show <var>lines</var> (an integer) lines of context.  This option does 
not
+specify an output format by itself; it has no effect unless it is
+combined with &lsquo;<samp>-c</samp>&rsquo; or &lsquo;<samp>-u</samp>&rsquo;.  
This option is obsolete.  For proper
+operation, <code>patch</code> typically needs at least two lines of context.
+</p>
+</dd>
+<dt>&lsquo;<samp>-a</samp>&rsquo;</dt>
+<dd><p>Treat all files as text and compare them line-by-line, even if they
+do not seem to be text.
+</p>
+</dd>
+<dt>&lsquo;<samp>-b</samp>&rsquo;</dt>
+<dd><p>Ignore trailing white space and consider all other sequences of one or
+more white space characters to be equivalent.
+</p>
+</dd>
+<dt>&lsquo;<samp>-B</samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete blank lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>--binary</samp>&rsquo;</dt>
+<dd><p>Read and write data in binary mode.
+</p>
+</dd>
+<dt>&lsquo;<samp>--brief</samp>&rsquo;</dt>
+<dd><p>Report only whether the files differ, not the details of the
+differences.
+</p>
+</dd>
+<dt>&lsquo;<samp>-c</samp>&rsquo;</dt>
+<dd><p>Use the context output format.
+</p>
+</dd>
+<dt>&lsquo;<samp>-C <var>lines</var></samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--context<span class="roman">[</span>=<var>lines</var><span 
class="roman">]</span></samp>&rsquo;</dt>
+<dd><p>Use the context output format, showing <var>lines</var> (an integer) 
lines of
+context, or three if <var>lines</var> is not given.
+For proper operation, <code>patch</code> typically needs at least two lines of
+context.
+</p>
+</dd>
+<dt>&lsquo;<samp>--changed-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line group containing differing lines 
from
+both files in if-then-else format.  See <a href="#Line-group-formats">Line 
group formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-d</samp>&rsquo;</dt>
+<dd><p>Change the algorithm to perhaps find a smaller set of changes.  This 
makes
+<code>diff</code> slower (sometimes much slower).
+</p>
+</dd>
+<dt>&lsquo;<samp>-e</samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--ed</samp>&rsquo;</dt>
+<dd><p>Make output that is a valid <code>ed</code> script.
+</p>
+</dd>
+<dt>&lsquo;<samp>--expand-tabs</samp>&rsquo;</dt>
+<dd><p>Expand tabs to spaces in the output, to preserve the alignment of tabs
+in the input files.
+</p>
+</dd>
+<dt>&lsquo;<samp>-f</samp>&rsquo;</dt>
+<dd><p>Make output that looks vaguely like an <code>ed</code> script but has 
changes
+in the order they appear in the file.
+</p>
+</dd>
+<dt>&lsquo;<samp>-F <var>regexp</var></samp>&rsquo;</dt>
+<dd><p>In context and unified format, for each hunk of differences, show some
+of the last preceding line that matches <var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--forward-ed</samp>&rsquo;</dt>
+<dd><p>Make output that looks vaguely like an <code>ed</code> script but has 
changes
+in the order they appear in the file.
+</p>
+</dd>
+<dt>&lsquo;<samp>-H</samp>&rsquo;</dt>
+<dd><p>Use heuristics to speed handling of large files that have numerous
+scattered small changes.
+</p>
+</dd>
+<dt>&lsquo;<samp>--horizon-lines=<var>lines</var></samp>&rsquo;</dt>
+<dd><p>Do not discard the last <var>lines</var> lines of the common prefix
+and the first <var>lines</var> lines of the common suffix.
+</p>
+</dd>
+<dt>&lsquo;<samp>-i</samp>&rsquo;</dt>
+<dd><p>Ignore changes in case; consider upper- and lower-case letters
+equivalent.
+</p>
+</dd>
+<dt>&lsquo;<samp>-I <var>regexp</var></samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete lines that match 
<var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ifdef=<var>name</var></samp>&rsquo;</dt>
+<dd><p>Make merged if-then-else output using <var>name</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-all-space</samp>&rsquo;</dt>
+<dd><p>Ignore white space when comparing lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-blank-lines</samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete blank lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-case</samp>&rsquo;</dt>
+<dd><p>Ignore changes in case; consider upper- and lower-case to be the same.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-matching-lines=<var>regexp</var></samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete lines that match 
<var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-space-change</samp>&rsquo;</dt>
+<dd><p>Ignore trailing white space and consider all other sequences of one or
+more white space characters to be equivalent.
+</p>
+</dd>
+<dt>&lsquo;<samp>--initial-tab</samp>&rsquo;</dt>
+<dd><p>Output a tab rather than a space before the text of a line in normal or
+context format.  This causes the alignment of tabs in the line to look
+normal.
+</p>
+</dd>
+<dt>&lsquo;<samp>-L <var>label</var></samp>&rsquo;</dt>
+<dd><p>Use <var>label</var> instead of the file name in the context format
+and unified format headers.
+</p>
+</dd>
+<dt>&lsquo;<samp>--label=<var>label</var></samp>&rsquo;</dt>
+<dd><p>Use <var>label</var> instead of the file name in the context format
+and unified format headers.
+</p>
+</dd>
+<dt>&lsquo;<samp>--left-column</samp>&rsquo;</dt>
+<dd><p>Print only the left column of two common lines in side by side format.
+</p>
+</dd>
+<dt>&lsquo;<samp>--line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output all input lines in if-then-else format.
+See <a href="#Line-formats">Line formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--minimal</samp>&rsquo;</dt>
+<dd><p>Change the algorithm to perhaps find a smaller set of changes.  This
+makes <code>diff</code> slower (sometimes much slower).
+</p>
+</dd>
+<dt>&lsquo;<samp>-n</samp>&rsquo;</dt>
+<dd><p>Output RCS-format diffs; like &lsquo;<samp>-f</samp>&rsquo; except that 
each command
+specifies the number of lines affected.
+</p>
+</dd>
+<dt>&lsquo;<samp>-N</samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--new-file</samp>&rsquo;</dt>
+<dd><p>In directory comparison, if a file is found in only one directory,
+treat it as present but empty in the other directory.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a group of lines taken from just the 
second
+file in if-then-else format.  See <a href="#Line-group-formats">Line group 
formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line taken from just the second file 
in
+if-then-else format.  See <a href="#Line-formats">Line formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--old-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a group of lines taken from just the 
first
+file in if-then-else format.  See <a href="#Line-group-formats">Line group 
formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--old-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line taken from just the first file in
+if-then-else format.  See <a href="#Line-formats">Line formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-p</samp>&rsquo;</dt>
+<dd><p>Show which C function each change is in.
+</p>
+</dd>
+<dt>&lsquo;<samp>--rcs</samp>&rsquo;</dt>
+<dd><p>Output RCS-format diffs; like &lsquo;<samp>-f</samp>&rsquo; except that 
each command
+specifies the number of lines affected.
+</p>
+</dd>
+<dt>&lsquo;<samp>--report-identical-files</samp>&rsquo;</dt>
+<dt>&lsquo;<samp>-s</samp>&rsquo;</dt>
+<dd><p>Report when two files are the same.
+</p>
+</dd>
+<dt>&lsquo;<samp>--show-c-function</samp>&rsquo;</dt>
+<dd><p>Show which C function each change is in.
+</p>
+</dd>
+<dt>&lsquo;<samp>--show-function-line=<var>regexp</var></samp>&rsquo;</dt>
+<dd><p>In context and unified format, for each hunk of differences, show some
+of the last preceding line that matches <var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--side-by-side</samp>&rsquo;</dt>
+<dd><p>Use the side by side output format.
+</p>
+</dd>
+<dt>&lsquo;<samp>--speed-large-files</samp>&rsquo;</dt>
+<dd><p>Use heuristics to speed handling of large files that have numerous
+scattered small changes.
+</p>
+</dd>
+<dt>&lsquo;<samp>--suppress-common-lines</samp>&rsquo;</dt>
+<dd><p>Do not print common lines in side by side format.
+</p>
+</dd>
+<dt>&lsquo;<samp>-t</samp>&rsquo;</dt>
+<dd><p>Expand tabs to spaces in the output, to preserve the alignment of tabs
+in the input files.
+</p>
+</dd>
+<dt>&lsquo;<samp>-T</samp>&rsquo;</dt>
+<dd><p>Output a tab rather than a space before the text of a line in normal or
+context format.  This causes the alignment of tabs in the line to look
+normal.
+</p>
+</dd>
+<dt>&lsquo;<samp>--text</samp>&rsquo;</dt>
+<dd><p>Treat all files as text and compare them line-by-line, even if they
+do not appear to be text.
+</p>
+</dd>
+<dt>&lsquo;<samp>-u</samp>&rsquo;</dt>
+<dd><p>Use the unified output format.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a group of common lines taken from both 
files
+in if-then-else format.  See <a href="#Line-group-formats">Line group 
formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line common to both files in 
if-then-else
+format.  See <a href="#Line-formats">Line formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-U <var>lines</var></samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--unified<span class="roman">[</span>=<var>lines</var><span 
class="roman">]</span></samp>&rsquo;</dt>
+<dd><p>Use the unified output format, showing <var>lines</var> (an integer) 
lines of
+context, or three if <var>lines</var> is not given.
+For proper operation, <code>patch</code> typically needs at least two lines of
+context.
+</p>
+</dd>
+<dt>&lsquo;<samp>-w</samp>&rsquo;</dt>
+<dd><p>Ignore white space when comparing lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>-W <var>columns</var></samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--width=<var>columns</var></samp>&rsquo;</dt>
+<dd><p>Use an output width of <var>columns</var> in side by side format.
+</p>
+</dd>
+<dt>&lsquo;<samp>-y</samp>&rsquo;</dt>
+<dd><p>Use the side by side output format.
+</p></dd>
+</dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Line-group-formats" 
accesskey="1">Line group formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Line group formats
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Line-formats" 
accesskey="2">Line formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Line formats
+</td></tr>
+</table>
+
+<hr>
+<a name="Line-group-formats"></a>
+<div class="header">
+<p>
+Next: <a href="#Line-formats" accesskey="n" rel="next">Line formats</a>, Up: 
<a href="#diff-options" accesskey="u" rel="up">diff options</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Line-group-formats-1"></a>
+<h4 class="appendixsubsubsec">A.11.1.1 Line group formats</h4>
+
+<p>Line group formats let you specify formats suitable for many
+applications that allow if-then-else input, including programming
+languages and text formatting languages.  A line group format specifies
+the output format for a contiguous group of similar lines.
+</p>
+<p>For example, the following command compares the TeX file <samp>myfile</samp>
+with the original version from the repository,
+and outputs a merged file in which old regions are
+surrounded by 
&lsquo;<samp>\begin{em}</samp>&rsquo;-&lsquo;<samp>\end{em}</samp>&rsquo; 
lines, and new
+regions are surrounded by 
&lsquo;<samp>\begin{bf}</samp>&rsquo;-&lsquo;<samp>\end{bf}</samp>&rsquo; lines.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-group-format='\begin{em}
+%&lt;\end{em}
+' \
+   --new-group-format='\begin{bf}
+%&gt;\end{bf}
+' \
+   myfile
+</pre></div>
+
+<p>The following command is equivalent to the above example, but it is a
+little more verbose, because it spells out the default line group formats.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-group-format='\begin{em}
+%&lt;\end{em}
+' \
+   --new-group-format='\begin{bf}
+%&gt;\end{bf}
+' \
+   --unchanged-group-format='%=' \
+   --changed-group-format='\begin{em}
+%&lt;\end{em}
+\begin{bf}
+%&gt;\end{bf}
+' \
+   myfile
+</pre></div>
+
+<p>Here is a more advanced example, which outputs a diff listing with
+headers containing line numbers in a &ldquo;plain English&rdquo; style.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --unchanged-group-format='' \
+   --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
+%&lt;' \
+   --new-group-format='-------- %dN line%(N=1?:s) added after %de:
+%&gt;' \
+   --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
+%&lt;-------- to:
+%&gt;' \
+   myfile
+</pre></div>
+
+<p>To specify a line group format, use one of the options
+listed below.  You can specify up to four line group formats, one for
+each kind of line group.  You should quote <var>format</var>, because it
+typically contains shell metacharacters.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>--old-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups are hunks containing only lines from the first file.
+The default old group format is the same as the changed group format if
+it is specified; otherwise it is a format that outputs the line group as-is.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups are hunks containing only lines from the second
+file.  The default new group format is same as the changed group
+format if it is specified; otherwise it is a format that outputs the
+line group as-is.
+</p>
+</dd>
+<dt>&lsquo;<samp>--changed-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups are hunks containing lines from both files.  The
+default changed group format is the concatenation of the old and new
+group formats.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups contain lines common to both files.  The default
+unchanged group format is a format that outputs the line group as-is.
+</p></dd>
+</dl>
+
+<p>In a line group format, ordinary characters represent themselves;
+conversion specifications start with &lsquo;<samp>%</samp>&rsquo; and have one 
of the
+following forms.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>%&lt;</samp>&rsquo;</dt>
+<dd><p>stands for the lines from the first file, including the trailing 
newline.
+Each line is formatted according to the old line format (see <a 
href="#Line-formats">Line formats</a>).
+</p>
+</dd>
+<dt>&lsquo;<samp>%&gt;</samp>&rsquo;</dt>
+<dd><p>stands for the lines from the second file, including the trailing 
newline.
+Each line is formatted according to the new line format.
+</p>
+</dd>
+<dt>&lsquo;<samp>%=</samp>&rsquo;</dt>
+<dd><p>stands for the lines common to both files, including the trailing 
newline.
+Each line is formatted according to the unchanged line format.
+</p>
+</dd>
+<dt>&lsquo;<samp>%%</samp>&rsquo;</dt>
+<dd><p>stands for &lsquo;<samp>%</samp>&rsquo;.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'<var>C</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>C</var> is a single character, stands for <var>C</var>.
+<var>C</var> may not be a backslash or an apostrophe.
+For example, &lsquo;<samp>%c':'</samp>&rsquo; stands for a colon, even inside
+the then-part of an if-then-else format, which a colon would
+normally terminate.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'\<var>O</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>O</var> is a string of 1, 2, or 3 octal digits,
+stands for the character with octal code <var>O</var>.
+For example, &lsquo;<samp>%c'\0'</samp>&rsquo; stands for a null character.
+</p>
+</dd>
+<dt>&lsquo;<samp><var>F</var><var>n</var></samp>&rsquo;</dt>
+<dd><p>where <var>F</var> is a <code>printf</code> conversion specification 
and <var>n</var> is one
+of the following letters, stands for <var>n</var>&rsquo;s value formatted with 
<var>F</var>.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>e</samp>&rsquo;</dt>
+<dd><p>The line number of the line just before the group in the old file.
+</p>
+</dd>
+<dt>&lsquo;<samp>f</samp>&rsquo;</dt>
+<dd><p>The line number of the first line in the group in the old file;
+equals <var>e</var> + 1.
+</p>
+</dd>
+<dt>&lsquo;<samp>l</samp>&rsquo;</dt>
+<dd><p>The line number of the last line in the group in the old file.
+</p>
+</dd>
+<dt>&lsquo;<samp>m</samp>&rsquo;</dt>
+<dd><p>The line number of the line just after the group in the old file;
+equals <var>l</var> + 1.
+</p>
+</dd>
+<dt>&lsquo;<samp>n</samp>&rsquo;</dt>
+<dd><p>The number of lines in the group in the old file; equals <var>l</var> - 
<var>f</var> + 1.
+</p>
+</dd>
+<dt>&lsquo;<samp>E, F, L, M, N</samp>&rsquo;</dt>
+<dd><p>Likewise, for lines in the new file.
+</p>
+</dd>
+</dl>
+
+<p>The <code>printf</code> conversion specification can be 
&lsquo;<samp>%d</samp>&rsquo;,
+&lsquo;<samp>%o</samp>&rsquo;, &lsquo;<samp>%x</samp>&rsquo;, or 
&lsquo;<samp>%X</samp>&rsquo;, specifying decimal, octal,
+lower case hexadecimal, or upper case hexadecimal output
+respectively.  After the &lsquo;<samp>%</samp>&rsquo; the following options 
can appear in
+sequence: a &lsquo;<samp>-</samp>&rsquo; specifying left-justification; an 
integer
+specifying the minimum field width; and a period followed by an
+optional integer specifying the minimum number of digits.
+For example, &lsquo;<samp>%5dN</samp>&rsquo; prints the number of new lines in 
the group
+in a field of width 5 characters, using the <code>printf</code> format 
<code>&quot;%5d&quot;</code>.
+</p>
+</dd>
+<dt>&lsquo;<samp>(<var>A</var>=<var>B</var>?<var>T</var>:<var>E</var>)</samp>&rsquo;</dt>
+<dd><p>If <var>A</var> equals <var>B</var> then <var>T</var> else <var>E</var>.
+<var>A</var> and <var>B</var> are each either a decimal constant
+or a single letter interpreted as above.
+This format spec is equivalent to <var>T</var> if
+<var>A</var>&rsquo;s value equals <var>B</var>&rsquo;s; otherwise it is 
equivalent to <var>E</var>.
+</p>
+<p>For example, &lsquo;<samp>%(N=0?no:%dN) line%(N=1?:s)</samp>&rsquo; is 
equivalent to
+&lsquo;<samp>no lines</samp>&rsquo; if <var>N</var> (the number of lines in 
the group in the
+new file) is 0, to &lsquo;<samp>1 line</samp>&rsquo; if <var>N</var> is 1, and 
to &lsquo;<samp>%dN lines</samp>&rsquo;
+otherwise.
+</p></dd>
+</dl>
+
+<hr>
+<a name="Line-formats"></a>
+<div class="header">
+<p>
+Previous: <a href="#Line-group-formats" accesskey="p" rel="prev">Line group 
formats</a>, Up: <a href="#diff-options" accesskey="u" rel="up">diff 
options</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Line-formats-1"></a>
+<h4 class="appendixsubsubsec">A.11.1.2 Line formats</h4>
+
+<p>Line formats control how each line taken from an input file is
+output as part of a line group in if-then-else format.
+</p>
+<p>For example, the following command outputs text with a one-column
+change indicator to the left of the text.  The first column of output
+is &lsquo;<samp>-</samp>&rsquo; for deleted lines, 
&lsquo;<samp>|</samp>&rsquo; for added lines, and a space
+for unchanged lines.  The formats contain newline characters where
+newlines are desired on output.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-line-format='-%l
+' \
+   --new-line-format='|%l
+' \
+   --unchanged-line-format=' %l
+' \
+   myfile
+</pre></div>
+
+<p>To specify a line format, use one of the following options.  You should
+quote <var>format</var>, since it often contains shell metacharacters.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>--old-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats lines just from the first file.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats lines just from the second file.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats lines common to both files.
+</p>
+</dd>
+<dt>&lsquo;<samp>--line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats all lines; in effect, it sets all three above options 
simultaneously.
+</p></dd>
+</dl>
+
+<p>In a line format, ordinary characters represent themselves;
+conversion specifications start with &lsquo;<samp>%</samp>&rsquo; and have one 
of the
+following forms.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>%l</samp>&rsquo;</dt>
+<dd><p>stands for the contents of the line, not counting its trailing
+newline (if any).  This format ignores whether the line is incomplete.
+</p>
+</dd>
+<dt>&lsquo;<samp>%L</samp>&rsquo;</dt>
+<dd><p>stands for the contents of the line, including its trailing newline
+(if any).  If a line is incomplete, this format preserves its
+incompleteness.
+</p>
+</dd>
+<dt>&lsquo;<samp>%%</samp>&rsquo;</dt>
+<dd><p>stands for &lsquo;<samp>%</samp>&rsquo;.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'<var>C</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>C</var> is a single character, stands for <var>C</var>.
+<var>C</var> may not be a backslash or an apostrophe.
+For example, &lsquo;<samp>%c':'</samp>&rsquo; stands for a colon.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'\<var>O</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>O</var> is a string of 1, 2, or 3 octal digits,
+stands for the character with octal code <var>O</var>.
+For example, &lsquo;<samp>%c'\0'</samp>&rsquo; stands for a null character.
+</p>
+</dd>
+<dt>&lsquo;<samp><var>F</var>n</samp>&rsquo;</dt>
+<dd><p>where <var>F</var> is a <code>printf</code> conversion specification,
+stands for the line number formatted with <var>F</var>.
+For example, &lsquo;<samp>%.5dn</samp>&rsquo; prints the line number using the
+<code>printf</code> format <code>&quot;%.5d&quot;</code>.  See <a 
href="#Line-group-formats">Line group formats</a>, for
+more about printf conversion specifications.
+</p>
+</dd>
+</dl>
+
+<p>The default line format is &lsquo;<samp>%l</samp>&rsquo; followed by a 
newline character.
+</p>
+<p>If the input contains tab characters and it is important that they line
+up on output, you should ensure that &lsquo;<samp>%l</samp>&rsquo; or 
&lsquo;<samp>%L</samp>&rsquo; in a line
+format is just after a tab stop (e.g. by preceding 
&lsquo;<samp>%l</samp>&rsquo; or
+&lsquo;<samp>%L</samp>&rsquo; with a tab character), or you should use the 
&lsquo;<samp>-t</samp>&rsquo; or
+&lsquo;<samp>--expand-tabs</samp>&rsquo; option.
+</p>
+<p>Taken together, the line and line group formats let you specify many
+different formats.  For example, the following command uses a format
+similar to <code>diff</code>&rsquo;s normal format.  You can tailor this 
command
+to get fine control over <code>diff</code>&rsquo;s output.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-line-format='&lt; %l
+' \
+   --new-line-format='&gt; %l
+' \
+   --old-group-format='%df%(f=l?:,%dl)d%dE
+%&lt;' \
+   --new-group-format='%dea%dF%(F=L?:,%dL)
+%&gt;' \
+   --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
+%&lt;---
+%&gt;' \
+   --unchanged-group-format='' \
+   myfile
+</pre></div>
+
+<hr>
+<a name="diff-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#diff-options" accesskey="p" rel="prev">diff options</a>, 
Up: <a href="#diff" accesskey="u" rel="up">diff</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="diff-examples-1"></a>
+<h4 class="appendixsubsec">A.11.2 diff examples</h4>
+
+<p>The following line produces a Unidiff (&lsquo;<samp>-u</samp>&rsquo; flag)
+between revision 1.14 and 1.19 of
+<samp>backend.c</samp>.  Due to the &lsquo;<samp>-kk</samp>&rsquo; flag no
+keywords are substituted, so differences that only depend
+on keyword substitution are ignored.
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
+</pre></div>
+
+<p>Suppose the experimental branch EXPR1 was based on a
+set of files tagged RELEASE_1_0.  To see what has
+happened on that branch, the following can be used:
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -r RELEASE_1_0 -r EXPR1
+</pre></div>
+
+<p>A command like this can be used to produce a context
+diff between two releases:
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 &gt; diffs
+</pre></div>
+
+<p>If you are maintaining ChangeLogs, a command like the following
+just before you commit your changes may help you write
+the ChangeLog entry.  All local modifications that have
+not yet been committed will be printed.
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -u | less
+</pre></div>
+
+<hr>
+<a name="export"></a>
+<div class="header">
+<p>
+Next: <a href="#history" accesskey="n" rel="next">history</a>, Previous: <a 
href="#diff" accesskey="p" rel="prev">diff</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a 
name="export_002d_002d_002dExport-sources-from-CVS_002c-similar-to-checkout"></a>
+<h3 class="appendixsec">A.12 export&mdash;Export sources from CVS, similar to 
checkout</h3>
+<a name="index-export-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: export [-flNnR] [-r rev|-D date] [-k subst] [-d dir] 
module&hellip;
+</li><li> Requires: repository.
+</li><li> Changes: current directory.
+</li></ul>
+
+<p>This command is a variant of <code>checkout</code>; use it
+when you want a copy of the source for module without
+the <small>CVS</small> administrative directories.  For example, you
+might use <code>export</code> to prepare source for shipment
+off-site.  This command requires that you specify a
+date or tag (with &lsquo;<samp>-D</samp>&rsquo; or 
&lsquo;<samp>-r</samp>&rsquo;), so that you
+can count on reproducing the source you ship to others
+(and thus it always prunes empty directories).
+</p>
+<p>One often would like to use &lsquo;<samp>-kv</samp>&rsquo; with <code>cvs
+export</code>.  This causes any keywords to be
+expanded such that an import done at some other site
+will not lose the keyword revision information.  But be
+aware that doesn&rsquo;t handle an export containing binary
+files correctly.  Also be aware that after having used
+&lsquo;<samp>-kv</samp>&rsquo;, one can no longer use the <code>ident</code>
+command (which is part of the <small>RCS</small> suite&mdash;see
+ident(1)) which looks for keyword strings.  If
+you want to be able to use <code>ident</code> you must not
+use &lsquo;<samp>-kv</samp>&rsquo;.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#export-options" 
accesskey="1">export options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">export options
+</td></tr>
+</table>
+
+<hr>
+<a name="export-options"></a>
+<div class="header">
+<p>
+Up: <a href="#export" accesskey="u" rel="up">export</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="export-options-1"></a>
+<h4 class="appendixsubsec">A.12.1 export options</h4>
+
+<p>These standard options are supported by <code>export</code>
+(see <a href="#Common-options">Common options</a>, for a complete description 
of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>If no matching revision is found, retrieve the most
+recent revision (instead of ignoring the file).
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run any checkout program.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Export directories recursively.  This is on by default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Use revision <var>tag</var>.
+</p></dd>
+</dl>
+
+<p>In addition, these options (that are common to
+<code>checkout</code> and <code>export</code>) are also supported:
+</p>
+<dl compact="compact">
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Create a directory called <var>dir</var> for the working
+files, instead of using the module name.
+See <a href="#checkout-options">checkout options</a> for complete details on 
how
+<small>CVS</small> handles this flag.
+</p>
+</dd>
+<dt><code>-k <var>subst</var></code></dt>
+<dd><p>Set keyword expansion mode (see <a 
href="#Substitution-modes">Substitution modes</a>).
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Only useful together with &lsquo;<samp>-d <var>dir</var></samp>&rsquo;.
+See <a href="#checkout-options">checkout options</a> for complete details on 
how
+<small>CVS</small> handles this flag.
+</p></dd>
+</dl>
+
+
+<hr>
+<a name="history"></a>
+<div class="header">
+<p>
+Next: <a href="#import" accesskey="n" rel="next">import</a>, Previous: <a 
href="#export" accesskey="p" rel="prev">export</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="history_002d_002d_002dShow-status-of-files-and-users"></a>
+<h3 class="appendixsec">A.13 history&mdash;Show status of files and users</h3>
+<a name="index-history-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis:     history [-report] [-flags] [-options args] [files&hellip;]
+</li><li> Requires: the file <samp>$CVSROOT/CVSROOT/history</samp>
+</li><li> Changes: nothing.
+</li></ul>
+
+<p><small>CVS</small> can keep a history file that tracks each use of the
+<code>checkout</code>, <code>commit</code>, <code>rtag</code>,
+<code>update</code>, and <code>release</code> commands.  You can
+use <code>history</code> to display this information in
+various formats.
+</p>
+<p>Logging must be enabled by creating the file
+<samp>$CVSROOT/CVSROOT/history</samp>.
+</p>
+<p><strong><code>history</code> uses &lsquo;<samp>-f</samp>&rsquo;, 
&lsquo;<samp>-l</samp>&rsquo;,
+&lsquo;<samp>-n</samp>&rsquo;, and &lsquo;<samp>-p</samp>&rsquo; in ways that 
conflict with the
+normal use inside <small>CVS</small> (see <a href="#Common-options">Common 
options</a>).</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#history-options" 
accesskey="1">history options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">history options
+</td></tr>
+</table>
+
+<hr>
+<a name="history-options"></a>
+<div class="header">
+<p>
+Up: <a href="#history" accesskey="u" rel="up">history</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="history-options-1"></a>
+<h4 class="appendixsubsec">A.13.1 history options</h4>
+
+<p>Several options (shown above as &lsquo;<samp>-report</samp>&rsquo;)  
control  what
+kind of report is generated:
+</p>
+<dl compact="compact">
+<dt><code>-c</code></dt>
+<dd><p>Report on each time commit was used (i.e., each time
+the repository was modified).
+</p>
+</dd>
+<dt><code>-e</code></dt>
+<dd><p>Everything (all record types).  Equivalent to
+specifying &lsquo;<samp>-x</samp>&rsquo; with all record types.  Of course,
+&lsquo;<samp>-e</samp>&rsquo; will also include record types which are
+added in a future version of <small>CVS</small>; if you are
+writing a script which can only handle certain record
+types, you&rsquo;ll want to specify &lsquo;<samp>-x</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-m <var>module</var></code></dt>
+<dd><p>Report on a particular module.  (You can meaningfully
+use &lsquo;<samp>-m</samp>&rsquo; more than once on the command line.)
+</p>
+</dd>
+<dt><code>-o</code></dt>
+<dd><p>Report on checked-out modules.  This is the default report type.
+</p>
+</dd>
+<dt><code>-T</code></dt>
+<dd><p>Report on all tags.
+</p>
+</dd>
+<dt><code>-x <var>type</var></code></dt>
+<dd><p>Extract a particular set of record types <var>type</var> from the 
<small>CVS</small>
+history.  The types are indicated by single letters,
+which you may specify in combination.
+</p>
+<p>Certain commands have a single record type:
+</p>
+<dl compact="compact">
+<dt><code>F</code></dt>
+<dd><p>release
+</p></dd>
+<dt><code>O</code></dt>
+<dd><p>checkout
+</p></dd>
+<dt><code>E</code></dt>
+<dd><p>export
+</p></dd>
+<dt><code>T</code></dt>
+<dd><p>rtag
+</p></dd>
+</dl>
+
+<p>One of five record types may result from an update:
+</p>
+<dl compact="compact">
+<dt><code>C</code></dt>
+<dd><p>A merge was necessary but collisions were
+detected (requiring manual merging).
+</p></dd>
+<dt><code>G</code></dt>
+<dd><p>A merge was necessary and it succeeded.
+</p></dd>
+<dt><code>U</code></dt>
+<dd><p>A working file was copied from the repository.
+</p></dd>
+<dt><code>P</code></dt>
+<dd><p>A working file was patched to match the repository.
+</p></dd>
+<dt><code>W</code></dt>
+<dd><p>The working copy of a file was deleted during
+update (because it was gone from the repository).
+</p></dd>
+</dl>
+
+<p>One of three record types results from commit:
+</p>
+<dl compact="compact">
+<dt><code>A</code></dt>
+<dd><p>A file was added for the first time.
+</p></dd>
+<dt><code>M</code></dt>
+<dd><p>A file was modified.
+</p></dd>
+<dt><code>R</code></dt>
+<dd><p>A file was removed.
+</p></dd>
+</dl>
+</dd>
+</dl>
+
+<p>The options shown as &lsquo;<samp>-flags</samp>&rsquo; constrain or expand
+the report without requiring option arguments:
+</p>
+<dl compact="compact">
+<dt><code>-a</code></dt>
+<dd><p>Show data for all users (the default is to show data
+only for the user executing <code>history</code>).
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Show last modification only.
+</p>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Show only the records for modifications done from the
+same working directory where <code>history</code> is
+executing.
+</p></dd>
+</dl>
+
+<p>The options shown as &lsquo;<samp>-options <var>args</var></samp>&rsquo; 
constrain the report
+based on an argument:
+</p>
+<dl compact="compact">
+<dt><code>-b <var>str</var></code></dt>
+<dd><p>Show data back to a record containing  the  string
+<var>str</var>  in  either the module name, the file name, or
+the repository path.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Show data since <var>date</var>.  This is slightly different
+from the normal use of &lsquo;<samp>-D <var>date</var></samp>&rsquo;, which
+selects the newest revision older than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f <var>file</var></code></dt>
+<dd><p>Show data for a particular file
+(you can specify several &lsquo;<samp>-f</samp>&rsquo; options on the same 
command line).
+This is equivalent to specifying the file on the command line.
+</p>
+</dd>
+<dt><code>-n <var>module</var></code></dt>
+<dd><p>Show data for a particular module
+(you can specify several &lsquo;<samp>-n</samp>&rsquo; options on the same 
command line).
+</p>
+</dd>
+<dt><code>-p <var>repository</var></code></dt>
+<dd><p>Show data for a particular source repository  (you
+can specify several &lsquo;<samp>-p</samp>&rsquo; options on the same command
+line).
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Show records referring to revisions since the revision
+or tag named <var>rev</var> appears in individual <small>RCS</small>
+files.  Each <small>RCS</small> file is searched for the revision or
+tag.
+</p>
+</dd>
+<dt><code>-t <var>tag</var></code></dt>
+<dd><p>Show records since tag <var>tag</var> was last added to the
+history file.  This differs from the &lsquo;<samp>-r</samp>&rsquo; flag
+above in that it reads only the history file, not the
+<small>RCS</small> files, and is much faster.
+</p>
+</dd>
+<dt><code>-u <var>name</var></code></dt>
+<dd><p>Show records for user <var>name</var>.
+</p>
+</dd>
+<dt><code>-z <var>timezone</var></code></dt>
+<dd><p>Show times in the selected records using the specified
+time zone instead of UTC.
+</p></dd>
+</dl>
+
+
+<hr>
+<a name="import"></a>
+<div class="header">
+<p>
+Next: <a href="#log" accesskey="n" rel="next">log</a>, Previous: <a 
href="#history" accesskey="p" rel="prev">history</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a 
name="import_002d_002d_002dImport-sources-into-CVS_002c-using-vendor-branches"></a>
+<h3 class="appendixsec">A.14 import&mdash;Import sources into CVS, using 
vendor branches</h3>
+<a name="index-import-_0028subcommand_0029"></a>
+
+
+<ul>
+<li> Synopsis: import [-options] repository vendortag releasetag&hellip;
+</li><li> Requires: Repository, source distribution directory.
+</li><li> Changes: repository.
+</li></ul>
+
+<p>Use <code>import</code> to incorporate an entire source
+distribution from an outside source (e.g., a source
+vendor) into your source repository directory.  You can
+use this command both for initial creation of a
+repository, and for wholesale updates to the module
+from the outside source.  See <a href="#Tracking-sources">Tracking sources</a> 
for
+a discussion on this subject.
+</p>
+<p>The <var>repository</var> argument gives a directory name
+(or a path to a directory) under the <small>CVS</small> root directory
+for repositories; if the directory did not exist,
+import creates it.
+</p>
+<p>When you use import for updates to source that has been
+modified in your source repository (since a prior
+import), it will notify you of any files that conflict
+in the two branches of development; use &lsquo;<samp>checkout
+-j</samp>&rsquo; to reconcile the differences, as import instructs
+you to do.
+</p>
+<p>If <small>CVS</small> decides a file should be ignored
+(see <a href="#cvsignore">cvsignore</a>), it does not import it and prints
+&lsquo;<samp>I </samp>&rsquo; followed by the filename (see <a 
href="#import-output">import output</a> for a
+complete description of the output).
+</p>
+<p>If the file <samp>$CVSROOT/CVSROOT/cvswrappers</samp> exists,
+any file whose names match the specifications in that
+file will be treated as packages and the appropriate
+filtering will be performed on the file/directory
+before being imported.  See <a href="#Wrappers">Wrappers</a>.
+</p>
+<p>The outside source is saved in a first-level
+branch, by default 1.1.1.  Updates are leaves of this
+branch; for example, files from the first imported
+collection of source will be revision 1.1.1.1, then
+files from the first imported update will be revision
+1.1.1.2, and so on.
+</p>
+<p>At least three arguments are required.
+<var>repository</var> is needed to identify the collection
+of source.  <var>vendortag</var> is a tag for the entire
+branch (e.g., for 1.1.1).  You must also specify at
+least one <var>releasetag</var> to uniquely identify the files at
+the leaves created each time you execute <code>import</code>.  The
+<var>releasetag</var> should be new, not previously existing in the
+repository file, and uniquely identify the imported release,
+</p>
+<p>Note that <code>import</code> does <em>not</em> change the
+directory in which you invoke it.  In particular, it
+does not set up that directory as a <small>CVS</small> working
+directory; if you want to work with the sources import
+them first and then check them out into a different
+directory (see <a href="#Getting-the-source">Getting the source</a>).
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#import-options" 
accesskey="1">import options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">import options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#import-output" 
accesskey="2">import output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">import output
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#import-examples" 
accesskey="3">import examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">import examples
+</td></tr>
+</table>
+
+<hr>
+<a name="import-options"></a>
+<div class="header">
+<p>
+Next: <a href="#import-output" accesskey="n" rel="next">import output</a>, Up: 
<a href="#import" accesskey="u" rel="up">import</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="import-options-1"></a>
+<h4 class="appendixsubsec">A.14.1 import options</h4>
+
+<p>This standard option is supported by <code>import</code>
+(see <a href="#Common-options">Common options</a> for a complete description):
+</p>
+<dl compact="compact">
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as log information, instead of
+invoking an editor.
+</p></dd>
+</dl>
+
+<p>There are the following additional special options.
+</p>
+<dl compact="compact">
+<dt><code>-b <var>branch</var></code></dt>
+<dd><p>See <a href="#Multiple-vendor-branches">Multiple vendor branches</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Use each file&rsquo;s modification time as the time of import
+rather than the current time.
+</p>
+</dd>
+<dt><code>-k <var>subst</var></code></dt>
+<dd><p>Indicate the keyword expansion mode desired.  This
+setting will apply to all files created during the
+import, but not to any files that previously existed in
+the repository.  See <a href="#Substitution-modes">Substitution modes</a> for a
+list of valid &lsquo;<samp>-k</samp>&rsquo; settings.
+</p>
+</dd>
+<dt><code>-I <var>name</var></code></dt>
+<dd><p>Specify file names that should be ignored during
+import.  You can use this option repeatedly.  To avoid
+ignoring any files at all (even those ignored by
+default), specify &lsquo;-I !&rsquo;.
+</p>
+<p><var>name</var> can be a file name pattern of the same type
+that you can specify in the <samp>.cvsignore</samp> file.
+See <a href="#cvsignore">cvsignore</a>.
+</p>
+</dd>
+<dt><code>-W <var>spec</var></code></dt>
+<dd><p>Specify file names that should be filtered during
+import.  You can use this option repeatedly.
+</p>
+<p><var>spec</var> can be a file name pattern of the same type
+that you can specify in the <samp>.cvswrappers</samp>
+file. See <a href="#Wrappers">Wrappers</a>.
+</p></dd>
+</dl>
+
+<hr>
+<a name="import-output"></a>
+<div class="header">
+<p>
+Next: <a href="#import-examples" accesskey="n" rel="next">import examples</a>, 
Previous: <a href="#import-options" accesskey="p" rel="prev">import 
options</a>, Up: <a href="#import" accesskey="u" rel="up">import</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="import-output-1"></a>
+<h4 class="appendixsubsec">A.14.2 import output</h4>
+
+<p><code>import</code> keeps you informed of its progress by printing a line
+for each file, preceded by one character indicating the status of the file:
+</p>
+<dl compact="compact">
+<dt><code>U <var>file</var></code></dt>
+<dd><p>The file already exists in the repository and has not been locally
+modified; a new revision has been created (if necessary).
+</p>
+</dd>
+<dt><code>N <var>file</var></code></dt>
+<dd><p>The file is a new file which has been added to the repository.
+</p>
+</dd>
+<dt><code>C <var>file</var></code></dt>
+<dd><p>The file already exists in the repository but has been locally modified;
+you will have to merge the changes.
+</p>
+</dd>
+<dt><code>I <var>file</var></code></dt>
+<dd><p>The file is being ignored (see <a href="#cvsignore">cvsignore</a>).
+</p>
+<a name="index-Symbolic-link_002c-importing"></a>
+<a name="index-Link_002c-symbolic_002c-importing"></a>
+</dd>
+<dt><code>L <var>file</var></code></dt>
+<dd><p>The file is a symbolic link; <code>cvs import</code> ignores symbolic 
links.
+People periodically suggest that this behavior should
+be changed, but if there is a consensus on what it
+should be changed to, it doesn&rsquo;t seem to be apparent.
+(Various options in the <samp>modules</samp> file can be used
+to recreate symbolic links on checkout, update, etc.;
+see <a href="#modules">modules</a>.)
+</p></dd>
+</dl>
+
+<hr>
+<a name="import-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#import-output" accesskey="p" rel="prev">import output</a>, 
Up: <a href="#import" accesskey="u" rel="up">import</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="import-examples-1"></a>
+<h4 class="appendixsubsec">A.14.3 import examples</h4>
+
+<p>See <a href="#Tracking-sources">Tracking sources</a>, and <a 
href="#From-files">From files</a>.
+</p>
+<hr>
+<a name="log"></a>
+<div class="header">
+<p>
+Next: <a href="#rdiff" accesskey="n" rel="next">rdiff</a>, Previous: <a 
href="#import" accesskey="p" rel="prev">import</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="log_002d_002d_002dPrint-out-log-information-for-files"></a>
+<h3 class="appendixsec">A.15 log&mdash;Print out log information for files</h3>
+<a name="index-log-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: log [options] [files&hellip;]
+</li><li> Requires: repository, working directory.
+</li><li> Changes: nothing.
+</li></ul>
+
+<p>Display log information for files.  <code>log</code> used to
+call the <small>RCS</small> utility <code>rlog</code>.  Although this
+is no longer true in the current sources, this history
+determines the format of the output and the options,
+which are not quite in the style of the other <small>CVS</small>
+commands.
+</p>
+<a name="index-Timezone_002c-in-output"></a>
+<a name="index-Zone_002c-time_002c-in-output"></a>
+<p>The output includes the location of the <small>RCS</small> file,
+the <em>head</em> revision (the latest revision on the
+trunk), all symbolic names (tags) and some other
+things.  For each revision, the revision number, the
+author, the number of lines added/deleted and the log
+message are printed.  All times are displayed in
+Coordinated Universal Time (UTC).  (Other parts of
+<small>CVS</small> print times in the local timezone).
+</p>
+<p><strong><code>log</code> uses &lsquo;<samp>-R</samp>&rsquo; in a way that 
conflicts
+with the normal use inside <small>CVS</small> (see <a 
href="#Common-options">Common options</a>).</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#log-options" 
accesskey="1">log options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">log options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#log-examples" 
accesskey="2">log examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">log examples
+</td></tr>
+</table>
+
+<hr>
+<a name="log-options"></a>
+<div class="header">
+<p>
+Next: <a href="#log-examples" accesskey="n" rel="next">log examples</a>, Up: 
<a href="#log" accesskey="u" rel="up">log</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="log-options-1"></a>
+<h4 class="appendixsubsec">A.15.1 log options</h4>
+
+<p>By default, <code>log</code> prints all information that is
+available.  All other options restrict the output.  Note that the revision
+selection options (<code>-b</code>, <code>-d</code>, <code>-r</code>, 
<code>-s</code>, and <code>-w</code>)
+have no
+effect, other than possibly causing a search for files in Attic directories,
+when used in conjunction with the options that restrict the output to only
+<code>log</code> header fields (<code>-h</code>, <code>-R</code>, and 
<code>-t</code>)
+unless the <code>-S</code> option is also specified.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Print information about the revisions on the default
+branch, normally the highest branch on the trunk.
+</p>
+</dd>
+<dt><code>-d <var>dates</var></code></dt>
+<dd><p>Print information about revisions with a checkin
+date/time in the range given by the
+semicolon-separated list of dates.  The date formats
+accepted are those accepted by the &lsquo;<samp>-D</samp>&rsquo; option to
+many other <small>CVS</small> commands (see <a href="#Common-options">Common 
options</a>).
+Dates can be combined into ranges as follows:
+</p>
+<dl compact="compact">
+<dt><code><var>d1</var>&lt;<var>d2</var></code></dt>
+<dt><code><var>d2</var>&gt;<var>d1</var></code></dt>
+<dd><p>Select the revisions that were deposited between
+<var>d1</var> and <var>d2</var>.
+</p>
+</dd>
+<dt><code>&lt;<var>d</var></code></dt>
+<dt><code><var>d</var>&gt;</code></dt>
+<dd><p>Select all revisions dated <var>d</var> or earlier.
+</p>
+</dd>
+<dt><code><var>d</var>&lt;</code></dt>
+<dt><code>&gt;<var>d</var></code></dt>
+<dd><p>Select all revisions dated <var>d</var> or later.
+</p>
+</dd>
+<dt><code><var>d</var></code></dt>
+<dd><p>Select the single, latest revision dated <var>d</var> or
+earlier.
+</p></dd>
+</dl>
+
+<p>The &lsquo;<samp>&gt;</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; 
characters may be followed by
+&lsquo;<samp>=</samp>&rsquo; to indicate an inclusive range rather than an
+exclusive one.
+</p>
+<p>Note that the separator is a semicolon (;).
+</p>
+</dd>
+<dt><code>-h</code></dt>
+<dd><p>Print only the name of the <small>RCS</small> file, name
+of the file in the working directory, head,
+default branch, access list, locks, symbolic names, and
+suffix.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  (Default
+is to run recursively).
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Do not print the list of tags for this file.  This
+option can be very useful when your site uses a lot of
+tags, so rather than &quot;more&quot;&rsquo;ing over 3 pages of tag
+information, the log information is presented without
+tags at all.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Print the list of tags for this file. This option can
+be very useful when your <samp>.cvsrc</samp> file has a
+&lsquo;<samp>log -N</samp>&rsquo; entry as a way to get a full list of all
+of the tags.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Print only the name of the <small>RCS</small> file.
+</p>
+</dd>
+<dt><code>-r<var>revisions</var></code></dt>
+<dd><p>Print information about revisions given in the
+comma-separated list <var>revisions</var> of revisions and
+ranges.  The following table explains the available
+range formats:
+</p>
+<dl compact="compact">
+<dt><code><var>rev1</var>:<var>rev2</var></code></dt>
+<dd><p>Revisions <var>rev1</var> to <var>rev2</var> (which must be on
+the same branch).
+</p>
+</dd>
+<dt><code><var>rev1</var>::<var>rev2</var></code></dt>
+<dd><p>The same, but excluding <var>rev1</var>.
+</p>
+</dd>
+<dt><code>:<var>rev</var></code></dt>
+<dt><code>::<var>rev</var></code></dt>
+<dd><p>Revisions from the beginning of the branch up to
+and including <var>rev</var>.
+</p>
+</dd>
+<dt><code><var>rev</var>:</code></dt>
+<dd><p>Revisions starting with <var>rev</var> to the end of the
+branch containing <var>rev</var>.
+</p>
+</dd>
+<dt><code><var>rev</var>::</code></dt>
+<dd><p>Revisions starting just after <var>rev</var> to the end of the
+branch containing <var>rev</var>.
+</p>
+</dd>
+<dt><code><var>branch</var></code></dt>
+<dd><p>An argument that is a branch means all revisions on
+that branch.
+</p>
+</dd>
+<dt><code><var>branch1</var>:<var>branch2</var></code></dt>
+<dt><code><var>branch1</var>::<var>branch2</var></code></dt>
+<dd><p>A range of branches means all revisions
+on the branches in that range.
+</p>
+</dd>
+<dt><code><var>branch</var>.</code></dt>
+<dd><p>The latest revision in <var>branch</var>.
+</p></dd>
+</dl>
+
+<p>A bare &lsquo;<samp>-r</samp>&rsquo; with no revisions means the latest
+revision on the default branch, normally the trunk.
+There can be no space between the &lsquo;<samp>-r</samp>&rsquo; option and
+its argument.
+</p>
+</dd>
+<dt><code>-S</code></dt>
+<dd><p>Suppress the header if no revisions are selected.
+</p>
+</dd>
+<dt><code>-s <var>states</var></code></dt>
+<dd><p>Print information about revisions whose state
+attributes match one of the states given in the
+comma-separated list <var>states</var>.  Individual states may
+be any text string, though <small>CVS</small> commonly only uses two
+states, &lsquo;<samp>Exp</samp>&rsquo; and &lsquo;<samp>dead</samp>&rsquo;.  
See <a href="#admin-options">admin options</a>
+for more information.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Print the same as &lsquo;<samp>-h</samp>&rsquo;, plus the descriptive 
text.
+</p>
+</dd>
+<dt><code>-w<var>logins</var></code></dt>
+<dd><p>Print information about revisions checked in by users
+with login names appearing in the comma-separated list
+<var>logins</var>.  If <var>logins</var> is omitted, the user&rsquo;s
+login is assumed.  There can be no space between the
+&lsquo;<samp>-w</samp>&rsquo; option and its argument.
+</p></dd>
+</dl>
+
+<p><code>log</code> prints the intersection of the revisions
+selected with the options &lsquo;<samp>-d</samp>&rsquo;, 
&lsquo;<samp>-s</samp>&rsquo;, and
+&lsquo;<samp>-w</samp>&rsquo;, intersected with the union of the revisions
+selected by &lsquo;<samp>-b</samp>&rsquo; and &lsquo;<samp>-r</samp>&rsquo;.
+</p>
+<hr>
+<a name="log-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#log-options" accesskey="p" rel="prev">log options</a>, Up: 
<a href="#log" accesskey="u" rel="up">log</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="log-examples-1"></a>
+<h4 class="appendixsubsec">A.15.2 log examples</h4>
+
+<p>Contributed examples are gratefully accepted.
+</p>
+<hr>
+<a name="rdiff"></a>
+<div class="header">
+<p>
+Next: <a href="#release" accesskey="n" rel="next">release</a>, Previous: <a 
href="#log" accesskey="p" rel="prev">log</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a 
name="rdiff_002d_002d_002d_0027patch_0027-format-diffs-between-releases"></a>
+<h3 class="appendixsec">A.16 rdiff&mdash;&rsquo;patch&rsquo; format diffs 
between releases</h3>
+<a name="index-rdiff-_0028subcommand_0029"></a>
+
+<ul>
+<li> rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules&hellip;
+</li><li> Requires: repository.
+</li><li> Changes: nothing.
+</li><li> Synonym: patch
+</li></ul>
+
+<p>Builds a Larry Wall format patch(1) file between two
+releases, that can be fed directly into the <code>patch</code>
+program to bring an old release up-to-date with the new
+release.  (This is one of the few <small>CVS</small> commands that
+operates directly from the repository, and doesn&rsquo;t
+require a prior checkout.) The diff output is sent to
+the standard output device.
+</p>
+<p>You can specify (using the standard &lsquo;<samp>-r</samp>&rsquo; and
+&lsquo;<samp>-D</samp>&rsquo; options) any combination of one or two
+revisions or dates.  If only one revision or date is
+specified, the patch file reflects differences between
+that revision or date and the current head revisions in
+the <small>RCS</small> file.
+</p>
+<p>Note that if the software release affected is contained
+in more than one directory, then it may be necessary to
+specify the &lsquo;<samp>-p</samp>&rsquo; option to the <code>patch</code> 
command when
+patching the old sources, so that <code>patch</code> is able to find
+the files that are located in other directories.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#rdiff-options" 
accesskey="1">rdiff options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">rdiff options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#rdiff-examples" 
accesskey="2">rdiff examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">rdiff examples
+</td></tr>
+</table>
+
+<hr>
+<a name="rdiff-options"></a>
+<div class="header">
+<p>
+Next: <a href="#rdiff-examples" accesskey="n" rel="next">rdiff examples</a>, 
Up: <a href="#rdiff" accesskey="u" rel="up">rdiff</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="rdiff-options-1"></a>
+<h4 class="appendixsubsec">A.16.1 rdiff options</h4>
+
+<p>These standard options are supported by <code>rdiff</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>If no matching revision is found, retrieve the most
+recent revision (instead of ignoring the file).
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; don&rsquo;t descend subdirectories.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Examine directories recursively.  This option is on by default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Use revision <var>tag</var>.
+</p></dd>
+</dl>
+
+<p>In addition to the above, these options are available:
+</p>
+<dl compact="compact">
+<dt><code>-c</code></dt>
+<dd><p>Use the context diff format.  This is the default format.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Create a summary change report instead of a patch.  The
+summary includes information about files that were
+changed or added between the releases.  It is sent to
+the standard output device.  This is useful for finding
+out, for example, which files have changed between two
+dates or revisions.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>A diff of the top two revisions is sent to the standard
+output device.  This is most useful for seeing what the
+last change to a file was.
+</p>
+</dd>
+<dt><code>-u</code></dt>
+<dd><p>Use the unidiff format for the context diffs.
+Remember that old versions
+of the <code>patch</code> program can&rsquo;t handle the unidiff
+format, so if you plan to post this patch to the net
+you should probably not use &lsquo;<samp>-u</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-V <var>vn</var></code></dt>
+<dd><p>Expand keywords according to the rules current in
+<small>RCS</small> version <var>vn</var> (the expansion format changed with
+<small>RCS</small> version 5).  Note that this option is no
+longer accepted.  <small>CVS</small> will always expand keywords the
+way that <small>RCS</small> version 5 does.
+</p></dd>
+</dl>
+
+<hr>
+<a name="rdiff-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#rdiff-options" accesskey="p" rel="prev">rdiff options</a>, 
Up: <a href="#rdiff" accesskey="u" rel="up">rdiff</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="rdiff-examples-1"></a>
+<h4 class="appendixsubsec">A.16.2 rdiff examples</h4>
+
+<p>Suppose you receive mail from <tt>address@hidden</tt> asking for an
+update from release 1.2 to 1.4 of the tc compiler.  You
+have no such patches on hand, but with <small>CVS</small> that can
+easily be fixed with a command such as this:
+</p>
+<div class="example">
+<pre class="example">$ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \
+&gt; Mail -s 'The patches you asked for' address@hidden
+</pre></div>
+
+<p>Suppose you have made release 1.3, and forked a branch
+called &lsquo;<samp>R_1_3fix</samp>&rsquo; for bug fixes.  
&lsquo;<samp>R_1_3_1</samp>&rsquo;
+corresponds to release 1.3.1, which was made some time
+ago.  Now, you want to see how much development has been
+done on the branch.  This command can be used:
+</p>
+<div class="example">
+<pre class="example">$ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
+cvs rdiff: Diffing module-name
+File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
+File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
+File bar.h,v changed from revision 1.29.2.1 to 1.2
+</pre></div>
+
+<hr>
+<a name="release"></a>
+<div class="header">
+<p>
+Next: <a href="#remove" accesskey="n" rel="next">remove</a>, Previous: <a 
href="#rdiff" accesskey="p" rel="prev">rdiff</a>, Up: <a href="#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="release_002d_002d_002dIndicate-that-a-Module-is-no-longer-in-use"></a>
+<h3 class="appendixsec">A.17 release&mdash;Indicate that a Module is no longer 
in use</h3>
+<a name="index-release-_0028subcommand_0029"></a>
+
+<ul>
+<li> release [-d] directories&hellip;
+</li><li> Requires: Working directory.
+</li><li> Changes: Working directory, history log.
+</li></ul>
+
+<p>This command is meant to safely cancel the effect of
+&lsquo;<samp>cvs checkout</samp>&rsquo;.  Since <small>CVS</small> 
doesn&rsquo;t lock files, it
+isn&rsquo;t strictly necessary to use this command.  You can
+always simply delete your working directory, if you
+like; but you risk losing changes you may have
+forgotten, and you leave no trace in the <small>CVS</small> history
+file (see <a href="#history-file">history file</a>) that you&rsquo;ve 
abandoned your
+checkout.
+</p>
+<p>Use &lsquo;<samp>cvs release</samp>&rsquo; to avoid these problems.  This
+command checks that no uncommitted changes are
+present; that you are executing it from immediately
+above a <small>CVS</small> working directory; and that the repository
+recorded for your files is the same as the repository
+defined in the module database.
+</p>
+<p>If all these conditions are true, &lsquo;<samp>cvs release</samp>&rsquo;
+leaves a record of its execution (attesting to your
+intentionally abandoning your checkout) in the <small>CVS</small>
+history log.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#release-options" 
accesskey="1">release options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">release options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#release-output" 
accesskey="2">release output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">release output
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#release-examples" 
accesskey="3">release examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">release examples
+</td></tr>
+</table>
+
+<hr>
+<a name="release-options"></a>
+<div class="header">
+<p>
+Next: <a href="#release-output" accesskey="n" rel="next">release output</a>, 
Up: <a href="#release" accesskey="u" rel="up">release</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="release-options-1"></a>
+<h4 class="appendixsubsec">A.17.1 release options</h4>
+
+<p>The <code>release</code> command supports one command option:
+</p>
+<dl compact="compact">
+<dt><code>-d</code></dt>
+<dd><p>Delete your working copy of the file if the release
+succeeds.  If this flag is not given your files will
+remain in your working directory.
+</p>
+<p><strong>WARNING:  The <code>release</code> command deletes
+all directories and files recursively.  This
+has the very serious side-effect that any directory
+created inside checked-out sources, and not added to
+the repository (using the <code>add</code> command;
+see <a href="#Adding-files">Adding files</a>) will be silently 
deleted&mdash;even
+if it is non-empty!</strong>
+</p></dd>
+</dl>
+
+<hr>
+<a name="release-output"></a>
+<div class="header">
+<p>
+Next: <a href="#release-examples" accesskey="n" rel="next">release 
examples</a>, Previous: <a href="#release-options" accesskey="p" 
rel="prev">release options</a>, Up: <a href="#release" accesskey="u" 
rel="up">release</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="release-output-1"></a>
+<h4 class="appendixsubsec">A.17.2 release output</h4>
+
+<p>Before <code>release</code> releases your sources it will
+print a one-line message for any file that is not
+up-to-date.
+</p>
+<dl compact="compact">
+<dt><code>U <var>file</var></code></dt>
+<dt><code>P <var>file</var></code></dt>
+<dd><p>There exists a newer revision of this file in the
+repository, and you have not modified your local copy
+of the file (&lsquo;<samp>U</samp>&rsquo; and &lsquo;<samp>P</samp>&rsquo; 
mean the same thing).
+</p>
+</dd>
+<dt><code>A <var>file</var></code></dt>
+<dd><p>The file has been added to your private copy of the
+sources, but has not yet been committed to the
+repository.  If you delete your copy of the sources
+this file will be lost.
+</p>
+</dd>
+<dt><code>R <var>file</var></code></dt>
+<dd><p>The file has been removed from your private copy of the
+sources, but has not yet been removed from the
+repository, since you have not yet committed the
+removal.  See <a href="#commit">commit</a>.
+</p>
+</dd>
+<dt><code>M <var>file</var></code></dt>
+<dd><p>The file is modified in your working directory.  There
+might also be a newer revision inside the repository.
+</p>
+</dd>
+<dt><code>? <var>file</var></code></dt>
+<dd><p><var>file</var> is in your working directory, but does not
+correspond to anything in the source repository, and is
+not in the list of files for <small>CVS</small> to ignore (see the
+description of the &lsquo;<samp>-I</samp>&rsquo; option, and
+see <a href="#cvsignore">cvsignore</a>).  If you remove your working
+sources, this file will be lost.
+</p></dd>
+</dl>
+
+<hr>
+<a name="release-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#release-output" accesskey="p" rel="prev">release 
output</a>, Up: <a href="#release" accesskey="u" rel="up">release</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="release-examples-1"></a>
+<h4 class="appendixsubsec">A.17.3 release examples</h4>
+
+<p>Release the <samp>tc</samp> directory, and delete your local working copy
+of the files.
+</p>
+<div class="example">
+<pre class="example">$ cd ..         # <span class="roman">You must stand 
immediately above the</span>
+                # <span class="roman">sources when you issue &lsquo;<samp>cvs 
release</samp>&rsquo;.</span>
+$ cvs release -d tc
+You have [0] altered files in this repository.
+Are you sure you want to release (and delete) directory `tc': y
+$
+</pre></div>
+
+<hr>
+<a name="remove"></a>
+<div class="header">
+<p>
+Next: <a href="#update" accesskey="n" rel="next">update</a>, Previous: <a 
href="#release" accesskey="p" rel="prev">release</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="remove_002d_002d_002dRemove-files-from-active-use"></a>
+<h3 class="appendixsec">A.18 remove&mdash;Remove files from active use</h3>
+<a name="index-remove-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: remove [-flR] [files...]
+</li><li> Requires: repository, working directory.
+</li><li> Changes: working directory.
+</li></ul>
+
+<p>The <code>remove</code> command is used to remove unwanted
+files from active use.  The user normally deletes the
+files from the working directory prior to invocation
+of the <code>remove</code> command.  Only the working
+directory is updated.  Changes to the repository are
+not made until the <code>commit</code> command is run.
+</p>
+<p>The <code>remove</code> command does not delete files from
+from the repository.  <small>CVS</small> keeps all historical
+data in the repository so that it is possible to
+reconstruct previous states of the projects under
+revision control.
+</p>
+<p>To undo <small>CVS</small> <code>remove</code> or to resurrect files
+that were previously removed, See <a href="#add">add</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#remove-options" 
accesskey="1">remove options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">remove options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#remove-examples" 
accesskey="2">remove examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">remove examples
+</td></tr>
+</table>
+
+<hr>
+<a name="remove-options"></a>
+<div class="header">
+<p>
+Next: <a href="#remove-examples" accesskey="n" rel="next">remove examples</a>, 
Up: <a href="#remove" accesskey="u" rel="up">remove</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="remove-options-1"></a>
+<h4 class="appendixsubsec">A.18.1 remove options</h4>
+
+<p>These standard options are supported by <code>remove</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Process directories recursively.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+</dl>
+
+<p>In addition, these options are also supported:
+</p>
+<dl compact="compact">
+<dt><code>-f</code></dt>
+<dd><p>Note that this is not the standard behavior of
+the &lsquo;<samp>-f</samp>&rsquo; option as defined in <a 
href="#Common-options">Common options</a>.
+</p>
+<p>Delete files before removing them.
+</p>
+<p>Entire directory hierarchies are easily removed
+using &lsquo;<samp>-f</samp>&rsquo;, but take note that it is not as
+easy to resurrect directory hierarchies as it is
+to remove them.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="remove-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="#remove-options" accesskey="p" rel="prev">remove 
options</a>, Up: <a href="#remove" accesskey="u" rel="up">remove</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="remove-examples-1"></a>
+<h4 class="appendixsubsec">A.18.2 remove examples</h4>
+
+<a name="Removing-a-file"></a>
+<h4 class="appendixsubsubsec">A.18.2.1 Removing a file</h4>
+
+<div class="example">
+<pre class="example">$ cvs remove remove.me
+cvs remove: file `remove.me' still in working directory
+cvs remove: 1 file exists; remove it first
+$ rm -f remove.me
+$ cvs remove remove.me
+cvs remove: scheduling `remove.me' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+
+$ ls remove.it
+remove.it
+$ cvs remove -f remove.it
+cvs remove: scheduling `remove.it' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+</pre></div>
+
+<a name="Removing-entire-directories"></a>
+<h4 class="appendixsubsubsec">A.18.2.2 Removing entire directories</h4>
+<div class="example">
+<pre class="example">$ tree -d a
+a
+|-- CVS
+`-- b
+    `-- CVS
+
+3 directories
+$ cvs remove -f a
+cvs remove: Removing a
+cvs remove: Removing a/b
+cvs remove: scheduling `a/b/c' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+</pre></div>
+
+<hr>
+<a name="update"></a>
+<div class="header">
+<p>
+Previous: <a href="#remove" accesskey="p" rel="prev">remove</a>, Up: <a 
href="#CVS-commands" accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="update_002d_002d_002dBring-work-tree-in-sync-with-repository"></a>
+<h3 class="appendixsec">A.19 update&mdash;Bring work tree in sync with 
repository</h3>
+<a name="index-update-_0028subcommand_0029"></a>
+
+<ul>
+<li> update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag|-D 
date] [-W spec] files&hellip;
+</li><li> Requires: repository, working directory.
+</li><li> Changes: working directory.
+</li></ul>
+
+<p>After you&rsquo;ve run checkout to create your private copy
+of source from the common repository, other developers
+will continue changing the central source.  From time
+to time, when it is convenient in your development
+process, you can use the <code>update</code> command from
+within your working directory to reconcile your work
+with any revisions applied to the source repository
+since your last checkout or update.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#update-options" 
accesskey="1">update options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">update options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#update-output" 
accesskey="2">update output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">update output
+</td></tr>
+</table>
+
+<hr>
+<a name="update-options"></a>
+<div class="header">
+<p>
+Next: <a href="#update-output" accesskey="n" rel="next">update output</a>, Up: 
<a href="#update" accesskey="u" rel="up">update</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="update-options-1"></a>
+<h4 class="appendixsubsec">A.19.1 update options</h4>
+
+<p>These standard options are available with <code>update</code>
+(see <a href="#Common-options">Common options</a> for a complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D date</code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+This option is sticky, and implies &lsquo;<samp>-P</samp>&rsquo;.
+See <a href="#Sticky-tags">Sticky tags</a> for more information on sticky 
tags/dates.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Only useful with the &lsquo;<samp>-D <var>date</var></samp>&rsquo; or 
&lsquo;<samp>-r
+<var>tag</var></samp>&rsquo; flags.  If no matching revision is found,
+retrieve the most recent revision (instead of ignoring
+the file).
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="#Keyword-substitution">Keyword substitution</a>.
+This option is sticky; future updates of
+this file in this working directory will use the same
+<var>kflag</var>.  The <code>status</code> command can be viewed
+to see the sticky options.  See <a href="#Invoking-CVS">Invoking CVS</a> for
+more information on the <code>status</code> command.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a href="#Moving-directories">Moving 
directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Pipe files to the standard output.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Update directories recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r rev</code></dt>
+<dd><p>Retrieve revision/tag <var>rev</var>.  This option is sticky,
+and implies &lsquo;<samp>-P</samp>&rsquo;.
+See <a href="#Sticky-tags">Sticky tags</a>, for more information on sticky 
tags/dates.
+</p></dd>
+</dl>
+
+<p>These special options are also available with
+<code>update</code>.
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags, dates, or &lsquo;<samp>-k</samp>&rsquo; options.
+Does not reset sticky &lsquo;<samp>-k</samp>&rsquo; options on modified files.
+See <a href="#Sticky-tags">Sticky tags</a> for more information on sticky 
tags/dates.
+</p>
+</dd>
+<dt><code>-C</code></dt>
+<dd><p>Overwrite locally modified files with clean copies from
+the repository (the modified file is saved in
+<samp>.#<var>file</var>.<var>revision</var></samp>, however).
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Create any directories that exist in the repository if
+they&rsquo;re missing from the working directory.  Normally,
+<code>update</code> acts only on directories and files that
+were already enrolled in your working directory.
+</p>
+<p>This is useful for updating directories that were
+created in the repository since the initial checkout;
+but it has an unfortunate side effect.  If you
+deliberately avoided certain directories in the
+repository when you created your working directory
+(either through use of a module name or by listing
+explicitly the files and directories you wanted on the
+command line), then updating with &lsquo;<samp>-d</samp>&rsquo; will create
+those directories, which may not be what you want.
+</p>
+</dd>
+<dt><code>-I <var>name</var></code></dt>
+<dd><p>Ignore files whose names match <var>name</var> (in your
+working directory) during the update.  You can specify
+&lsquo;<samp>-I</samp>&rsquo; more than once on the command line to specify
+several files to ignore.  Use &lsquo;<samp>-I !</samp>&rsquo; to avoid
+ignoring any files at all.  See <a href="#cvsignore">cvsignore</a> for other
+ways to make <small>CVS</small> ignore some files.
+</p>
+</dd>
+<dt><code>-W<var>spec</var></code></dt>
+<dd><p>Specify file names that should be filtered during
+update.  You can use this option repeatedly.
+</p>
+<p><var>spec</var> can be a file name pattern of the same type
+that you can specify in the <samp>.cvswrappers</samp>
+file.  See <a href="#Wrappers">Wrappers</a>.
+</p>
+</dd>
+<dt><code>-j<var>revision</var></code></dt>
+<dd><p>With two &lsquo;<samp>-j</samp>&rsquo; options, merge changes from the
+revision specified with the first &lsquo;<samp>-j</samp>&rsquo; option to
+the revision specified with the second &lsquo;<samp>j</samp>&rsquo; option,
+into the working directory.
+</p>
+<p>With one &lsquo;<samp>-j</samp>&rsquo; option, merge changes from the
+ancestor revision to the revision specified with the
+&lsquo;<samp>-j</samp>&rsquo; option, into the working directory.  The
+ancestor revision is the common ancestor of the
+revision which the working directory is based on, and
+the revision specified in the &lsquo;<samp>-j</samp>&rsquo; option.
+</p>
+<p>Note that using a single &lsquo;<samp>-j <var>tagname</var></samp>&rsquo; 
option rather than
+&lsquo;<samp>-j <var>branchname</var></samp>&rsquo; to merge changes from a 
branch will
+often not remove files which were removed on the branch.
+See <a href="#Merging-adds-and-removals">Merging adds and removals</a> for 
more information.
+</p>
+<p>In addition, each &lsquo;<samp>-j</samp>&rsquo; option can contain an 
optional
+date specification which, when used with branches, can
+limit the chosen revision to one within a specific
+date.  An optional date is specified by adding a colon
+(:) to the tag:
+&lsquo;<samp>-j<var>Symbolic_Tag</var>:<var>Date_Specifier</var></samp>&rsquo;.
+</p>
+<p>See <a href="#Branching-and-merging">Branching and merging</a>.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="update-output"></a>
+<div class="header">
+<p>
+Previous: <a href="#update-options" accesskey="p" rel="prev">update 
options</a>, Up: <a href="#update" accesskey="u" rel="up">update</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="update-output-1"></a>
+<h4 class="appendixsubsec">A.19.2 update output</h4>
+
+<p><code>update</code> and <code>checkout</code> keep you informed of
+their progress by printing a line for each file, preceded
+by one character indicating the status of the file:
+</p>
+<dl compact="compact">
+<dt><code>U <var>file</var></code></dt>
+<dd><p>The file was brought up to date with respect to the
+repository.  This is done for any file that exists in
+the repository but not in your working directory, and for files
+that you haven&rsquo;t changed but are not the most recent
+versions available in the repository.
+</p>
+</dd>
+<dt><code>P <var>file</var></code></dt>
+<dd><p>Like &lsquo;<samp>U</samp>&rsquo;, but the <small>CVS</small> server 
sends a patch instead of an entire
+file.  This accomplishes the same thing as &lsquo;<samp>U</samp>&rsquo; using 
less bandwidth.
+</p>
+</dd>
+<dt><code>A <var>file</var></code></dt>
+<dd><p>The file has been added to your private copy of the
+sources, and will be added to the source repository
+when you run <code>commit</code> on the file.  This is a
+reminder to you that the file needs to be committed.
+</p>
+</dd>
+<dt><code>R <var>file</var></code></dt>
+<dd><p>The file has been removed from your private copy of the
+sources, and will be removed from the source repository
+when you run <code>commit</code> on the file.  This is a
+reminder to you that the file needs to be committed.
+</p>
+</dd>
+<dt><code>M <var>file</var></code></dt>
+<dd><p>The file is modified in  your  working  directory.
+</p>
+<p>&lsquo;<samp>M</samp>&rsquo; can indicate one of two states for a file
+you&rsquo;re working on: either there were no modifications
+to the same file in the repository, so that your file
+remains as you last saw it; or there were modifications
+in the repository as well as in your copy, but they
+were merged successfully, without conflict, in your
+working directory.
+</p>
+<p><small>CVS</small> will print some messages if it merges your work,
+and a backup copy of your working file (as it looked
+before you ran <code>update</code>) will be made.  The exact
+name of that file is printed while <code>update</code> runs.
+</p>
+</dd>
+<dt><code>C <var>file</var></code></dt>
+<dd><a name="index-_002e_0023-files"></a>
+<a name="index-_005f_005f-files-_0028VMS_0029"></a>
+<p>A conflict was detected while trying to merge your
+changes to <var>file</var> with changes from the source
+repository.  <var>file</var> (the copy in your working
+directory) is now the result of attempting to merge
+the two revisions; an unmodified copy of your file
+is also in your working directory, with the name
+<samp>.#<var>file</var>.<var>revision</var></samp> where <var>revision</var>
+is the revision that your modified file started
+from.  Resolve the conflict as described in
+<a href="#Conflicts-example">Conflicts example</a>.
+(Note that some systems automatically purge
+files that begin with <samp>.#</samp> if they have not been
+accessed for a few days.  If you intend to keep a copy
+of your original file, it is a very good idea to rename
+it.)  Under <small>VMS</small>, the file name starts with
+<samp>__</samp> rather than <samp>.#</samp>.
+</p>
+</dd>
+<dt><code>? <var>file</var></code></dt>
+<dd><p><var>file</var> is in your working directory, but does not
+correspond to anything in the source repository, and is
+not in the list of files for <small>CVS</small> to ignore (see the
+description of the &lsquo;<samp>-I</samp>&rsquo; option, and
+see <a href="#cvsignore">cvsignore</a>).
+</p></dd>
+</dl>
+
+<hr>
+<a name="Invoking-CVS"></a>
+<div class="header">
+<p>
+Next: <a href="#Administrative-files" accesskey="n" rel="next">Administrative 
files</a>, Previous: <a href="#CVS-commands" accesskey="p" rel="prev">CVS 
commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Quick-reference-to-CVS-commands"></a>
+<h2 class="appendix">Appendix B Quick reference to CVS commands</h2>
+<a name="index-Command-reference"></a>
+<a name="index-Reference_002c-commands"></a>
+<a name="index-Invoking-CVS"></a>
+
+<p>This appendix describes how to invoke <small>CVS</small>, with
+references to where each command or feature is
+described in detail.  For other references run the
+<code>cvs --help</code> command, or see <a href="#Index">Index</a>.
+</p>
+<p>A <small>CVS</small> command looks like:
+</p>
+<div class="example">
+<pre class="example">cvs [ <var>global_options</var> ] <var>command</var> [ 
<var>command_options</var> ] [ <var>command_args</var> ]
+</pre></div>
+
+<p>Global options:
+</p>
+<dl compact="compact">
+<dt><code>--allow-root=<var>rootdir</var></code></dt>
+<dd><p>Specify legal <small>CVSROOT</small> directory (server only) (not
+in <small>CVS</small> 1.9 and older).  See <a 
href="#Password-authentication-server">Password authentication server</a>.
+</p>
+</dd>
+<dt><code>-a</code></dt>
+<dd><p>Authenticate all communication (client only) (not in <small>CVS</small>
+1.9 and older).  See <a href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-b</code></dt>
+<dd><p>Specify RCS location (<small>CVS</small> 1.9 and older).  See
+<a href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-d <var>root</var></code></dt>
+<dd><p>Specify the <small>CVSROOT</small>.  See <a 
href="#Repository">Repository</a>.
+</p>
+</dd>
+<dt><code>-e <var>editor</var></code></dt>
+<dd><p>Edit messages with <var>editor</var>.  See <a 
href="#Committing-your-changes">Committing your changes</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Do not read the <samp>~/.cvsrc</samp> file.  See <a 
href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-H</code></dt>
+<dt><code>--help</code></dt>
+<dd><p>Print a help message.  See <a href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not change any files.  See <a href="#Global-options">Global 
options</a>.
+</p>
+</dd>
+<dt><code>-Q</code></dt>
+<dd><p>Be really quiet.  See <a href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Be somewhat quiet.  See <a href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-r</code></dt>
+<dd><p>Make new working files read-only.  See <a href="#Global-options">Global 
options</a>.
+</p>
+</dd>
+<dt><code>-s <var>variable</var>=<var>value</var></code></dt>
+<dd><p>Set a user variable.  See <a href="#Variables">Variables</a>.
+</p>
+</dd>
+<dt><code>-T <var>tempdir</var></code></dt>
+<dd><p>Put temporary files in <var>tempdir</var>.  See <a 
href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Trace <small>CVS</small> execution.  See <a 
href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-v</code></dt>
+<dt><code>--version</code></dt>
+<dd><p>Display version and copyright information for <small>CVS</small>.
+</p>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Make new working files read-write.  See <a 
href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-x</code></dt>
+<dd><p>Encrypt all communication (client only).
+See <a href="#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-z <var>gzip-level</var></code></dt>
+<dd><a name="index-Compression-1"></a>
+<a name="index-Gzip-1"></a>
+<p>Set the compression level (client only).
+See <a href="#Global-options">Global options</a>.
+</p></dd>
+</dl>
+
+<p>Keyword expansion modes (see <a href="#Substitution-modes">Substitution 
modes</a>):
+</p>
+<div class="example">
+<pre class="example">-kkv  $<i></i>Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp 
$
+-kkvl $<i></i>Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+-kk   $<i></i>Id$
+-kv   file1,v 1.1 1993/12/09 03:21:13 joe Exp
+-ko   <i>no expansion</i>
+-kb   <i>no expansion, file is binary</i>
+</pre></div>
+
+<p>Keywords (see <a href="#Keyword-list">Keyword list</a>):
+</p>
+<div class="example">
+<pre class="example">$<i></i>Author: joe $
+$<i></i>Date: 1993/12/09 03:21:13 $
+$<i></i>Header: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+$<i></i>Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+$<i></i>Locker: harry $
+$<i></i>Name: snapshot_1_14 $
+$<i></i>RCSfile: file1,v $
+$<i></i>Revision: 1.1 $
+$<i></i>Source: /home/files/file1,v $
+$<i></i>State: Exp $
+$<i></i>Log: file1,v $
+Revision 1.1  1993/12/09 03:30:17  joe
+Initial revision
+
+</pre></div>
+
+<p>Commands, command options, and command arguments:
+</p>
+<dl compact="compact">
+<dt><code>add [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Add a new file/directory.  See <a href="#Adding-files">Adding files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Set keyword expansion.
+</p>
+</dd>
+<dt><code>-m <var>msg</var></code></dt>
+<dd><p>Set file description.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>admin [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Administration of history files in the repository.  See
+<a href="#admin">admin</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b[<var>rev</var>]</code></dt>
+<dd><p>Set default branch.  See <a href="#Reverting-local-changes">Reverting 
local changes</a>.
+</p>
+</dd>
+<dt><code>-c<var>string</var></code></dt>
+<dd><p>Set comment leader.
+</p>
+</dd>
+<dt><code>-k<var>subst</var></code></dt>
+<dd><p>Set keyword substitution.  See <a href="#Keyword-substitution">Keyword 
substitution</a>.
+</p>
+</dd>
+<dt><code>-l[<var>rev</var>]</code></dt>
+<dd><p>Lock revision <var>rev</var>, or latest revision.
+</p>
+</dd>
+<dt><code>-m<var>rev</var>:<var>msg</var></code></dt>
+<dd><p>Replace the log message of revision <var>rev</var> with
+<var>msg</var>.
+</p>
+</dd>
+<dt><code>-o<var>range</var></code></dt>
+<dd><p>Delete revisions from the repository.  See
+<a href="#admin-options">admin options</a>.
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Run quietly; do not print diagnostics.
+</p>
+</dd>
+<dt><code>-s<var>state</var>[:<var>rev</var>]</code></dt>
+<dd><p>Set the state.  See <a href="#admin-options">admin options</a> for more 
information on possible
+states.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Set file description from standard input.
+</p>
+</dd>
+<dt><code>-t<var>file</var></code></dt>
+<dd><p>Set file description from <var>file</var>.
+</p>
+</dd>
+<dt><code>-t-<var>string</var></code></dt>
+<dd><p>Set file description to <var>string</var>.
+</p>
+</dd>
+<dt><code>-u[<var>rev</var>]</code></dt>
+<dd><p>Unlock revision <var>rev</var>, or latest revision.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>annotate [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Show last revision where each line was modified.  See
+<a href="#annotate">annotate</a>.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Annotate the most recent revision no later than
+<var>date</var>.  See <a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Force annotation of binary files.  (Without this option,
+binary files are skipped with a message.)
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Annotate revision <var>tag</var>.  See <a href="#Common-options">Common 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>checkout [<var>options</var>] <var>modules</var>&hellip;</code></dt>
+<dd><p>Get a copy of the sources.  See <a href="#checkout">checkout</a>.
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags/date/options.  See <a href="#Sticky-tags">Sticky 
tags</a> and <a href="#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Output the module database.  See <a href="#checkout-options">checkout 
options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Check out revisions as of <var>date</var> (is sticky).  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Check out into <var>dir</var>.  See <a 
href="#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-j <var>rev</var></code></dt>
+<dd><p>Merge in changes.  See <a href="#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Use <var>kflag</var> keyword expansion.  See
+<a href="#Substitution-modes">Substitution modes</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Don&rsquo;t &ldquo;shorten&rdquo; module paths if -d specified.  See
+<a href="#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run module program (if any).  See <a 
href="#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a href="#Moving-directories">Moving 
directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Check out files to standard output (avoids
+stickiness).  See <a href="#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Checkout revision <var>tag</var> (is sticky).  See <a 
href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Like -c, but include module status.  See <a 
href="#checkout-options">checkout options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>commit [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Check changes into the repository.  See <a href="#commit">commit</a>.
+</p>
+<dl compact="compact">
+<dt><code>-F <var>file</var></code></dt>
+<dd><p>Read log message from <var>file</var>.  See <a 
href="#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Force the file to be committed; disables recursion.
+See <a href="#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-m <var>msg</var></code></dt>
+<dd><p>Use <var>msg</var> as log message.  See <a 
href="#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run module program (if any).  See <a 
href="#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Commit to <var>rev</var>.  See <a href="#commit-options">commit 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>diff [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Show differences between revisions.  See <a href="#diff">diff</a>.
+In addition to the options shown below, accepts a wide
+variety of options to control output style, for example
+&lsquo;<samp>-c</samp>&rsquo; for context diffs.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date1</var></code></dt>
+<dd><p>Diff revision for date against working file.  See
+<a href="#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date2</var></code></dt>
+<dd><p>Diff <var>rev1</var>/<var>date1</var> against <var>date2</var>.  See
+<a href="#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Include diffs for added and removed files.  See
+<a href="#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev1</var></code></dt>
+<dd><p>Diff revision for <var>rev1</var> against working file.  See
+<a href="#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev2</var></code></dt>
+<dd><p>Diff <var>rev1</var>/<var>date1</var> against <var>rev2</var>.  See <a 
href="#diff-options">diff options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>edit [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Get ready to edit a watched file.  See <a href="#Editing-files">Editing 
files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a <var>actions</var></code></dt>
+<dd><p>Specify actions for temporary watch, where
+<var>actions</var> is <code>edit</code>, <code>unedit</code>,
+<code>commit</code>, <code>all</code>, or <code>none</code>.  See
+<a href="#Editing-files">Editing files</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>editors [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>See who is editing a watched file.  See <a 
href="#Watch-information">Watch information</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>export [<var>options</var>] <var>modules</var>&hellip;</code></dt>
+<dd><p>Export files from <small>CVS</small>.  See <a href="#export">export</a>.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Check out revisions as of <var>date</var>.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Check out into <var>dir</var>.  See <a href="#export-options">export 
options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Use <var>kflag</var> keyword expansion.  See
+<a href="#Substitution-modes">Substitution modes</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Don&rsquo;t &ldquo;shorten&rdquo; module paths if -d specified.  See
+<a href="#export-options">export options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run module program (if any).  See <a 
href="#export-options">export options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Checkout revision <var>tag</var>.  See <a href="#Common-options">Common 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>history [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Show repository access history.  See <a href="#history">history</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a</code></dt>
+<dd><p>All users (default is self).  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-b <var>str</var></code></dt>
+<dd><p>Back to record with <var>str</var> in module/file/repos
+field.  See <a href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Report on committed (modified) files.  See <a 
href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Since <var>date</var>.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-e</code></dt>
+<dd><p>Report on all record types.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Last modified (committed or modified report).  See <a 
href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-m <var>module</var></code></dt>
+<dd><p>Report on <var>module</var> (repeatable).  See <a 
href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-n <var>module</var></code></dt>
+<dd><p>In <var>module</var>.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-o</code></dt>
+<dd><p>Report on checked out modules.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-p <var>repository</var></code></dt>
+<dd><p>In <var>repository</var>.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Since revision <var>rev</var>.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-T</code></dt>
+<dd><p>Produce report on all TAGs.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-t <var>tag</var></code></dt>
+<dd><p>Since tag record placed in history file (by anyone).
+See <a href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-u <var>user</var></code></dt>
+<dd><p>For user <var>user</var> (repeatable).  See <a 
href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Working directory must match.  See <a href="#history-options">history 
options</a>.
+</p>
+</dd>
+<dt><code>-x <var>types</var></code></dt>
+<dd><p>Report on <var>types</var>, one or more of
+<code>TOEFWUPCGMAR</code>.  See <a href="#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-z <var>zone</var></code></dt>
+<dd><p>Output for time zone <var>zone</var>.  See <a 
href="#history-options">history options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>import [<var>options</var>] <var>repository</var> 
<var>vendor-tag</var> <var>release-tags</var>&hellip;</code></dt>
+<dd><p>Import files into <small>CVS</small>, using vendor branches.  See
+<a href="#import">import</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b <var>bra</var></code></dt>
+<dd><p>Import to vendor branch <var>bra</var>.  See
+<a href="#Multiple-vendor-branches">Multiple vendor branches</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Use the file&rsquo;s modification time as the time of
+import.  See <a href="#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Set default keyword substitution mode.  See
+<a href="#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-m <var>msg</var></code></dt>
+<dd><p>Use <var>msg</var> for log message.  See
+<a href="#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-I <var>ign</var></code></dt>
+<dd><p>More files to ignore (! to reset).  See
+<a href="#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-W <var>spec</var></code></dt>
+<dd><p>More wrappers.  See <a href="#import-options">import options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>init</code></dt>
+<dd><p>Create a <small>CVS</small> repository if it doesn&rsquo;t exist.  See
+<a href="#Creating-a-repository">Creating a repository</a>.
+</p>
+</dd>
+<dt><code>kserver</code></dt>
+<dd><p>Kerberos authenticated server.
+See <a href="#Kerberos-authenticated">Kerberos authenticated</a>.
+</p>
+</dd>
+<dt><code>log [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Print out history information for files.  See <a href="#log">log</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Only list revisions on the default branch.  See <a 
href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dates</var></code></dt>
+<dd><p>Specify dates (<var>d1</var>&lt;<var>d2</var> for range, <var>d</var> 
for
+latest before).  See <a href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-h</code></dt>
+<dd><p>Only print header.  See <a href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Do not list tags.  See <a href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Only print name of RCS file.  See <a href="#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-r<var>revs</var></code></dt>
+<dd><p>Only list revisions <var>revs</var>.  See <a href="#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-s <var>states</var></code></dt>
+<dd><p>Only list revisions with specified states.  See <a 
href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Only print header and descriptive text.  See <a href="#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-w<var>logins</var></code></dt>
+<dd><p>Only list revisions checked in by specified logins.  See <a 
href="#log-options">log options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>login</code></dt>
+<dd><p>Prompt for password for authenticating server.  See
+<a href="#Password-authentication-client">Password authentication client</a>.
+</p>
+</dd>
+<dt><code>logout</code></dt>
+<dd><p>Remove stored password for authenticating server.  See
+<a href="#Password-authentication-client">Password authentication client</a>.
+</p>
+</dd>
+<dt><code>pserver</code></dt>
+<dd><p>Password authenticated server.
+See <a href="#Password-authentication-server">Password authentication 
server</a>.
+</p>
+</dd>
+<dt><code>rannotate [<var>options</var>] 
[<var>modules</var>&hellip;]</code></dt>
+<dd><p>Show last revision where each line was modified.  See
+<a href="#annotate">annotate</a>.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Annotate the most recent revision no later than
+<var>date</var>.  See <a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Force annotation of binary files.  (Without this option,
+binary files are skipped with a message.)
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Annotate revision <var>tag</var>.  See <a href="#Common-options">Common 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>rdiff [<var>options</var>] <var>modules</var>&hellip;</code></dt>
+<dd><p>Show differences between releases.  See <a href="#rdiff">rdiff</a>.
+</p>
+<dl compact="compact">
+<dt><code>-c</code></dt>
+<dd><p>Context diff output format (default).  See <a 
href="#rdiff-options">rdiff options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Select revisions based on <var>date</var>.  See <a 
href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Select revisions based on <var>rev</var>.  See <a 
href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Short patch - one liner per file.  See <a href="#rdiff-options">rdiff 
options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Top two diffs - last change made to the file.  See
+<a href="#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-u</code></dt>
+<dd><p>Unidiff output format.  See <a href="#rdiff-options">rdiff options</a>.
+</p>
+</dd>
+<dt><code>-V <var>vers</var></code></dt>
+<dd><p>Use RCS Version <var>vers</var> for keyword expansion (obsolete).  See
+<a href="#rdiff-options">rdiff options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>release [<var>options</var>] <var>directory</var></code></dt>
+<dd><p>Indicate that a directory is no longer in use.  See
+<a href="#release">release</a>.
+</p>
+<dl compact="compact">
+<dt><code>-d</code></dt>
+<dd><p>Delete the given directory.  See <a href="#release-options">release 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>remove [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Remove an entry from the repository.  See <a 
href="#Removing-files">Removing files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-f</code></dt>
+<dd><p>Delete the file before removing it.  See <a 
href="#Removing-files">Removing files</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>rlog [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Print out history information for modules.  See <a href="#log">log</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Only list revisions on the default branch.  See <a 
href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dates</var></code></dt>
+<dd><p>Specify dates (<var>d1</var>&lt;<var>d2</var> for range, <var>d</var> 
for
+latest before).  See <a href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-h</code></dt>
+<dd><p>Only print header.  See <a href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Do not list tags.  See <a href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Only print name of RCS file.  See <a href="#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-r<var>revs</var></code></dt>
+<dd><p>Only list revisions <var>revs</var>.  See <a href="#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-s <var>states</var></code></dt>
+<dd><p>Only list revisions with specified states.  See <a 
href="#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Only print header and descriptive text.  See <a href="#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-w<var>logins</var></code></dt>
+<dd><p>Only list revisions checked in by specified logins.  See <a 
href="#log-options">log options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>rtag [<var>options</var>] <var>tag</var> 
<var>modules</var>&hellip;</code></dt>
+<dd><p>Add a symbolic tag to a module.
+See <a href="#Revisions">Revisions</a> and <a 
href="#Branching-and-merging">Branching and merging</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a</code></dt>
+<dd><p>Clear tag from removed files that would not otherwise
+be tagged.  See <a href="#Tagging-add_002fremove">Tagging add/remove</a>.
+</p>
+</dd>
+<dt><code>-b</code></dt>
+<dd><p>Create a branch named <var>tag</var>.  See <a 
href="#Branching-and-merging">Branching and merging</a>.
+</p>
+</dd>
+<dt><code>-B</code></dt>
+<dd><p>Used in conjunction with -F or -d, enables movement and deletion of
+branch tags.  Use with extreme caution. 
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Tag revisions as of <var>date</var>.  See <a 
href="#Tagging-by-date_002ftag">Tagging by date/tag</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Delete <var>tag</var>.  See <a href="#Modifying-tags">Modifying 
tags</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Move <var>tag</var> if it already exists.  See <a 
href="#Modifying-tags">Modifying tags</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Force a head revision match if tag/date not found.
+See <a href="#Tagging-by-date_002ftag">Tagging by date/tag</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>No execution of tag program.  See <a href="#Common-options">Common 
options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Tag existing tag <var>rev</var>.  See <a 
href="#Tagging-by-date_002ftag">Tagging by date/tag</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>server</code></dt>
+<dd><p>Rsh server.  See <a href="#Connecting-via-rsh">Connecting via rsh</a>.
+</p>
+</dd>
+<dt><code>status [<var>options</var>] <var>files</var>&hellip;</code></dt>
+<dd><p>Display status information in a working directory.  See
+<a href="#File-status">File status</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-v</code></dt>
+<dd><p>Include tag information for file.  See <a href="#Tags">Tags</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>tag [<var>options</var>] <var>tag</var> 
[<var>files</var>&hellip;]</code></dt>
+<dd><p>Add a symbolic tag to checked out version of files.
+See <a href="#Revisions">Revisions</a> and <a 
href="#Branching-and-merging">Branching and merging</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Create a branch named <var>tag</var>.  See <a 
href="#Branching-and-merging">Branching and merging</a>.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Check that working files are unmodified.  See
+<a href="#Tagging-the-working-directory">Tagging the working directory</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Tag revisions as of <var>date</var>.  See <a 
href="#Tagging-by-date_002ftag">Tagging by date/tag</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Delete <var>tag</var>.  See <a href="#Modifying-tags">Modifying 
tags</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Move <var>tag</var> if it already exists.  See <a 
href="#Modifying-tags">Modifying tags</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Force a head revision match if tag/date not found.
+See <a href="#Tagging-by-date_002ftag">Tagging by date/tag</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Tag existing tag <var>rev</var>.  See <a 
href="#Tagging-by-date_002ftag">Tagging by date/tag</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>unedit [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Undo an edit command.  See <a href="#Editing-files">Editing files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>update [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Bring work tree in sync with repository.  See
+<a href="#update">update</a>.
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags/date/options.  See <a href="#Sticky-tags">Sticky 
tags</a> and <a href="#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-C</code></dt>
+<dd><p>Overwrite locally modified files with clean copies from
+the repository (the modified file is saved in
+<samp>.#<var>file</var>.<var>revision</var></samp>, however).
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Check out revisions as of <var>date</var> (is sticky).  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Create directories.  See <a href="#update-options">update options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-I <var>ign</var></code></dt>
+<dd><p>More files to ignore (! to reset).  See
+<a href="#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-j <var>rev</var></code></dt>
+<dd><p>Merge in changes.  See <a href="#update-options">update options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Use <var>kflag</var> keyword expansion.  See
+<a href="#Substitution-modes">Substitution modes</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a href="#Moving-directories">Moving 
directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Check out files to standard output (avoids
+stickiness).  See <a href="#update-options">update options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Checkout revision <var>tag</var> (is sticky).  See <a 
href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-W <var>spec</var></code></dt>
+<dd><p>More wrappers.  See <a href="#import-options">import options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>version</code></dt>
+<dd><a name="index-version-_0028subcommand_0029"></a>
+
+<p>Display the version of <small>CVS</small> being used.  If the repository
+is remote, display both the client and server versions.
+</p>
+</dd>
+<dt><code>watch [on|off|add|remove] [<var>options</var>] 
[<var>files</var>&hellip;]</code></dt>
+<dd>
+<p>on/off: turn on/off read-only checkouts of files.  See
+<a href="#Setting-a-watch">Setting a watch</a>.
+</p>
+<p>add/remove: add or remove notification on actions.  See
+<a href="#Getting-Notified">Getting Notified</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a <var>actions</var></code></dt>
+<dd><p>Specify actions for temporary watch, where
+<var>actions</var> is <code>edit</code>, <code>unedit</code>,
+<code>commit</code>, <code>all</code>, or <code>none</code>.  See
+<a href="#Editing-files">Editing files</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>watchers [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>See who is watching a file.  See <a href="#Watch-information">Watch 
information</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
+<hr>
+<a name="Administrative-files"></a>
+<div class="header">
+<p>
+Next: <a href="#Environment-variables" accesskey="n" rel="next">Environment 
variables</a>, Previous: <a href="#Invoking-CVS" accesskey="p" 
rel="prev">Invoking CVS</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Reference-manual-for-Administrative-files"></a>
+<h2 class="appendix">Appendix C Reference manual for Administrative files</h2>
+<a name="index-Administrative-files-_0028reference_0029"></a>
+<a name="index-Files_002c-reference-manual"></a>
+<a name="index-Reference-manual-_0028files_0029"></a>
+<a name="index-CVSROOT-_0028file_0029"></a>
+
+<p>Inside the repository, in the directory
+<samp>$CVSROOT/CVSROOT</samp>, there are a number of
+supportive files for <small>CVS</small>.  You can use <small>CVS</small> in a 
limited
+fashion without any of them, but if they are set up
+properly they can help make life easier.  For a
+discussion of how to edit them, see <a 
href="#Intro-administrative-files">Intro administrative files</a>.
+</p>
+<p>The most important of these files is the <samp>modules</samp>
+file, which defines the modules inside the repository.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#modules" 
accesskey="1">modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Defining modules
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Wrappers" 
accesskey="2">Wrappers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Specify binary-ness based on file name
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Trigger-Scripts" 
accesskey="3">Trigger Scripts</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Some notes on the commit support files and
+                               taginfo, referenced below.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#commit-files" 
accesskey="4">commit files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The commit support files (commitinfo,
+                                verifymsg, editinfo, loginfo)
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#taginfo" 
accesskey="5">taginfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Verifying/Logging tags
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#rcsinfo" 
accesskey="6">rcsinfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Templates for the log messages
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#cvsignore" 
accesskey="7">cvsignore</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Ignoring files via cvsignore
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#checkoutlist" 
accesskey="8">checkoutlist</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Adding your own administrative files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#history-file" 
accesskey="9">history file</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">History information
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#Variables">Variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Various variables are expanded
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="#config">config</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Miscellaneous CVS configuration
+</td></tr>
+</table>
+
+<hr>
+<a name="modules"></a>
+<div class="header">
+<p>
+Next: <a href="#Wrappers" accesskey="n" rel="next">Wrappers</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-modules-file"></a>
+<h3 class="appendixsec">C.1 The modules file</h3>
+<a name="index-Modules-_0028admin-file_0029"></a>
+<a name="index-Defining-modules-_0028reference-manual_0029"></a>
+
+<p>The <samp>modules</samp> file records your definitions of
+names for collections of source code.  <small>CVS</small> will
+use these definitions if you use <small>CVS</small> to update the
+modules file (use normal commands like <code>add</code>,
+<code>commit</code>, etc).
+</p>
+<p>The <samp>modules</samp> file may contain blank lines and
+comments (lines beginning with &lsquo;<samp>#</samp>&rsquo;) as well as
+module definitions.  Long lines can be continued on the
+next line by specifying a backslash (&lsquo;<samp>\</samp>&rsquo;) as the
+last character on the line.
+</p>
+<p>There are three basic types of modules: alias modules,
+regular modules, and ampersand modules.  The difference
+between them is the way that they map files in the
+repository to files in the working directory.  In all
+of the following examples, the top-level repository
+contains a directory called <samp>first-dir</samp>, which
+contains two files, <samp>file1</samp> and <samp>file2</samp>, and a
+directory <samp>sdir</samp>.  <samp>first-dir/sdir</samp> contains
+a file <samp>sfile</samp>.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Alias-modules" 
accesskey="1">Alias modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The simplest kind of module
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Regular-modules" 
accesskey="2">Regular modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Ampersand-modules" 
accesskey="3">Ampersand modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Excluding-directories" 
accesskey="4">Excluding directories</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Excluding directories from a module
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Module-options" 
accesskey="5">Module options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Regular and ampersand modules can take options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Module-program-options" 
accesskey="6">Module program options</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">How the modules &ldquo;program options&rdquo; programs
+                              are run. 
+</td></tr>
+</table>
+
+<hr>
+<a name="Alias-modules"></a>
+<div class="header">
+<p>
+Next: <a href="#Regular-modules" accesskey="n" rel="next">Regular modules</a>, 
Up: <a href="#modules" accesskey="u" rel="up">modules</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Alias-modules-1"></a>
+<h4 class="appendixsubsec">C.1.1 Alias modules</h4>
+<a name="index-Alias-modules"></a>
+<a name="index-_002da_002c-in-modules-file"></a>
+
+<p>Alias modules are the simplest kind of module:
+</p>
+<dl compact="compact">
+<dt><code><var>mname</var> -a <var>aliases</var>&hellip;</code></dt>
+<dd><p>This represents the simplest way of defining a module
+<var>mname</var>.  The &lsquo;<samp>-a</samp>&rsquo; flags the definition as a
+simple alias: <small>CVS</small> will treat any use of <var>mname</var> (as
+a command argument) as if the list of names
+<var>aliases</var> had been specified instead.
+<var>aliases</var> may contain either other module names or
+paths.  When you use paths in aliases, <code>checkout</code>
+creates all intermediate directories in the working
+directory, just as if the path had been specified
+explicitly in the <small>CVS</small> arguments.
+</p></dd>
+</dl>
+
+<p>For example, if the modules file contains:
+</p>
+<div class="example">
+<pre class="example">amodule -a first-dir
+</pre></div>
+
+<p>then the following two commands are equivalent:
+</p>
+<div class="example">
+<pre class="example">$ cvs co amodule
+$ cvs co first-dir
+</pre></div>
+
+<p>and they each would provide output such as:
+</p>
+<div class="example">
+<pre class="example">cvs checkout: Updating first-dir
+U first-dir/file1
+U first-dir/file2
+cvs checkout: Updating first-dir/sdir
+U first-dir/sdir/sfile
+</pre></div>
+
+<hr>
+<a name="Regular-modules"></a>
+<div class="header">
+<p>
+Next: <a href="#Ampersand-modules" accesskey="n" rel="next">Ampersand 
modules</a>, Previous: <a href="#Alias-modules" accesskey="p" rel="prev">Alias 
modules</a>, Up: <a href="#modules" accesskey="u" rel="up">modules</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Regular-modules-1"></a>
+<h4 class="appendixsubsec">C.1.2 Regular modules</h4>
+<a name="index-Regular-modules"></a>
+
+<dl compact="compact">
+<dt><code><var>mname</var> [ options ] <var>dir</var> [ 
<var>files</var>&hellip; ]</code></dt>
+<dd><p>In the simplest case, this form of module definition
+reduces to &lsquo;<samp><var>mname</var> <var>dir</var></samp>&rsquo;.  This 
defines
+all the files in directory <var>dir</var> as module mname.
+<var>dir</var> is a relative path (from <code>$CVSROOT</code>) to a
+directory of source in the source repository.  In this
+case, on checkout, a single directory called
+<var>mname</var> is created as a working directory; no
+intermediate directory levels are used by default, even
+if <var>dir</var> was a path involving several directory
+levels.
+</p></dd>
+</dl>
+
+<p>For example, if a module is defined by:
+</p>
+<div class="example">
+<pre class="example">regmodule first-dir
+</pre></div>
+
+<p>then regmodule will contain the files from first-dir:
+</p>
+<div class="example">
+<pre class="example">$ cvs co regmodule
+cvs checkout: Updating regmodule
+U regmodule/file1
+U regmodule/file2
+cvs checkout: Updating regmodule/sdir
+U regmodule/sdir/sfile
+$
+</pre></div>
+
+<p>By explicitly specifying files in the module definition
+after <var>dir</var>, you can select particular files from
+directory <var>dir</var>.  Here is
+an example:
+</p>
+<div class="example">
+<pre class="example">regfiles first-dir/sdir sfile
+</pre></div>
+
+<p>With this definition, getting the regfiles module
+will create a single working directory
+<samp>regfiles</samp> containing the file listed, which
+comes from a directory deeper
+in the <small>CVS</small> source repository:
+</p>
+<div class="example">
+<pre class="example">$ cvs co regfiles
+U regfiles/sfile
+$
+</pre></div>
+
+<hr>
+<a name="Ampersand-modules"></a>
+<div class="header">
+<p>
+Next: <a href="#Excluding-directories" accesskey="n" rel="next">Excluding 
directories</a>, Previous: <a href="#Regular-modules" accesskey="p" 
rel="prev">Regular modules</a>, Up: <a href="#modules" accesskey="u" 
rel="up">modules</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Ampersand-modules-1"></a>
+<h4 class="appendixsubsec">C.1.3 Ampersand modules</h4>
+<a name="index-Ampersand-modules"></a>
+<a name="index-_0026_002c-in-modules-file"></a>
+
+<p>A module definition can refer to other modules by
+including &lsquo;<samp>&amp;<var>module</var></samp>&rsquo; in its definition.
+</p><div class="example">
+<pre class="example"><var>mname</var> [ options ] 
<var>&amp;module</var>&hellip;
+</pre></div>
+
+<p>Then getting the module creates a subdirectory for each such
+module, in the directory containing the module.  For
+example, if modules contains
+</p>
+<div class="example">
+<pre class="example">ampermod &amp;first-dir
+</pre></div>
+
+<p>then a checkout will create an <code>ampermod</code> directory
+which contains a directory called <code>first-dir</code>,
+which in turns contains all the directories and files
+which live there.  For example, the command
+</p>
+<div class="example">
+<pre class="example">$ cvs co ampermod
+</pre></div>
+
+<p>will create the following files:
+</p>
+<div class="example">
+<pre class="example">ampermod/first-dir/file1
+ampermod/first-dir/file2
+ampermod/first-dir/sdir/sfile
+</pre></div>
+
+<p>There is one quirk/bug: the messages that <small>CVS</small>
+prints omit the <samp>ampermod</samp>, and thus do not
+correctly display the location to which it is checking
+out the files:
+</p>
+<div class="example">
+<pre class="example">$ cvs co ampermod
+cvs checkout: Updating first-dir
+U first-dir/file1
+U first-dir/file2
+cvs checkout: Updating first-dir/sdir
+U first-dir/sdir/sfile
+$
+</pre></div>
+
+<p>Do not rely on this buggy behavior; it may get fixed in
+a future release of <small>CVS</small>.
+</p>
+
+<hr>
+<a name="Excluding-directories"></a>
+<div class="header">
+<p>
+Next: <a href="#Module-options" accesskey="n" rel="next">Module options</a>, 
Previous: <a href="#Ampersand-modules" accesskey="p" rel="prev">Ampersand 
modules</a>, Up: <a href="#modules" accesskey="u" rel="up">modules</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Excluding-directories-1"></a>
+<h4 class="appendixsubsec">C.1.4 Excluding directories</h4>
+<a name="index-Excluding-directories_002c-in-modules-file"></a>
+<a name="index-_0021_002c-in-modules-file"></a>
+
+<p>An alias module may exclude particular directories from
+other modules by using an exclamation mark (&lsquo;<samp>!</samp>&rsquo;)
+before the name of each directory to be excluded.
+</p>
+<p>For example, if the modules file contains:
+</p>
+<div class="example">
+<pre class="example">exmodule -a !first-dir/sdir first-dir
+</pre></div>
+
+<p>then checking out the module &lsquo;<samp>exmodule</samp>&rsquo; will check
+out everything in &lsquo;<samp>first-dir</samp>&rsquo; except any files in
+the subdirectory &lsquo;<samp>first-dir/sdir</samp>&rsquo;.
+</p>
+<hr>
+<a name="Module-options"></a>
+<div class="header">
+<p>
+Next: <a href="#Module-program-options" accesskey="n" rel="next">Module 
program options</a>, Previous: <a href="#Excluding-directories" accesskey="p" 
rel="prev">Excluding directories</a>, Up: <a href="#modules" accesskey="u" 
rel="up">modules</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Module-options-1"></a>
+<h4 class="appendixsubsec">C.1.5 Module options</h4>
+<a name="index-Options_002c-in-modules-file"></a>
+
+<p>Either regular modules or ampersand modules can contain
+options, which supply additional information concerning
+the module.
+</p>
+<dl compact="compact">
+<dd><a name="index-_002dd_002c-in-modules-file"></a>
+</dd>
+<dt><code>-d <var>name</var></code></dt>
+<dd><p>Name the working directory something other than the
+module name.
+</p>
+<a name="index-Export-program"></a>
+<a name="index-_002de_002c-in-modules-file"></a>
+</dd>
+<dt><code>-e <var>prog</var></code></dt>
+<dd><p>Specify a program <var>prog</var> to run whenever files in a
+module are exported.  <var>prog</var> runs with a single
+argument, the module name.
+</p>
+<a name="index-Checkout-program"></a>
+<a name="index-_002do_002c-in-modules-file"></a>
+</dd>
+<dt><code>-o <var>prog</var></code></dt>
+<dd><p>Specify a program <var>prog</var> to run whenever files in a
+module are checked out.  <var>prog</var> runs with a single
+argument, the module name.  See <a href="#Module-program-options">Module 
program options</a> for
+information on how <var>prog</var> is called.
+</p>
+<a name="index-Status-of-a-module"></a>
+<a name="index-Module-status"></a>
+<a name="index-_002ds_002c-in-modules-file"></a>
+</dd>
+<dt><code>-s <var>status</var></code></dt>
+<dd><p>Assign a status to the module.  When the module file is
+printed with &lsquo;<samp>cvs checkout -s</samp>&rsquo; the modules are
+sorted according to primarily module status, and
+secondarily according to the module name.  This option
+has no other meaning.  You can use this option for
+several things besides status: for instance, list the
+person that is responsible for this module.
+</p>
+<a name="index-Tag-program"></a>
+<a name="index-_002dt_002c-in-modules-file"></a>
+</dd>
+<dt><code>-t <var>prog</var></code></dt>
+<dd><p>Specify a program <var>prog</var> to run whenever files in a
+module are tagged with <code>rtag</code>.  <var>prog</var> runs
+with two arguments: the module name and the symbolic
+tag specified to <code>rtag</code>.  It is not run
+when <code>tag</code> is executed.  Generally you will find
+that the <samp>taginfo</samp> file is a better solution (see <a 
href="#taginfo">taginfo</a>).
+</p></dd>
+</dl>
+
+<p>You should also see see <a href="#Module-program-options">Module program 
options</a> about how the
+&ldquo;program options&rdquo; programs are run.
+</p>
+
+<hr>
+<a name="Module-program-options"></a>
+<div class="header">
+<p>
+Previous: <a href="#Module-options" accesskey="p" rel="prev">Module 
options</a>, Up: <a href="#modules" accesskey="u" rel="up">modules</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a 
name="How-the-modules-file-_0060_0060program-options_0027_0027-programs-are-run"></a>
+<h4 class="appendixsubsec">C.1.6 How the modules file &ldquo;program 
options&rdquo; programs are run</h4>
+<a name="index-Modules-file-program-options"></a>
+<a name="index-_002dt_002c-in-modules-file-1"></a>
+<a name="index-_002do_002c-in-modules-file-1"></a>
+<a name="index-_002de_002c-in-modules-file-1"></a>
+
+<p>For checkout, rtag, and export, the program is server-based, and as such the
+following applies:-
+</p>
+<p>If using remote access methods (pserver, ext, etc.),
+<small>CVS</small> will execute this program on the server from a temporary
+directory. The path is searched for this program.
+</p>
+<p>If using &ldquo;local access&rdquo; (on a local or remote NFS file system, 
i.e.,
+repository set just to a path),
+the program will be executed from the newly checked-out tree, if
+found there, or alternatively searched for in the path if not.
+</p>
+<p>The programs are all run after the operation has effectively
+completed.
+</p>
+
+<hr>
+<a name="Wrappers"></a>
+<div class="header">
+<p>
+Next: <a href="#Trigger-Scripts" accesskey="n" rel="next">Trigger Scripts</a>, 
Previous: <a href="#modules" accesskey="p" rel="prev">modules</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-cvswrappers-file"></a>
+<h3 class="appendixsec">C.2 The cvswrappers file</h3>
+<a name="index-cvswrappers-_0028admin-file_0029"></a>
+<a name="index-CVSWRAPPERS_002c-environment-variable"></a>
+<a name="index-Wrappers"></a>
+
+
+<p>Wrappers refers to a <small>CVS</small> feature which lets you
+control certain settings based on the name of the file
+which is being operated on.  The settings are &lsquo;<samp>-k</samp>&rsquo;
+for binary files, and &lsquo;<samp>-m</samp>&rsquo; for nonmergeable text
+files.
+</p>
+<p>The &lsquo;<samp>-m</samp>&rsquo; option
+specifies the merge methodology that should be used when
+a non-binary file is updated.  <code>MERGE</code> means the usual
+<small>CVS</small> behavior: try to merge the files.  <code>COPY</code>
+means that <code>cvs update</code> will refuse to merge
+files, as it also does for files specified as binary
+with &lsquo;<samp>-kb</samp>&rsquo; (but if the file is specified as
+binary, there is no need to specify &lsquo;<samp>-m 'COPY'</samp>&rsquo;).
+<small>CVS</small> will provide the user with the
+two versions of the files, and require the user using
+mechanisms outside <small>CVS</small>, to insert any necessary
+changes.
+</p>
+<p><strong>WARNING:  Do not use <code>COPY</code> with
+<small>CVS</small> 1.9 or earlier - such versions of <small>CVS</small> will
+copy one version of your file over the other, wiping
+out the previous contents.</strong>
+The &lsquo;<samp>-m</samp>&rsquo; wrapper option only affects behavior when
+merging is done on update; it does not affect how files
+are stored.  See <a href="#Binary-files">Binary files</a>, for more on
+binary files.
+</p>
+<p>The basic format of the file <samp>cvswrappers</samp> is:
+</p>
+<div class="example">
+<pre class="example">wildcard     [option value][option value]...
+
+where option is one of
+-m           update methodology      value: MERGE or COPY
+-k           keyword expansion       value: expansion mode
+
+and value is a single-quote delimited value.
+</pre></div>
+
+
+<p>For example, the following command imports a
+directory, treating files whose name ends in
+&lsquo;<samp>.exe</samp>&rsquo; as binary:
+</p>
+<div class="example">
+<pre class="example">cvs import -I ! -W &quot;*.exe -k 'b'&quot; first-dir 
vendortag reltag
+</pre></div>
+
+
+<hr>
+<a name="Trigger-Scripts"></a>
+<div class="header">
+<p>
+Next: <a href="#commit-files" accesskey="n" rel="next">commit files</a>, 
Previous: <a href="#Wrappers" accesskey="p" rel="prev">Wrappers</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-Trigger-Scripts"></a>
+<h3 class="appendixsec">C.3 The Trigger Scripts</h3>
+<a name="index-Info-files"></a>
+<a name="index-Trigger-scripts"></a>
+
+<p>Several of the administrative files support triggers, or the launching 
external
+scripts or programs at specific times before or after particular events.  The
+individual files are discussed in the later sections, <a 
href="#commit-files">commit files</a> and
+<a href="#taginfo">taginfo</a>, but some of the common elements are discussed 
here.
+</p>
+<p>All the trigger scripts are launched in a copy of the user sandbox being
+committed, on the server, in client-server mode.  In local mode, the scripts
+are actually launched directly from the user sandbox directory being committed.
+For most intents and purposes, the same scripts can be run in both locations
+without alteration.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#syntax" 
accesskey="1">syntax</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The common syntax
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Trigger-Script-Security" 
accesskey="2">Trigger Script Security</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Trigger script security
+</td></tr>
+</table>
+
+<hr>
+<a name="syntax"></a>
+<div class="header">
+<p>
+Next: <a href="#Trigger-Script-Security" accesskey="n" rel="next">Trigger 
Script Security</a>, Up: <a href="#Trigger-Scripts" accesskey="u" 
rel="up">Trigger Scripts</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-common-syntax"></a>
+<h4 class="appendixsubsec">C.3.1 The common syntax</h4>
+<a name="index-Info-files-_0028syntax_0029"></a>
+<a name="index-Syntax-of-info-files"></a>
+<a name="index-Common-syntax-of-info-files"></a>
+
+
+<p>The administrative files such as <samp>commitinfo</samp>,
+<samp>loginfo</samp>, <samp>rcsinfo</samp>, <samp>verifymsg</samp>, etc.,
+all have a common format.  The purpose of the files are
+described later on.  The common syntax is described
+here.
+</p>
+<a name="index-Regular-expression-syntax"></a>
+<p>Each line contains the following:
+</p><ul>
+<li> A regular expression.  This is a basic regular
+expression in the syntax used by GNU emacs.
+
+</li><li> A whitespace separator&mdash;one or more spaces and/or tabs.
+
+</li><li> A file name or command-line template.
+</li></ul>
+
+<p>Blank lines are ignored.  Lines that start with the
+character &lsquo;<samp>#</samp>&rsquo; are treated as comments.  Long lines
+unfortunately can <em>not</em> be broken in two parts in
+any way.
+</p>
+<p>The first regular expression that matches the current
+directory name in the repository is used.  The rest of the line
+is used as a file name or command-line as appropriate.
+</p>
+
+<hr>
+<a name="Trigger-Script-Security"></a>
+<div class="header">
+<p>
+Previous: <a href="#syntax" accesskey="p" rel="prev">syntax</a>, Up: <a 
href="#Trigger-Scripts" accesskey="u" rel="up">Trigger Scripts</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Security-and-the-Trigger-Scripts"></a>
+<h4 class="appendixsubsec">C.3.2 Security and the Trigger Scripts</h4>
+<a name="index-Info-files_002c-security"></a>
+<a name="index-Trigger-scripts_002c-security"></a>
+
+<p>Security is a huge subject, and implementing a secure system is a 
non-trivial
+task.  This section will barely touch on all the issues involved, but it is
+well to note that, as with any script you will be allowing an untrusted
+user to run on your server, there are measures you can take to help prevent
+your trigger scripts from being abused.
+</p>
+<p>For instance, since the CVS trigger scripts all run in a copy of the 
user&rsquo;s
+sandbox on the server, a naively coded Perl trigger script which attempts to
+use a Perl module that is not installed on the system can be hijacked by any
+user with commit access who is checking in a file with the correct name.  Other
+scripting languages may be vulnerable to similar hacks.
+</p>
+<p>One way to make a script more secure, at least with Perl, is to use scripts
+which invoke the <code>-T</code>, or &quot;taint-check&quot; switch on their 
<code>#!</code> line.
+In the most basic terms, this causes Perl to avoid running code that may have
+come from an external source.  Please run the <code>perldoc perlsec</code> 
command
+for more on Perl security.  Again, other languages may implement other security
+verification hooks which look more or less like Perl&rsquo;s 
&quot;taint-check&quot; mechanism.
+</p>
+<hr>
+<a name="commit-files"></a>
+<div class="header">
+<p>
+Next: <a href="#rcsinfo" accesskey="n" rel="next">rcsinfo</a>, Previous: <a 
href="#Trigger-Scripts" accesskey="p" rel="prev">Trigger Scripts</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-commit-support-files"></a>
+<h3 class="appendixsec">C.4 The commit support files</h3>
+<a name="index-Committing_002c-administrative-support-files"></a>
+
+<p>There are three kinds of trigger scripts (see <a 
href="#Trigger-Scripts">Trigger Scripts</a>) that can be
+run at various times during a commit.  They are specified in files in the
+repository, as described below.  The following table summarizes the
+file names and the purpose of the corresponding programs.
+</p>
+<dl compact="compact">
+<dt><samp>commitinfo</samp></dt>
+<dd><p>The program is responsible for checking that the commit
+is allowed.  If it exits with a non-zero exit status
+the commit will be aborted.
+</p>
+</dd>
+<dt><samp>verifymsg</samp></dt>
+<dd><p>The specified program is used to evaluate the log message,
+and possibly verify that it contains all required
+fields.  This is most useful in combination with the
+<samp>rcsinfo</samp> file, which can hold a log message
+template (see <a href="#rcsinfo">rcsinfo</a>).
+</p>
+</dd>
+<dt><samp>editinfo</samp></dt>
+<dd><p>The specified program is used to edit the log message,
+and possibly verify that it contains all required
+fields.  This is most useful in combination with the
+<samp>rcsinfo</samp> file, which can hold a log message
+template (see <a href="#rcsinfo">rcsinfo</a>).  (obsolete)
+</p>
+</dd>
+<dt><samp>loginfo</samp></dt>
+<dd><p>The specified program is called when the commit is
+complete.  It receives the log message and some
+additional information and can store the log message in
+a file, or mail it to appropriate persons, or maybe
+post it to a local newsgroup, or&hellip;  Your
+imagination is the limit!
+</p></dd>
+</dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#commitinfo" 
accesskey="1">commitinfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Pre-commit checking
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#verifymsg" 
accesskey="2">verifymsg</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">How are log messages evaluated?
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#editinfo" 
accesskey="3">editinfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Specifying how log messages are created
+                                (obsolete)
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#loginfo" 
accesskey="4">loginfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Where should log messages be sent?
+</td></tr>
+</table>
+
+<hr>
+<a name="commitinfo"></a>
+<div class="header">
+<p>
+Next: <a href="#verifymsg" accesskey="n" rel="next">verifymsg</a>, Up: <a 
href="#commit-files" accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Commitinfo"></a>
+<h4 class="appendixsubsec">C.4.1 Commitinfo</h4>
+<a name="index-commitinfo"></a>
+<a name="index-Commits_002c-precommit-verification-of"></a>
+<a name="index-Precommit-checking"></a>
+
+<p>The <samp>commitinfo</samp> file defines programs to execute
+whenever &lsquo;<samp>cvs commit</samp>&rsquo; is about to execute.  These
+programs are used for pre-commit checking to verify
+that the modified, added and removed files are really
+ready to be committed.  This could be used, for
+instance, to verify that the changed files conform to
+to your site&rsquo;s standards for coding practice.
+</p>
+<p>As mentioned earlier, each line in the
+<samp>commitinfo</samp> file consists of a regular expression
+and a command-line template.  The template can include
+a program name and any number of arguments you wish to
+supply to it.  The full path to the current source
+repository is appended to the template, followed by the
+file names of any files involved in the commit (added,
+removed, and modified files).
+</p>
+<a name="index-Exit-status_002c-of-commitinfo"></a>
+<p>The first line with a regular expression matching the
+directory within the repository will be used.  If the
+command returns a non-zero exit status the commit will
+be aborted.
+</p>
+<a name="index-DEFAULT-in-commitinfo"></a>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<a name="index-ALL-in-commitinfo"></a>
+<p>All occurrences of the name &lsquo;<samp>ALL</samp>&rsquo; appearing as a
+regular expression are used in addition to the first
+matching regular expression or the name &lsquo;<samp>DEFAULT</samp>&rsquo;.
+</p>
+<a name="index-commitinfo_002c-working-directory"></a>
+<a name="index-commitinfo_002c-command-environment"></a>
+<p>The command will be run in the root of the workspace
+containing the new versions of any files the user would like
+to modify (commit), <em>or in a copy of the workspace on
+the server (see <a href="#Remote-repositories">Remote repositories</a>)</em>.  
If a file is
+being removed, there will be no copy of the file under the
+current directory.  If a file is being added, there will be
+no corresponding archive file in the repository unless the
+file is being resurrected.
+</p>
+<p>Note that both the repository directory and the corresponding
+Attic (see <a href="#Attic">Attic</a>) directory may need to be checked to
+locate the archive file corresponding to any given file being
+committed.  Much of the information about the specific commit
+request being made, including the destination branch, commit
+message, and command line options specified, is not available
+to the command.
+</p>
+
+<hr>
+<a name="verifymsg"></a>
+<div class="header">
+<p>
+Next: <a href="#editinfo" accesskey="n" rel="next">editinfo</a>, Previous: <a 
href="#commitinfo" accesskey="p" rel="prev">commitinfo</a>, Up: <a 
href="#commit-files" accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Verifying-log-messages"></a>
+<h4 class="appendixsubsec">C.4.2 Verifying log messages</h4>
+<a name="index-verifymsg-_0028admin-file_0029"></a>
+<a name="index-Log-message_002c-verifying"></a>
+
+<p>Once you have entered a log message, you can evaluate
+that message to check for specific content, such as
+a bug ID.  Use the <samp>verifymsg</samp> file to
+specify a program that is used to verify the log message.
+This program could be a simple script that checks
+that the entered message contains the required fields.
+</p>
+<p>The <samp>verifymsg</samp> file is often most useful together
+with the <samp>rcsinfo</samp> file, which can be used to
+specify a log message template.
+</p>
+<p>Each line in the <samp>verifymsg</samp> file consists of a
+regular expression and a command-line template.  The
+template must include a program name, and can include
+any number of arguments.  The full path to the current
+log message template file is appended to the template.
+</p>
+<p>One thing that should be noted is that the &lsquo;<samp>ALL</samp>&rsquo;
+keyword is not supported.  If more than one matching
+line is found, the first one is used.  This can be
+useful for specifying a default verification script in a
+directory, and then overriding it in a subdirectory.
+</p>
+<a name="index-DEFAULT-in-verifymsg"></a>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<a name="index-Exit-status_002c-of-verifymsg"></a>
+<p>If the verification script exits with a non-zero exit status,
+the commit is aborted.
+</p>
+<a name="index-verifymsg_002c-changing-the-log-message"></a>
+<p>In the default configuration, CVS allows the
+verification script to change the log message. This is
+controlled via the RereadLogAfterVerify CVSROOT/config
+option.
+</p>
+<p>When &lsquo;<samp>RereadLogAfterVerify=always</samp>&rsquo; or
+&lsquo;<samp>RereadLogAfterVerify=stat</samp>&rsquo;, the log message will
+either always be reread after the verification script
+is run or reread only if the log message file status
+has changed.
+</p>
+<p>See <a href="#config">config</a>, for more on CVSROOT/config options.
+</p>
+<p>It is NOT a good idea for a <samp>verifymsg</samp> script to
+interact directly with the user in the various
+client/server methods. For the <code>pserver</code> method,
+there is no protocol support for communicating between
+<samp>verifymsg</samp> and the client on the remote end. For the
+<code>ext</code> and <code>server</code> methods, it is possible
+for CVS to become confused by the characters going
+along the same channel as the CVS protocol
+messages. See <a href="#Remote-repositories">Remote repositories</a>, for more
+information on client/server setups.  In addition, at the time
+the <samp>verifymsg</samp> script runs, the CVS
+server has locks in place in the repository.  If control is
+returned to the user here then other users may be stuck waiting
+for access to the repository.
+</p>
+<p>This option can be useful if you find yourself using an
+rcstemplate that needs to be modified to remove empty
+elements or to fill in default values.  It can also be
+useful if the rcstemplate has changed in the repository
+and the CVS/Template was not updated, but is able to be
+adapted to the new format by the verification script
+that is run by <samp>verifymsg</samp>.
+</p>
+<p>An example of an update might be to change all
+occurrences of &rsquo;BugId:&rsquo; to be &rsquo;DefectId:&rsquo; (which can be
+useful if the rcstemplate has recently been changed and
+there are still checked-out user trees with cached
+copies in the CVS/Template file of the older version).
+</p>
+<p>Another example of an update might be to delete a line
+that contains &rsquo;BugID: none&rsquo; from the log message after
+validation of that value as being allowed is made.
+</p>
+<p>The following is a little silly example of a
+<samp>verifymsg</samp> file, together with the corresponding
+<samp>rcsinfo</samp> file, the log message template and an
+verification  script.  We begin with the log message template.
+We want to always record a bug-id number on the first
+line of the log message.  The rest of log message is
+free text.  The following template is found in the file
+<samp>/usr/cvssupport/tc.template</samp>.
+</p>
+<div class="example">
+<pre class="example">BugId:
+</pre></div>
+
+<p>The script <samp>/usr/cvssupport/bugid.verify</samp> is used to
+evaluate the log message.
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+#
+#       bugid.verify filename
+#
+#  Verify that the log message contains a valid bugid
+#  on the first line.
+#
+if sed 1q &lt; $1 | grep '^BugId:[ ]*[0-9][0-9]*$' &gt; /dev/null; then
+    exit 0
+elif sed 1q &lt; $1 | grep '^BugId:[ ]*none$' &gt; /dev/null; then
+    # It is okay to allow commits with 'BugId: none',
+    # but do not put that text into the real log message.
+    grep -v '^BugId:[ ]*none$' &gt; $1.rewrite
+    mv $1.rewrite $1
+    exit 0
+else
+    echo &quot;No BugId found.&quot;
+    exit 1
+fi
+</pre></div>
+
+<p>The <samp>verifymsg</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/bugid.verify
+</pre></div>
+
+<p>The <samp>rcsinfo</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/tc.template
+</pre></div>
+
+<p>The <samp>config</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">RereadLogAfterVerify=always
+</pre></div>
+
+
+
+<hr>
+<a name="editinfo"></a>
+<div class="header">
+<p>
+Next: <a href="#loginfo" accesskey="n" rel="next">loginfo</a>, Previous: <a 
href="#verifymsg" accesskey="p" rel="prev">verifymsg</a>, Up: <a 
href="#commit-files" accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Editinfo"></a>
+<h4 class="appendixsubsec">C.4.3 Editinfo</h4>
+<a name="index-editinfo-_0028admin-file_0029"></a>
+<a name="index-Editor_002c-specifying-per-module"></a>
+<a name="index-Per_002dmodule-editor"></a>
+<a name="index-Log-messages_002c-editing"></a>
+
+<p><strong>The <samp>editinfo</samp> feature has been
+rendered obsolete.  To set a default editor for log
+messages use the <code>CVSEDITOR</code>, <code>EDITOR</code> environment 
variables
+(see <a href="#Environment-variables">Environment variables</a>) or the 
&lsquo;<samp>-e</samp>&rsquo; global
+option (see <a href="#Global-options">Global options</a>).  See <a 
href="#verifymsg">verifymsg</a>,
+for information on the use of the <samp>verifymsg</samp>
+feature for evaluating log messages.</strong>
+</p>
+<p>If you want to make sure that all log messages look the
+same way, you can use the <samp>editinfo</samp> file to
+specify a program that is used to edit the log message.
+This program could be a custom-made editor that always
+enforces a certain style of the log message, or maybe a
+simple shell script that calls an editor, and checks
+that the entered message contains the required fields.
+</p>
+<p>If no matching line is found in the <samp>editinfo</samp>
+file, the editor specified in the environment variable
+<code>$CVSEDITOR</code> is used instead.  If that variable is
+not set, then the environment variable <code>$EDITOR</code>
+is used instead.  If that variable is not
+set a default will be used.  See <a href="#Committing-your-changes">Committing 
your changes</a>.
+</p>
+<p>The <samp>editinfo</samp> file is often most useful together
+with the <samp>rcsinfo</samp> file, which can be used to
+specify a log message template.
+</p>
+<p>Each line in the <samp>editinfo</samp> file consists of a
+regular expression and a command-line template.  The
+template must include a program name, and can include
+any number of arguments.  The full path to the current
+log message template file is appended to the template.
+</p>
+<p>One thing that should be noted is that the &lsquo;<samp>ALL</samp>&rsquo;
+keyword is not supported.  If more than one matching
+line is found, the first one is used.  This can be
+useful for specifying a default edit script in a
+module, and then overriding it in a subdirectory.
+</p>
+<a name="index-DEFAULT-in-editinfo"></a>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<p>If the edit script exits with a non-zero exit status,
+the commit is aborted.
+</p>
+<p>Note: when <small>CVS</small> is accessing a remote repository,
+or when the &lsquo;<samp>-m</samp>&rsquo; or &lsquo;<samp>-F</samp>&rsquo; 
options to <code>cvs
+commit</code> are used, <samp>editinfo</samp> will not be consulted.
+There is no good workaround for this; use
+<samp>verifymsg</samp> instead.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#editinfo-example" 
accesskey="1">editinfo example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Editinfo example
+</td></tr>
+</table>
+
+<hr>
+<a name="editinfo-example"></a>
+<div class="header">
+<p>
+Up: <a href="#editinfo" accesskey="u" rel="up">editinfo</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Editinfo-example"></a>
+<h4 class="appendixsubsubsec">C.4.3.1 Editinfo example</h4>
+
+<p>The following is a little silly example of a
+<samp>editinfo</samp> file, together with the corresponding
+<samp>rcsinfo</samp> file, the log message template and an
+editor script.  We begin with the log message template.
+We want to always record a bug-id number on the first
+line of the log message.  The rest of log message is
+free text.  The following template is found in the file
+<samp>/usr/cvssupport/tc.template</samp>.
+</p>
+<div class="example">
+<pre class="example">BugId:
+</pre></div>
+
+<p>The script <samp>/usr/cvssupport/bugid.edit</samp> is used to
+edit the log message.
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+#
+#       bugid.edit filename
+#
+#  Call $EDITOR on FILENAME, and verify that the
+#  resulting file contains a valid bugid on the first
+#  line.
+if [ &quot;x$EDITOR&quot; = &quot;x&quot; ]; then EDITOR=vi; fi
+if [ &quot;x$CVSEDITOR&quot; = &quot;x&quot; ]; then CVSEDITOR=$EDITOR; fi
+$CVSEDITOR $1
+until head -1|grep '^BugId:[ ]*[0-9][0-9]*$' &lt; $1
+do  echo -n  &quot;No BugId found.  Edit again? ([y]/n)&quot;
+    read ans
+    case ${ans} in
+        n*) exit 1;;
+    esac
+    $CVSEDITOR $1
+done
+</pre></div>
+
+<p>The <samp>editinfo</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/bugid.edit
+</pre></div>
+
+<p>The <samp>rcsinfo</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/tc.template
+</pre></div>
+
+<hr>
+<a name="loginfo"></a>
+<div class="header">
+<p>
+Previous: <a href="#editinfo" accesskey="p" rel="prev">editinfo</a>, Up: <a 
href="#commit-files" accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Loginfo"></a>
+<h4 class="appendixsubsec">C.4.4 Loginfo</h4>
+<a name="index-loginfo-_0028admin-file_0029"></a>
+<a name="index-Storing-log-messages"></a>
+<a name="index-Mailing-log-messages"></a>
+<a name="index-Distributing-log-messages"></a>
+<a name="index-Log-messages"></a>
+
+<p>The <samp>loginfo</samp> file is used to control where
+&lsquo;<samp>cvs commit</samp>&rsquo; log information is sent.  The first
+entry on a line is a regular expression which is tested
+against the directory that the change is being made to,
+relative to the <code>$CVSROOT</code>.  If a match is found, then
+the remainder of the line is a filter program that
+should expect log information on its standard input.
+Note that the filter program <strong>must</strong> read <strong>all</strong>
+of the log information or <small>CVS</small> may fail with a broken pipe 
signal.
+</p>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<p>All occurrences of the name &lsquo;<samp>ALL</samp>&rsquo; appearing as a
+regular expression are used in addition to the first
+matching regular expression or &lsquo;<samp>DEFAULT</samp>&rsquo;.
+</p>
+<p>The first matching regular expression is used.
+</p>
+<p>See <a href="#commit-files">commit files</a>, for a description of the 
syntax of
+the <samp>loginfo</samp> file.
+</p>
+<p>The user may specify a format string as
+part of the filter.  The string is composed of a
+&lsquo;<samp>%</samp>&rsquo; followed by a space, or followed by a single
+format character, or followed by a set of format
+characters surrounded by &lsquo;<samp>{</samp>&rsquo; and 
&lsquo;<samp>}</samp>&rsquo; as
+separators.  The format characters are:
+</p>
+<dl compact="compact">
+<dt><tt>s</tt></dt>
+<dd><p>file name
+</p></dd>
+<dt><tt>V</tt></dt>
+<dd><p>old version number (pre-checkin)
+</p></dd>
+<dt><tt>v</tt></dt>
+<dd><p>new version number (post-checkin)
+</p></dd>
+</dl>
+
+<p>All other characters that appear in a format string
+expand to an empty field (commas separating fields are
+still provided).
+</p>
+<p>For example, some valid format strings are &lsquo;<samp>%</samp>&rsquo;,
+&lsquo;<samp>%s</samp>&rsquo;, &lsquo;<samp>%{s}</samp>&rsquo;, and 
&lsquo;<samp>%{sVv}</samp>&rsquo;.
+</p>
+<p>The output will be a space separated string of tokens enclosed in
+quotation marks (<tt>&quot;</tt>).
+Any embedded dollar signs (<tt>$</tt>), backticks (<tt>`</tt>),
+backslashes (<tt>\</tt>), or quotation marks will be preceded
+by a backslash (this allows the shell to correctly parse it
+as a single string, reguardless of the characters it contains).
+For backwards compatibility, the first
+token will be the repository subdirectory.  The rest of the
+tokens will be comma-delimited lists of the information
+requested in the format string.  For example, if
+&lsquo;<samp>/u/src/master/yoyodyne/tc</samp>&rsquo; is the repository, 
&lsquo;<samp>%{sVv}</samp>&rsquo;
+is the format string, and three files (<tt>ChangeLog</tt>,
+<tt>Makefile</tt>, <tt>foo.c</tt>) were modified, the output
+might be:
+</p>
+<div class="example">
+<pre class="example">&quot;yoyodyne/tc ChangeLog,1.1,1.2 Makefile,1.3,1.4 
foo.c,1.12,1.13&quot;
+</pre></div>
+
+<p>As another example, &lsquo;<samp>%{}</samp>&rsquo; means that only the
+name of the repository will be generated.
+</p>
+<p>Note: when <small>CVS</small> is accessing a remote repository,
+<samp>loginfo</samp> will be run on the <em>remote</em>
+(i.e., server) side, not the client side (see <a 
href="#Remote-repositories">Remote repositories</a>).
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#loginfo-example" 
accesskey="1">loginfo example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Loginfo example
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Keeping-a-checked-out-copy" 
accesskey="2">Keeping a checked out copy</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Updating a tree on every checkin
+</td></tr>
+</table>
+
+<hr>
+<a name="loginfo-example"></a>
+<div class="header">
+<p>
+Next: <a href="#Keeping-a-checked-out-copy" accesskey="n" rel="next">Keeping a 
checked out copy</a>, Up: <a href="#loginfo" accesskey="u" rel="up">loginfo</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Loginfo-example"></a>
+<h4 class="appendixsubsubsec">C.4.4.1 Loginfo example</h4>
+
+<p>The following <samp>loginfo</samp> file, together with the
+tiny shell-script below, appends all log messages
+to the file <samp>$CVSROOT/CVSROOT/commitlog</samp>,
+and any commits to the administrative files (inside
+the <samp>CVSROOT</samp> directory) are also logged in
+<samp>/usr/adm/cvsroot-log</samp>.
+Commits to the <samp>prog1</samp> directory are mailed to <tt>ceder</tt>.
+</p>
+<div class="example">
+<pre class="example">ALL             /usr/local/bin/cvs-log 
$CVSROOT/CVSROOT/commitlog $USER
+^CVSROOT        /usr/local/bin/cvs-log /usr/adm/cvsroot-log
+^prog1          Mail -s %s ceder
+</pre></div>
+
+<p>The shell-script <samp>/usr/local/bin/cvs-log</samp> looks
+like this:
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+(echo &quot;------------------------------------------------------&quot;;
+ echo -n $2&quot;  &quot;;
+ date;
+ echo;
+ cat) &gt;&gt; $1
+</pre></div>
+
+<hr>
+<a name="Keeping-a-checked-out-copy"></a>
+<div class="header">
+<p>
+Previous: <a href="#loginfo-example" accesskey="p" rel="prev">loginfo 
example</a>, Up: <a href="#loginfo" accesskey="u" rel="up">loginfo</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Keeping-a-checked-out-copy-1"></a>
+<h4 class="appendixsubsubsec">C.4.4.2 Keeping a checked out copy</h4>
+
+<a name="index-Keeping-a-checked-out-copy"></a>
+<a name="index-Checked-out-copy_002c-keeping"></a>
+<a name="index-Web-pages_002c-maintaining-with-CVS"></a>
+
+<p>It is often useful to maintain a directory tree which
+contains files which correspond to the latest version
+in the repository.  For example, other developers might
+want to refer to the latest sources without having to
+check them out, or you might be maintaining a web site
+with <small>CVS</small> and want every checkin to cause the files
+used by the web server to be updated.
+</p>
+<p>The way to do this is by having loginfo invoke
+<code>cvs update</code>.  Doing so in the naive way will
+cause a problem with locks, so the <code>cvs update</code>
+must be run in the background.
+Here is an example for unix (this should all be on one line):
+</p>
+<div class="example">
+<pre class="example">^cyclic-pages             (date; cat; (sleep 2; cd 
/u/www/local-docs;
+ cvs -q update -d) &amp;) &gt;&gt; $CVSROOT/CVSROOT/updatelog 2&gt;&amp;1
+</pre></div>
+
+<p>This will cause checkins to repository directories
+starting with <code>cyclic-pages</code> to update the checked
+out tree in <samp>/u/www/local-docs</samp>.
+</p>
+<hr>
+<a name="rcsinfo"></a>
+<div class="header">
+<p>
+Next: <a href="#taginfo" accesskey="n" rel="next">taginfo</a>, Previous: <a 
href="#commit-files" accesskey="p" rel="prev">commit files</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Rcsinfo"></a>
+<h3 class="appendixsec">C.5 Rcsinfo</h3>
+<a name="index-rcsinfo-_0028admin-file_0029"></a>
+<a name="index-Form-for-log-message"></a>
+<a name="index-Log-message-template"></a>
+<a name="index-Template-for-log-message"></a>
+
+<p>The <samp>rcsinfo</samp> file can be used to specify a form to
+edit when filling out the commit log.  The
+<samp>rcsinfo</samp> file has a syntax similar to the
+<samp>verifymsg</samp>, <samp>commitinfo</samp> and <samp>loginfo</samp>
+files.  See <a href="#syntax">syntax</a>.  Unlike the other files the second
+part is <em>not</em> a command-line template.  Instead,
+the part after the regular expression should be a full pathname to
+a file containing the log message template.
+</p>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<p>All occurrences of the name &lsquo;<samp>ALL</samp>&rsquo; appearing as a
+regular expression are used in addition to the first
+matching regular expression or &lsquo;<samp>DEFAULT</samp>&rsquo;.
+</p>
+<p>The log message template will be used as a default log
+message.  If you specify a log message with &lsquo;<samp>cvs
+commit -m <var>message</var></samp>&rsquo; or &lsquo;<samp>cvs commit -f
+<var>file</var></samp>&rsquo; that log message will override the
+template.
+</p>
+<p>See <a href="#verifymsg">verifymsg</a>, for an example <samp>rcsinfo</samp>
+file.
+</p>
+<p>When <small>CVS</small> is accessing a remote repository,
+the contents of <samp>rcsinfo</samp> at the time a directory
+is first checked out will specify a template which does
+not then change.  If you edit <samp>rcsinfo</samp> or its
+templates, you may need to check out a new working
+directory.
+</p>
+<hr>
+<a name="taginfo"></a>
+<div class="header">
+<p>
+Next: <a href="#cvsignore" accesskey="n" rel="next">cvsignore</a>, Previous: 
<a href="#rcsinfo" accesskey="p" rel="prev">rcsinfo</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Taginfo"></a>
+<h3 class="appendixsec">C.6 Taginfo</h3>
+<a name="index-taginfo-_0028admin-file_0029"></a>
+<a name="index-Tags_002c-logging"></a>
+<a name="index-Tags_002c-verifying"></a>
+<p>The <samp>taginfo</samp> file defines programs to execute
+when someone executes a <code>tag</code> or <code>rtag</code>
+command.  The <samp>taginfo</samp> file has the standard form
+for trigger scripts (see <a href="#Trigger-Scripts">Trigger Scripts</a>),
+where each line is a regular expression
+followed by a command to execute (see <a href="#syntax">syntax</a>).  The 
arguments passed
+to the command are, in order, the <var>tagname</var>,
+<var>operation</var> (<code>add</code> for <code>tag</code>,
+<code>mov</code> for <code>tag -F</code>, and <code>del</code> for
+<code>tag -d</code>), <var>repository</var>, and any remaining are
+pairs of <var>filename</var> <var>revision</var>.  A non-zero
+exit of the filter program will cause the tag to be
+aborted.
+</p>
+<p>Here is an example of using the <samp>taginfo</samp> file
+to log <code>tag</code> and <code>rtag</code>
+commands.  In the <samp>taginfo</samp> file put:
+</p>
+<div class="example">
+<pre class="example">ALL /usr/local/cvsroot/CVSROOT/loggit
+</pre></div>
+
+<p>Where <samp>/usr/local/cvsroot/CVSROOT/loggit</samp> contains the
+following script:
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+echo &quot;$@&quot; &gt;&gt;/home/kingdon/cvsroot/CVSROOT/taglog
+</pre></div>
+
+<hr>
+<a name="cvsignore"></a>
+<div class="header">
+<p>
+Next: <a href="#checkoutlist" accesskey="n" rel="next">checkoutlist</a>, 
Previous: <a href="#taginfo" accesskey="p" rel="prev">taginfo</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Ignoring-files-via-cvsignore"></a>
+<h3 class="appendixsec">C.7 Ignoring files via cvsignore</h3>
+<a name="index-cvsignore-_0028admin-file_0029_002c-global"></a>
+<a name="index-Global-cvsignore"></a>
+<a name="index-Ignoring-files"></a>
+
+<p>There are certain file names that frequently occur
+inside your working copy, but that you don&rsquo;t want to
+put under <small>CVS</small> control.  Examples are all the object
+files that you get while you compile your sources.
+Normally, when you run &lsquo;<samp>cvs update</samp>&rsquo;, it prints a
+line for each file it encounters that it doesn&rsquo;t know
+about (see <a href="#update-output">update output</a>).
+</p>
+<p><small>CVS</small> has a list of files (or sh(1) file name patterns)
+that it should ignore while running <code>update</code>,
+<code>import</code> and <code>release</code>.
+This list is constructed in the following way.
+</p>
+<ul>
+<li> The list is initialized to include certain file name
+patterns: names associated with <small>CVS</small>
+administration, or with other common source control
+systems; common names for patch files, object files,
+archive files, and editor backup files; and other names
+that are usually artifacts of assorted utilities.
+Currently, the default list of ignored file name
+patterns is:
+
+<a name="index-Ignored-files"></a>
+<a name="index-Automatically-ignored-files"></a>
+<div class="example">
+<pre class="example">    RCS     SCCS    CVS     CVS.adm
+    RCSLOG  cvslog.*
+    tags    TAGS
+    .make.state     .nse_depinfo
+    *~      #*      .#*     ,*      _$*     *$
+    *.old   *.bak   *.BAK   *.orig  *.rej   .del-*
+    *.a     *.olb   *.o     *.obj   *.so    *.exe
+    *.Z     *.elc   *.ln
+    core
+</pre></div>
+
+</li><li> The per-repository list in
+<samp>$CVSROOT/CVSROOT/cvsignore</samp> is appended to
+the list, if that file exists.
+
+</li><li> The per-user list in <samp>.cvsignore</samp> in your home
+directory is appended to the list, if it exists.
+
+</li><li> Any entries in the environment variable
+<code>$CVSIGNORE</code> is appended to the list.
+
+</li><li> Any &lsquo;<samp>-I</samp>&rsquo; options given to 
<small>CVS</small> is appended.
+
+</li><li> As <small>CVS</small> traverses through your directories, the 
contents
+of any <samp>.cvsignore</samp> will be appended to the list.
+The patterns found in <samp>.cvsignore</samp> are only valid
+for the directory that contains them, not for
+any sub-directories.
+</li></ul>
+
+<p>In any of the 5 places listed above, a single
+exclamation mark (&lsquo;<samp>!</samp>&rsquo;) clears the ignore list.
+This can be used if you want to store any file which
+normally is ignored by <small>CVS</small>.
+</p>
+<p>Specifying &lsquo;<samp>-I !</samp>&rsquo; to <code>cvs import</code> will 
import
+everything, which is generally what you want to do if
+you are importing files from a pristine distribution or
+any other source which is known to not contain any
+extraneous files.  However, looking at the rules above
+you will see there is a fly in the ointment; if the
+distribution contains any <samp>.cvsignore</samp> files, then
+the patterns from those files will be processed even if
+&lsquo;<samp>-I !</samp>&rsquo; is specified.  The only workaround is to
+remove the <samp>.cvsignore</samp> files in order to do the
+import.  Because this is awkward, in the future
+&lsquo;<samp>-I !</samp>&rsquo; might be modified to override
+<samp>.cvsignore</samp> files in each directory.
+</p>
+<p>Note that the syntax of the ignore files consists of a
+series of lines, each of which contains a space
+separated list of filenames.  This offers no clean way
+to specify filenames which contain spaces, but you can
+use a workaround like <samp>foo?bar</samp> to match a file
+named <samp>foo bar</samp> (it also matches <samp>fooxbar</samp>
+and the like).  Also note that there is currently no
+way to specify comments.
+</p>
+<hr>
+<a name="checkoutlist"></a>
+<div class="header">
+<p>
+Next: <a href="#history-file" accesskey="n" rel="next">history file</a>, 
Previous: <a href="#cvsignore" accesskey="p" rel="prev">cvsignore</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-checkoutlist-file"></a>
+<h3 class="appendixsec">C.8 The checkoutlist file</h3>
+<a name="index-checkoutlist"></a>
+
+<p>It may be helpful to use <small>CVS</small> to maintain your own
+files in the <samp>CVSROOT</samp> directory.  For example,
+suppose that you have a script <samp>logcommit.pl</samp>
+which you run by including the following line in the
+<samp>commitinfo</samp> administrative file:
+</p>
+<div class="example">
+<pre class="example">ALL   $CVSROOT/CVSROOT/logcommit.pl
+</pre></div>
+
+<p>To maintain <samp>logcommit.pl</samp> with <small>CVS</small> you would
+add the following line to the <samp>checkoutlist</samp>
+administrative file:
+</p>
+<div class="example">
+<pre class="example">logcommit.pl
+</pre></div>
+
+<p>The format of <samp>checkoutlist</samp> is one line for each
+file that you want to maintain using <small>CVS</small>, giving
+the name of the file, followed optionally by more whitespace
+and any error message that should print if the file cannot be
+checked out into CVSROOT after a commit:
+</p>
+<div class="example">
+<pre class="example">logcommit.pl      Could not update CVSROOT/logcommit.pl.
+</pre></div>
+
+<p>After setting up <samp>checkoutlist</samp> in this fashion,
+the files listed there will function just like
+<small>CVS</small>&rsquo;s built-in administrative files.  For example,
+when checking in one of the files you should get a
+message such as:
+</p>
+<div class="example">
+<pre class="example">cvs commit: Rebuilding administrative file database
+</pre></div>
+
+<p>and the checked out copy in the <samp>CVSROOT</samp>
+directory should be updated.
+</p>
+<p>Note that listing <samp>passwd</samp> (see <a 
href="#Password-authentication-server">Password authentication server</a>) in 
<samp>checkoutlist</samp> is not
+recommended for security reasons.
+</p>
+<p>For information about keeping a checkout out copy in a
+more general context than the one provided by
+<samp>checkoutlist</samp>, see <a href="#Keeping-a-checked-out-copy">Keeping a 
checked out copy</a>.
+</p>
+<hr>
+<a name="history-file"></a>
+<div class="header">
+<p>
+Next: <a href="#Variables" accesskey="n" rel="next">Variables</a>, Previous: 
<a href="#checkoutlist" accesskey="p" rel="prev">checkoutlist</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-history-file"></a>
+<h3 class="appendixsec">C.9 The history file</h3>
+<a name="index-History-file"></a>
+<a name="index-Log-information_002c-saving"></a>
+
+<p>The file <samp>$CVSROOT/CVSROOT/history</samp> is used
+to log information for the <code>history</code> command
+(see <a href="#history">history</a>).  This file must be created to turn
+on logging.  This is done automatically if the
+<code>cvs init</code> command is used to set up the
+repository (see <a href="#Creating-a-repository">Creating a repository</a>).
+</p>
+<p>The file format of the <samp>history</samp> file is
+documented only in comments in the <small>CVS</small> source
+code, but generally programs should use the <code>cvs
+history</code> command to access it anyway, in case the
+format changes with future releases of <small>CVS</small>.
+</p>
+<hr>
+<a name="Variables"></a>
+<div class="header">
+<p>
+Next: <a href="#config" accesskey="n" rel="next">config</a>, Previous: <a 
href="#history-file" accesskey="p" rel="prev">history file</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Expansions-in-administrative-files"></a>
+<h3 class="appendixsec">C.10 Expansions in administrative files</h3>
+<a name="index-Internal-variables"></a>
+<a name="index-Variables"></a>
+
+<p>Sometimes in writing an administrative file, you might
+want the file to be able to know various things based
+on environment <small>CVS</small> is running in.  There are
+several mechanisms to do that.
+</p>
+<p>To find the home directory of the user running <small>CVS</small>
+(from the <code>HOME</code> environment variable), use
+&lsquo;<samp>~</samp>&rsquo; followed by &lsquo;<samp>/</samp>&rsquo; or the 
end of the line.
+Likewise for the home directory of <var>user</var>, use
+&lsquo;<samp>~<var>user</var></samp>&rsquo;.  These variables are expanded on
+the server machine, and don&rsquo;t get any reasonable
+expansion if pserver (see <a href="#Password-authenticated">Password 
authenticated</a>)
+is in use; therefore user variables (see below) may be
+a better choice to customize behavior based on the user
+running <small>CVS</small>.
+</p>
+<p>One may want to know about various pieces of
+information internal to <small>CVS</small>.  A <small>CVS</small> internal
+variable has the syntax <code>${<var>variable</var>}</code>,
+where <var>variable</var> starts with a letter and consists
+of alphanumeric characters and &lsquo;<samp>_</samp>&rsquo;.  If the
+character following <var>variable</var> is a
+non-alphanumeric character other than &lsquo;<samp>_</samp>&rsquo;, the
+&lsquo;<samp>{</samp>&rsquo; and &lsquo;<samp>}</samp>&rsquo; can be omitted.  
The <small>CVS</small>
+internal variables are:
+</p>
+<dl compact="compact">
+<dt><code>CVSROOT</code></dt>
+<dd><a name="index-CVSROOT_002c-internal-variable"></a>
+<p>This is the absolute path to the current <small>CVS</small> root directory.
+See <a href="#Repository">Repository</a>, for a description of the various
+ways to specify this, but note that the internal
+variable contains just the directory and not any
+of the access method information.
+</p>
+</dd>
+<dt><code>RCSBIN</code></dt>
+<dd><a name="index-RCSBIN_002c-internal-variable"></a>
+<p>In <small>CVS</small> 1.9.18 and older, this specified the
+directory where <small>CVS</small> was looking for <small>RCS</small>
+programs.  Because <small>CVS</small> no longer runs <small>RCS</small>
+programs, specifying this internal variable is now an
+error.
+</p>
+</dd>
+<dt><code>CVSEDITOR</code></dt>
+<dd><a name="index-CVSEDITOR_002c-internal-variable"></a>
+</dd>
+<dt><code>EDITOR</code></dt>
+<dd><a name="index-EDITOR_002c-internal-variable"></a>
+</dd>
+<dt><code>VISUAL</code></dt>
+<dd><a name="index-VISUAL_002c-internal-variable"></a>
+<p>These all expand to the same value, which is the editor
+that <small>CVS</small> is using.  See <a href="#Global-options">Global 
options</a>, for how
+to specify this.
+</p>
+</dd>
+<dt><code>USER</code></dt>
+<dd><a name="index-USER_002c-internal-variable"></a>
+<p>Username of the user running <small>CVS</small> (on the <small>CVS</small>
+server machine).
+When using pserver, this is the user specified in the repository
+specification which need not be the same as the username the
+server is running as (see <a href="#Password-authentication-server">Password 
authentication server</a>).
+Do not confuse this with the environment variable of the same name.
+</p></dd>
+</dl>
+
+<p>If you want to pass a value to the administrative files
+which the user who is running <small>CVS</small> can specify,
+use a user variable.
+<a name="index-User-variables"></a>
+To expand a user variable, the
+administrative file contains
+<code>${=<var>variable</var>}</code>.  To set a user variable,
+specify the global option &lsquo;<samp>-s</samp>&rsquo; to <small>CVS</small>, 
with
+argument <code><var>variable</var>=<var>value</var></code>.  It may be
+particularly useful to specify this option via
+<samp>.cvsrc</samp> (see <a href="#g_t_007e_002f_002ecvsrc">~/.cvsrc</a>).
+</p>
+<p>For example, if you want the administrative file to
+refer to a test directory you might create a user
+variable <code>TESTDIR</code>.  Then if <small>CVS</small> is invoked
+as
+</p>
+<div class="example">
+<pre class="example">cvs -s TESTDIR=/work/local/tests
+</pre></div>
+
+<p>and the
+administrative file contains <code>sh
+${=TESTDIR}/runtests</code>, then that string is expanded
+to <code>sh /work/local/tests/runtests</code>.
+</p>
+<p>All other strings containing &lsquo;<samp>$</samp>&rsquo; are reserved;
+there is no way to quote a &lsquo;<samp>$</samp>&rsquo; character so that
+&lsquo;<samp>$</samp>&rsquo; represents itself.
+</p>
+<p>Environment variables passed to administrative files are:
+</p>
+<dl compact="compact">
+<dd><a 
name="index-environment-variables_002c-passed-to-administrative-files"></a>
+
+</dd>
+<dt><code>CVS_USER</code></dt>
+<dd><a name="index-CVS_005fUSER_002c-environment-variable"></a>
+<p>The <small>CVS</small>-specific username provided by the user, if it
+can be provided (currently just for the pserver access
+method), and to the empty string otherwise.  (<code>CVS_USER</code>
+and <code>USER</code> may differ when <samp>$CVSROOT/CVSROOT/passwd</samp>
+is used to map <small>CVS</small> usernames to system usernames.)
+</p>
+</dd>
+<dt><code>LOGNAME</code></dt>
+<dd><a name="index-LOGNAME_002c-environment-variable"></a>
+<p>The username of the system user.
+</p>
+</dd>
+<dt><code>USER</code></dt>
+<dd><a name="index-USER_002c-environment-variable"></a>
+<p>Same as <code>LOGNAME</code>.
+Do not confuse this with the internal variable of the same name.
+</p></dd>
+</dl>
+
+<hr>
+<a name="config"></a>
+<div class="header">
+<p>
+Previous: <a href="#Variables" accesskey="p" rel="prev">Variables</a>, Up: <a 
href="#Administrative-files" accesskey="u" rel="up">Administrative files</a> 
&nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="The-CVSROOT_002fconfig-configuration-file"></a>
+<h3 class="appendixsec">C.11 The CVSROOT/config configuration file</h3>
+
+<a name="index-config_002c-in-CVSROOT"></a>
+<a name="index-CVSROOT_002fconfig"></a>
+
+<p>The administrative file <samp>config</samp> contains various
+miscellaneous settings which affect the behavior of
+<small>CVS</small>.  The syntax is slightly different from the
+other administrative files.  Variables are not
+expanded.  Lines which start with &lsquo;<samp>#</samp>&rsquo; are
+considered comments.
+Other lines consist of a keyword, &lsquo;<samp>=</samp>&rsquo;, and a
+value.  Note that this syntax is very strict.
+Extraneous spaces or tabs are not permitted.
+</p>
+<p>Currently defined keywords are:
+</p>
+<dl compact="compact">
+<dd><a name="index-RCSBIN_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>RCSBIN=<var>bindir</var></code></dt>
+<dd><p>For <small>CVS</small> 1.9.12 through 1.9.18, this setting told
+<small>CVS</small> to look for <small>RCS</small> programs in the
+<var>bindir</var> directory.  Current versions of <small>CVS</small>
+do not run <small>RCS</small> programs; for compatibility this
+setting is accepted, but it does nothing.
+</p>
+<a name="index-SystemAuth_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>SystemAuth=<var>value</var></code></dt>
+<dd><p>If <var>value</var> is &lsquo;<samp>yes</samp>&rsquo;, then pserver 
should check
+for users in the system&rsquo;s user database if not found in
+<samp>CVSROOT/passwd</samp>.  If it is &lsquo;<samp>no</samp>&rsquo;, then all
+pserver users must exist in <samp>CVSROOT/passwd</samp>.
+The default is &lsquo;<samp>yes</samp>&rsquo;.  For more on pserver, see
+<a href="#Password-authenticated">Password authenticated</a>.
+</p>
+
+<a name="index-TopLevelAdmin_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>TopLevelAdmin=<var>value</var></code></dt>
+<dd><p>Modify the &lsquo;<samp>checkout</samp>&rsquo; command to create a
+&lsquo;<samp>CVS</samp>&rsquo; directory at the top level of the new
+working directory, in addition to &lsquo;<samp>CVS</samp>&rsquo;
+directories created within checked-out directories.
+The default value is &lsquo;<samp>no</samp>&rsquo;.
+</p>
+<p>This option is useful if you find yourself performing
+many commands at the top level of your working
+directory, rather than in one of the checked out
+subdirectories.  The <samp>CVS</samp> directory created there
+will mean you don&rsquo;t have to specify <code>CVSROOT</code> for
+each command.  It also provides a place for the
+<samp>CVS/Template</samp> file (see <a 
href="#Working-directory-storage">Working directory storage</a>).
+</p>
+<a name="index-LockDir_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>LockDir=<var>directory</var></code></dt>
+<dd><p>Put <small>CVS</small> lock files in <var>directory</var> rather than
+directly in the repository.  This is useful if you want
+to let users read from the repository while giving them
+write access only to <var>directory</var>, not to the
+repository.
+It can also be used to put the locks on a very fast
+in-memory file system to speed up locking and unlocking
+the repository.
+You need to create <var>directory</var>, but
+<small>CVS</small> will create subdirectories of <var>directory</var> as it
+needs them.  For information on <small>CVS</small> locks, see
+<a href="#Concurrency">Concurrency</a>.
+</p>
+<p>Before enabling the LockDir option, make sure that you
+have tracked down and removed any copies of <small>CVS</small> 1.9 or
+older.  Such versions neither support LockDir, nor will
+give an error indicating that they don&rsquo;t support it.
+The result, if this is allowed to happen, is that some
+<small>CVS</small> users will put the locks one place, and others will
+put them another place, and therefore the repository
+could become corrupted.  <small>CVS</small> 1.10 does not support
+LockDir but it will print a warning if run on a
+repository with LockDir enabled.
+</p>
+<a name="index-LogHistory_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>LogHistory=<var>value</var></code></dt>
+<dd><p>Control what is logged to the <samp>CVSROOT/history</samp> file (see <a 
href="#history">history</a>).
+Default of &lsquo;<samp>TOEFWUPCGMAR</samp>&rsquo; (or simply 
&lsquo;<samp>all</samp>&rsquo;) will log
+all transactions.  Any subset of the default is
+legal.  (For example, to only log transactions that modify the
+<samp>*,v</samp> files, use &lsquo;<samp>LogHistory=TMAR</samp>&rsquo;.)
+</p>
+<a name="index-RereadLogAfterVerify_002c-in-CVSROOT_002fconfig"></a>
+<a name="index-verifymsg_002c-changing-the-log-message-1"></a>
+</dd>
+<dt><code>RereadLogAfterVerify=<var>value</var></code></dt>
+<dd><p>Modify the &lsquo;<samp>commit</samp>&rsquo; command such that CVS will 
reread the
+log message after running the program specified by <samp>verifymsg</samp>.
+<var>value</var> may be one of &lsquo;<samp>yes</samp>&rsquo; or 
&lsquo;<samp>always</samp>&rsquo;, indicating that
+the log message should always be reread; &lsquo;<samp>no</samp>&rsquo;
+or &lsquo;<samp>never</samp>&rsquo;, indicating that it should never be
+reread; or <var>value</var> may be &lsquo;<samp>stat</samp>&rsquo;, indicating
+that the file should be checked with the file system
+&lsquo;<samp>stat()</samp>&rsquo; function to see if it has changed (see 
warning below)
+before rereading.  The default value is &lsquo;<samp>always</samp>&rsquo;.
+</p>
+<p><strong>The &lsquo;stat&rsquo; mode can cause CVS to pause for up to
+one extra second per directory committed.  This can be less IO and
+CPU intensive but is not recommended for use with large repositories</strong>
+</p>
+<p>See <a href="#verifymsg">verifymsg</a>, for more information on how 
verifymsg
+may be used.
+</p>
+<a name="index-IgnoreUnknownConfigKeys_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>IgnoreUnknownConfigKeys=<var>value</var></code></dt>
+<dd><p>If <var>value</var> is &lsquo;<samp>yes</samp>&rsquo;, then 
<small>CVS</small> should
+ignore any keywords in <samp>CVSROOT/config</samp> which it
+does not recognize. This option is intended primarily
+for transitions between versions of <small>CVS</small> which
+support more configuration options in an environment
+where a read-only mirror of the current <small>CVS</small> server
+may be maintained by someone else who is not yet ready
+to upgrade to the same version. It is recommended that
+this option be used only for a short time so that
+problems with the <samp>CVSROOT/config</samp> file will be
+found quickly. The default is &lsquo;<samp>no</samp>&rsquo;.
+</p></dd>
+</dl>
+
+<hr>
+<a name="Environment-variables"></a>
+<div class="header">
+<p>
+Next: <a href="#Compatibility" accesskey="n" rel="next">Compatibility</a>, 
Previous: <a href="#Administrative-files" accesskey="p" 
rel="prev">Administrative files</a>, Up: <a href="#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="All-environment-variables-which-affect-CVS"></a>
+<h2 class="appendix">Appendix D All environment variables which affect CVS</h2>
+<a name="index-Environment-variables"></a>
+<a name="index-Reference-manual-for-variables"></a>
+
+<p>This is a complete list of all environment variables
+that affect <small>CVS</small>.
+</p>
+<dl compact="compact">
+<dd><a name="index-CVSIGNORE_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVSIGNORE</code></dt>
+<dd><p>A whitespace-separated list of file name patterns that
+<small>CVS</small> should ignore. See <a href="#cvsignore">cvsignore</a>.
+</p>
+<a name="index-CVSWRAPPERS_002c-environment-variable-1"></a>
+</dd>
+<dt><code>$CVSWRAPPERS</code></dt>
+<dd><p>A whitespace-separated list of file name patterns that
+<small>CVS</small> should treat as wrappers. See <a 
href="#Wrappers">Wrappers</a>.
+</p>
+<a name="index-CVSREAD_002c-environment-variable"></a>
+<a name="index-Read_002donly-files_002c-and-CVSREAD"></a>
+</dd>
+<dt><code>$CVSREAD</code></dt>
+<dd><p>If this is set, <code>checkout</code> and <code>update</code> will
+try hard to make the files in your working directory
+read-only.  When this is not set, the default behavior
+is to permit modification of your working files.
+</p>
+</dd>
+<dt><code>$CVSUMASK</code></dt>
+<dd><p>Controls permissions of files in the repository.  See
+<a href="#File-permissions">File permissions</a>.
+</p>
+</dd>
+<dt><code>$CVSROOT</code></dt>
+<dd><p>Should contain the full pathname to the root of the <small>CVS</small>
+source repository (where the <small>RCS</small> files are
+kept).  This information must be available to <small>CVS</small> for
+most commands to execute; if <code>$CVSROOT</code> is not set,
+or if you wish to override it for one invocation, you
+can supply it on the command line: &lsquo;<samp>cvs -d cvsroot
+cvs_command&hellip;</samp>&rsquo; Once you have checked out a working
+directory, <small>CVS</small> stores the appropriate root (in
+the file <samp>CVS/Root</samp>), so normally you only need to
+worry about this when initially checking out a working
+directory.
+</p>
+</dd>
+<dt><code>$CVSEDITOR</code></dt>
+<dd><a name="index-CVSEDITOR_002c-environment-variable-1"></a>
+</dd>
+<dt><code>$EDITOR</code></dt>
+<dd><a name="index-EDITOR_002c-environment-variable-1"></a>
+</dd>
+<dt><code>$VISUAL</code></dt>
+<dd><a name="index-VISUAL_002c-environment-variable-1"></a>
+<p>Specifies the program to use for recording log messages
+during commit.  <code>$CVSEDITOR</code> overrides
+<code>$EDITOR</code>, which overrides <code>$VISUAL</code>.
+See <a href="#Committing-your-changes">Committing your changes</a> for more or
+<a href="#Global-options">Global options</a> for alternative ways of 
specifying a
+log editor.
+</p>
+<a name="index-PATH_002c-environment-variable"></a>
+</dd>
+<dt><code>$PATH</code></dt>
+<dd><p>If <code>$RCSBIN</code> is not set, and no path is compiled
+into <small>CVS</small>, it will use <code>$PATH</code> to try to find all
+programs it uses.
+</p>
+<a name="index-HOME_002c-environment-variable"></a>
+</dd>
+<dt><code>$HOME</code></dt>
+<dd><a name="index-HOMEPATH_002c-environment-variable"></a>
+</dd>
+<dt><code>$HOMEPATH</code></dt>
+<dd><a name="index-HOMEDRIVE_002c-environment-variable"></a>
+</dd>
+<dt><code>$HOMEDRIVE</code></dt>
+<dd><p>Used to locate the directory where the <samp>.cvsrc</samp>
+file, and other such files, are searched.  On Unix, <small>CVS</small>
+just checks for <code>HOME</code>.  On Windows NT, the system will
+set <code>HOMEDRIVE</code>, for example to &lsquo;<samp>d:</samp>&rsquo; and 
<code>HOMEPATH</code>,
+for example to <samp>\joe</samp>.  On Windows 95, you&rsquo;ll
+probably need to set <code>HOMEDRIVE</code> and <code>HOMEPATH</code> yourself.
+</p>
+<a name="index-CVS_005fRSH_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_RSH</code></dt>
+<dd><p>Specifies the external program which <small>CVS</small> connects with,
+when <code>:ext:</code> access method is specified.
+see <a href="#Connecting-via-rsh">Connecting via rsh</a>.
+</p>
+<a name="index-CVS_005fSSH_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_SSH</code></dt>
+<dd><p>Specifies the external program which <small>CVS</small> connects with,
+when <code>:extssh:</code> access method is specified.
+see <a href="#Connecting-via-rsh">Connecting via rsh</a>.
+</p>
+</dd>
+<dt><code>$CVS_SERVER</code></dt>
+<dd><p>Used in client-server mode when accessing a remote
+repository using <small>RSH</small>.  It specifies the name of
+the program to start on the server side (and any
+necessary arguments) when accessing a remote repository
+using the <code>:ext:</code>, <code>:fork:</code>, or <code>:server:</code> 
access methods.
+The default value for <code>:ext:</code> and <code>:server:</code> is 
<code>cvs</code>;
+the default value for <code>:fork:</code> is the name used to run the client.
+see <a href="#Connecting-via-rsh">Connecting via rsh</a>
+</p>
+</dd>
+<dt><code>$CVS_PASSFILE</code></dt>
+<dd><p>Used in client-server mode when accessing the <code>cvs
+login server</code>.  Default value is <samp>$HOME/.cvspass</samp>.
+see <a href="#Password-authentication-client">Password authentication 
client</a>
+</p>
+</dd>
+<dt><code>$CVS_CLIENT_PORT</code></dt>
+<dd><p>Used in client-server mode to set the port to use when accessing the 
server
+via Kerberos, GSSAPI, or <small>CVS</small>&rsquo;s password authentication 
protocol
+if the port is not specified in the CVSROOT.
+see <a href="#Remote-repositories">Remote repositories</a>
+</p>
+<a name="index-CVS_005fRCMD_005fPORT_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_RCMD_PORT</code></dt>
+<dd><p>Used in client-server mode.  If set, specifies the port
+number to be used when accessing the <small>RCMD</small> demon on
+the server side. (Currently not used for Unix clients).
+</p>
+<a name="index-CVS_005fCLIENT_005fLOG_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_CLIENT_LOG</code></dt>
+<dd><p>Used for debugging only in client-server
+mode.  If set, everything sent to the server is logged
+into <samp><code>$CVS_CLIENT_LOG</code>.in</samp> and everything
+sent from the server is logged into
+<samp><code>$CVS_CLIENT_LOG</code>.out</samp>.
+</p>
+<a name="index-CVS_005fSERVER_005fSLEEP_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_SERVER_SLEEP</code></dt>
+<dd><p>Used only for debugging the server side in
+client-server mode.  If set, delays the start of the
+server child process the specified amount of
+seconds so that you can attach to it with a debugger.
+</p>
+<a 
name="index-CVS_005fIGNORE_005fREMOTE_005fROOT_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_IGNORE_REMOTE_ROOT</code></dt>
+<dd><p>For <small>CVS</small> 1.10 and older, setting this variable
+prevents <small>CVS</small> from overwriting the <samp>CVS/Root</samp>
+file when the &lsquo;<samp>-d</samp>&rsquo; global option is specified.
+Later versions of <small>CVS</small> do not rewrite
+<samp>CVS/Root</samp>, so <code>CVS_IGNORE_REMOTE_ROOT</code> has no
+effect.
+</p>
+<a name="index-COMSPEC_002c-environment-variable"></a>
+</dd>
+<dt><code>$COMSPEC</code></dt>
+<dd><p>Used under OS/2 only.  It specifies the name of the
+command interpreter and defaults to <small>CMD.EXE</small>.
+</p>
+<a name="index-TMPDIR_002c-environment-variable"></a>
+</dd>
+<dt><code>$TMPDIR</code></dt>
+<dd><a name="index-TMP_002c-environment-variable"></a>
+</dd>
+<dt><code>$TMP</code></dt>
+<dd><a name="index-TEMP_002c-environment-variable"></a>
+</dd>
+<dt><code>$TEMP</code></dt>
+<dd><a name="index-Temporary-files_002c-location-of"></a>
+<p>Directory in which temporary files are located.
+The <small>CVS</small> server uses
+<code>TMPDIR</code>.  See <a href="#Global-options">Global options</a>, for a
+description of how to specify this.
+Some parts of <small>CVS</small> will always use <samp>/tmp</samp> (via
+the <code>tmpnam</code> function provided by the system).
+</p>
+<p>On Windows NT, <code>TMP</code> is used (via the <code>_tempnam</code>
+function provided by the system).
+</p>
+<p>The <code>patch</code> program which is used by the <small>CVS</small>
+client uses <code>TMPDIR</code>, and if it is not set, uses
+<samp>/tmp</samp> (at least with GNU patch 2.1).  Note that
+if your server and client are both running <small>CVS</small>
+1.9.10 or later, <small>CVS</small> will not invoke an external
+<code>patch</code> program.
+</p></dd>
+</dl>
+
+<hr>
+<a name="Compatibility"></a>
+<div class="header">
+<p>
+Next: <a href="#Troubleshooting" accesskey="n" rel="next">Troubleshooting</a>, 
Previous: <a href="#Environment-variables" accesskey="p" rel="prev">Environment 
variables</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Compatibility-between-CVS-Versions"></a>
+<h2 class="appendix">Appendix E Compatibility between CVS Versions</h2>
+
+<a name="index-CVS_002c-versions-of"></a>
+<a name="index-Versions_002c-of-CVS"></a>
+<a name="index-Compatibility_002c-between-CVS-versions"></a>
+<p>The repository format is compatible going back to
+<small>CVS</small> 1.3.  But see <a href="#Watches-Compatibility">Watches 
Compatibility</a>, if
+you have copies of <small>CVS</small> 1.6 or older and you want
+to use the optional developer communication features.
+</p>
+<p>The working directory format is compatible going back
+to <small>CVS</small> 1.5.  It did change between <small>CVS</small> 1.3
+and <small>CVS</small> 1.5.  If you run <small>CVS</small> 1.5 or newer on
+a working directory checked out with <small>CVS</small> 1.3,
+<small>CVS</small> will convert it, but to go back to <small>CVS</small>
+1.3 you need to check out a new working directory with
+<small>CVS</small> 1.3.
+</p>
+<p>The remote protocol is interoperable going back to <small>CVS</small> 1.5, 
but no
+further (1.5 was the first official release with the remote protocol,
+but some older versions might still be floating around).  In many
+cases you need to upgrade both the client and the server to take
+advantage of new features and bug fixes, however.
+</p>
+
+<hr>
+<a name="Troubleshooting"></a>
+<div class="header">
+<p>
+Next: <a href="#Credits" accesskey="n" rel="next">Credits</a>, Previous: <a 
href="#Compatibility" accesskey="p" rel="prev">Compatibility</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Troubleshooting-1"></a>
+<h2 class="appendix">Appendix F Troubleshooting</h2>
+
+<p>If you are having trouble with <small>CVS</small>, this appendix
+may help.  If there is a particular error message which
+you are seeing, then you can look up the message
+alphabetically.  If not, you can look through the
+section on other problems to see if your problem is
+mentioned there.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="#Error-messages" 
accesskey="1">Error messages</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Partial list of CVS errors
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Connection" 
accesskey="2">Connection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Trouble making a connection to a CVS server
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="#Other-problems" 
accesskey="3">Other problems</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Problems not readily listed by error message
+</td></tr>
+</table>
+
+
+<hr>
+<a name="Error-messages"></a>
+<div class="header">
+<p>
+Next: <a href="#Connection" accesskey="n" rel="next">Connection</a>, Up: <a 
href="#Troubleshooting" accesskey="u" rel="up">Troubleshooting</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Partial-list-of-error-messages"></a>
+<h3 class="appendixsec">F.1 Partial list of error messages</h3>
+
+<p>Here is a partial list of error messages that you may
+see from <small>CVS</small>.  It is not a complete 
list&mdash;<small>CVS</small>
+is capable of printing many, many error messages, often
+with parts of them supplied by the operating system,
+but the intention is to list the common and/or
+potentially confusing error messages.
+</p>
+<p>The messages are alphabetical, but introductory text
+such as &lsquo;<samp>cvs update: </samp>&rsquo; is not considered in
+ordering them.
+</p>
+<p>In some cases the list includes messages printed by old
+versions of <small>CVS</small> (partly because users may not be
+sure which version of <small>CVS</small> they are using at any
+particular moment).
+</p>
+<dl compact="compact">
+<dt><code><var>file</var>:<var>line</var>: Assertion '<var>text</var>' 
failed</code></dt>
+<dd><p>The exact format of this message may vary depending on
+your system.  It indicates a bug in <small>CVS</small>, which can
+be handled as described in <a href="#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>cvs <var>command</var>: authorization failed: server <var>host</var> 
rejected access</code></dt>
+<dd><p>This is a generic response when trying to connect to a
+pserver server which chooses not to provide a
+specific reason for denying authorization.  Check that
+the username and password specified are correct and
+that the <code>CVSROOT</code> specified is allowed by 
&lsquo;<samp>--allow-root</samp>&rsquo;
+in <samp>inetd.conf</samp>.  See <a href="#Password-authenticated">Password 
authenticated</a>.
+</p>
+</dd>
+<dt><code>cvs <var>command</var>: conflict: removed <var>file</var> was 
modified by second party</code></dt>
+<dd><p>This message indicates that you removed a file, and
+someone else modified it.  To resolve the conflict,
+first run &lsquo;<samp>cvs add <var>file</var></samp>&rsquo;.  If desired, look
+at the other party&rsquo;s modification to decide whether you
+still want to remove it.  If you don&rsquo;t want to remove
+it, stop here.  If you do want to remove it, proceed
+with &lsquo;<samp>cvs remove <var>file</var></samp>&rsquo; and commit your
+removal.
+</p>
+</dd>
+<dt><code>cannot change permissions on temporary directory</code></dt>
+<dd><div class="example">
+<pre class="example">Operation not permitted
+</pre></div>
+<p>This message has been happening in a non-reproducible,
+occasional way when we run the client/server testsuite,
+both on Red Hat Linux 3.0.3 and 4.1.  We haven&rsquo;t been
+able to figure out what causes it, nor is it known
+whether it is specific to Linux (or even to this
+particular machine!).  If the problem does occur on
+other unices, &lsquo;<samp>Operation not permitted</samp>&rsquo; would be
+likely to read &lsquo;<samp>Not owner</samp>&rsquo; or whatever the system
+in question uses for the unix <code>EPERM</code> error.  If
+you have any information to add, please let us know as
+described in <a href="#BUGS">BUGS</a>.  If you experience this error
+while using <small>CVS</small>, retrying the operation which
+produced it should work fine.
+</p>
+</dd>
+<dt><code>cvs [server aborted]: Cannot check out files into the repository 
itself</code></dt>
+<dd><p>The obvious cause for this message (especially for
+non-client/server <small>CVS</small>) is that the <small>CVS</small> root
+is, for example, <samp>/usr/local/cvsroot</samp> and you try
+to check out files when you are in a subdirectory, such
+as <samp>/usr/local/cvsroot/test</samp>.  However, there is a
+more subtle cause, which is that the temporary
+directory on the server is set to a subdirectory of the
+root (which is also not allowed).  If this is the
+problem, set the temporary directory to somewhere else,
+for example <samp>/var/tmp</samp>; see <code>TMPDIR</code> in
+<a href="#Environment-variables">Environment variables</a>, for how to set the
+temporary directory.
+</p>
+</dd>
+<dt><code>cannot commit files as 'root'</code></dt>
+<dd><p>See &lsquo;<samp>'root' is not allowed to commit files</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>cannot open CVS/Entries for reading: No such file or 
directory</code></dt>
+<dd><p>This generally indicates a <small>CVS</small> internal error, and
+can be handled as with other <small>CVS</small> bugs
+(see <a href="#BUGS">BUGS</a>).  Usually there is a workaround&mdash;the
+exact nature of which would depend on the situation but
+which hopefully could be figured out.
+</p>
+</dd>
+<dt><code>cvs [init aborted]: cannot open CVS/Root: No such file or 
directory</code></dt>
+<dd><p>This message is harmless.  Provided it is not
+accompanied by other errors, the operation has
+completed successfully.  This message should not occur
+with current versions of <small>CVS</small>, but it is documented
+here for the benefit of <small>CVS</small> 1.9 and older.
+</p>
+</dd>
+<dt><code>cvs server: cannot open /root/.cvsignore: Permission 
denied</code></dt>
+<dt><code>cvs [server aborted]: can't chdir(/root): Permission 
denied</code></dt>
+<dd><p>See <a href="#Connection">Connection</a>.
+</p>
+</dd>
+<dt><code>cvs [checkout aborted]: cannot rename file <var>file</var> to 
CVS/,,<var>file</var>: Invalid argument</code></dt>
+<dd><p>This message has been reported as intermittently
+happening with <small>CVS</small> 1.9 on Solaris 2.5.  The cause is
+unknown; if you know more about what causes it, let us
+know as described in <a href="#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>cvs [<var>command</var> aborted]: cannot start server via 
rcmd</code></dt>
+<dd><p>This, unfortunately, is a rather nonspecific error
+message which <small>CVS</small> 1.9 will print if you are
+running the <small>CVS</small> client and it is having trouble
+connecting to the server.  Current versions of <small>CVS</small>
+should print a much more specific error message.  If
+you get this message when you didn&rsquo;t mean to run the
+client at all, you probably forgot to specify
+<code>:local:</code>, as described in <a href="#Repository">Repository</a>.
+</p>
+</dd>
+<dt><code>ci: <var>file</var>,v: bad diff output line: Binary files - and 
/tmp/T2a22651 differ</code></dt>
+<dd><p><small>CVS</small> 1.9 and older will print this message
+when trying to check in a binary file if
+<small>RCS</small> is not correctly installed.  Re-read the
+instructions that came with your <small>RCS</small> distribution
+and the <small>INSTALL</small> file in the <small>CVS</small>
+distribution.  Alternately, upgrade to a current
+version of <small>CVS</small>, which checks in files itself
+rather than via <small>RCS</small>.
+</p>
+</dd>
+<dt><code>cvs checkout: could not check out <var>file</var></code></dt>
+<dd><p>With <small>CVS</small> 1.9, this can mean that the <code>co</code> 
program
+(part of <small>RCS</small>) returned a failure.  It should be
+preceded by another error message, however it has been
+observed without another error message and the cause is
+not well-understood.  With the current version of <small>CVS</small>,
+which does not run <code>co</code>, if this message occurs
+without another error message, it is definitely a <small>CVS</small>
+bug (see <a href="#BUGS">BUGS</a>).
+</p>
+</dd>
+<dt><code>cvs [login aborted]: could not find out home directory</code></dt>
+<dd><p>This means that you need to set the environment
+variables that <small>CVS</small> uses to locate your home directory.
+See the discussion of <code>HOME</code>, <code>HOMEDRIVE</code>, and 
<code>HOMEPATH</code> in
+<a href="#Environment-variables">Environment variables</a>.
+</p>
+</dd>
+<dt><code>cvs update: could not merge revision <var>rev</var> of 
<var>file</var>: No such file or directory</code></dt>
+<dd><p><small>CVS</small> 1.9 and older will print this message if there was
+a problem finding the <code>rcsmerge</code> program.  Make
+sure that it is in your <code>PATH</code>, or upgrade to a
+current version of <small>CVS</small>, which does not require
+an external <code>rcsmerge</code> program.
+</p>
+</dd>
+<dt><code>cvs [update aborted]: could not patch <var>file</var>: No such file 
or directory</code></dt>
+<dd><p>This means that there was a problem finding the
+<code>patch</code> program.  Make sure that it is in your
+<code>PATH</code>.  Note that despite appearances the message
+is <em>not</em> referring to whether it can find <var>file</var>.
+If both the client and the server are running a current
+version of <small>CVS</small>, then there is no need for an
+external patch program and you should not see this
+message.  But if either client or server is running
+<small>CVS</small> 1.9, then you need <code>patch</code>.
+</p>
+</dd>
+<dt><code>cvs update: could not patch <var>file</var>; will refetch</code></dt>
+<dd><p>This means that for whatever reason the client was
+unable to apply a patch that the server sent.  The
+message is nothing to be concerned about, because
+inability to apply the patch only slows things down and
+has no effect on what <small>CVS</small> does.
+</p>
+</dd>
+<dt><code>dying gasps from <var>server</var> unexpected</code></dt>
+<dd><p>There is a known bug in the server for <small>CVS</small> 1.9.18
+and older which can cause this.  For me, this was
+reproducible if I used the &lsquo;<samp>-t</samp>&rsquo; global option.  It
+was fixed by Andy Piper&rsquo;s 14 Nov 1997 change to
+src/filesubr.c, if anyone is curious.
+If you see the message,
+you probably can just retry the operation which failed,
+or if you have discovered information concerning its
+cause, please let us know as described in <a href="#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>end of file from server (consult above messages if any)</code></dt>
+<dd><p>The most common cause for this message is if you are
+using an external <code>rsh</code> or <code>ssh</code> program and it exited 
with
+an error.  In this case the <code>rsh</code> program should
+have printed a message, which will appear before the
+above message.  For more information on setting up a
+<small>CVS</small> client and server, see <a 
href="#Remote-repositories">Remote repositories</a>.
+</p>
+</dd>
+<dt><code>cvs [update aborted]: EOF in key in RCS file 
<var>file</var>,v</code></dt>
+<dt><code>cvs [checkout aborted]: EOF while looking for end of string in RCS 
file <var>file</var>,v</code></dt>
+<dd><p>This means that there is a syntax error in the given
+<small>RCS</small> file.  Note that this might be true even if 
<small>RCS</small> can
+read the file OK; <small>CVS</small> does more error checking of
+errors in the RCS file.  That is why you may see this
+message when upgrading from <small>CVS</small> 1.9 to <small>CVS</small>
+1.10.  The likely cause for the original corruption is
+hardware, the operating system, or the like.  Of
+course, if you find a case in which <small>CVS</small> seems to
+corrupting the file, by all means report it,
+(see <a href="#BUGS">BUGS</a>).
+There are quite a few variations of this error message,
+depending on exactly where in the <small>RCS</small> file <small>CVS</small>
+finds the syntax error.
+</p>
+<a name="index-mkmodules"></a>
+</dd>
+<dt><code>cvs commit: Executing 'mkmodules'</code></dt>
+<dd><p>This means that your repository is set up for a version
+of <small>CVS</small> prior to <small>CVS</small> 1.8.  When using 
<small>CVS</small>
+1.8 or later, the above message will be preceded by
+</p>
+<div class="example">
+<pre class="example">cvs commit: Rebuilding administrative file database
+</pre></div>
+
+<p>If you see both messages, the database is being rebuilt
+twice, which is unnecessary but harmless.  If you wish
+to avoid the duplication, and you have no versions of
+<small>CVS</small> 1.7 or earlier in use, remove <code>-i mkmodules</code>
+every place it appears in your <code>modules</code>
+file.  For more information on the <code>modules</code> file,
+see <a href="#modules">modules</a>.
+</p>
+</dd>
+<dt><code>missing author</code></dt>
+<dd><p>Typically this can happen if you created an RCS file
+with your username set to empty.  <small>CVS</small> will, bogusly,
+create an illegal RCS file with no value for the author
+field.  The solution is to make sure your username is
+set to a non-empty value and re-create the RCS file.
+</p>
+</dd>
+<dt><code>cvs [checkout aborted]: no such tag <var>tag</var></code></dt>
+<dd><p>This message means that <small>CVS</small> isn&rsquo;t familiar with
+the tag <var>tag</var>.  Usually this means that you have
+mistyped a tag name; however there are (relatively
+obscure) cases in which <small>CVS</small> will require you to
+try a few other <small>CVS</small> commands involving that tag,
+before you find one which will cause <small>CVS</small> to update
+<a name="index-CVSROOT_002fval_002dtags-file_002c-forcing-tags-into"></a>
+<a name="index-val_002dtags-file_002c-forcing-tags-into"></a>
+the <samp>val-tags</samp> file; see discussion of val-tags in
+<a href="#File-permissions">File permissions</a>.  You only need to worry about
+this once for a given tag; when a tag is listed in
+<samp>val-tags</samp>, it stays there.  Note that using
+&lsquo;<samp>-f</samp>&rsquo; to not require tag matches does not override
+this check; see <a href="#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>cvs [<var>command</var> aborted]: out of memory</code></dt>
+<dd><p>There is insufficient (virtual) memory available to continue.
+In client/server mode, the problem is almost certainly on the server
+rather than the client;
+see <a href="#Server-requirements">Server requirements</a> for memory 
estimates.
+Many systems have limits on the amount of virtual memory that a
+single process can use, so a process can run out of virtual memory
+long before the system itself has run out.
+The method of increasing the per-process limits varies depending
+on the operating system.
+</p>
+</dd>
+<dt><code>*PANIC* administration files missing</code></dt>
+<dd><p>This typically means that there is a directory named
+<small>CVS</small> but it does not contain the administrative files
+which <small>CVS</small> puts in a CVS directory.  If the problem is
+that you created a CVS directory via some mechanism
+other than <small>CVS</small>, then the answer is simple, use a name
+other than <small>CVS</small>.  If not, it indicates a <small>CVS</small> bug
+(see <a href="#BUGS">BUGS</a>).
+</p>
+</dd>
+<dt><code>rcs error: Unknown option: -x,v/</code></dt>
+<dd><p>This message will be followed by a usage message for
+<small>RCS</small>.  It means that you have an old version of
+<small>RCS</small> (probably supplied with your operating
+system), as well as an old version of <small>CVS</small>.
+<small>CVS</small> 1.9.18 and earlier only work with <small>RCS</small> 
version 5 and
+later; current versions of <small>CVS</small> do not run <small>RCS</small> 
programs.
+</p>
+</dd>
+<dt><code>cvs [server aborted]: received broken pipe signal</code></dt>
+<dd><p>This message can be caused by a loginfo program that fails to
+read all of the log information from its standard input.
+If you find it happening in any other circumstances,
+please let us know as described in <a href="#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>'root' is not allowed to commit files</code></dt>
+<dd><p>When committing a permanent change, <small>CVS</small> makes a log 
entry of
+who committed the change.  If you are committing the change logged
+in as &quot;root&quot; (not under &quot;su&quot; or other root-priv giving 
program),
+<small>CVS</small> cannot determine who is actually making the change.
+As such, by default, <small>CVS</small> disallows changes to be committed by 
users
+logged in as &quot;root&quot;.  (You can disable this option by passing the
+<code>--enable-rootcommit</code> option to <samp>configure</samp> and 
recompiling <small>CVS</small>.
+On some systems this means editing the appropriate <samp>config.h</samp> file
+before building <small>CVS</small>.)
+</p>
+</dd>
+<dt><code>Terminated with fatal signal 11</code></dt>
+<dd><p>This message usually indicates that <small>CVS</small> (the server, if 
you&rsquo;re
+using client/server mode) has run out of (virtual) memory.
+Although <small>CVS</small> tries to catch the error and issue a more 
meaningful
+message, there are many circumstances where that is not possible.
+If you appear to have lots of memory available to the system,
+the problem is most likely that you&rsquo;re running into a system-wide
+limit on the amount of memory a single process can use or a
+similar process-specific limit.
+The mechanisms for displaying and setting such limits vary from
+system to system, so you&rsquo;ll have to consult an expert for your
+particular system if you don&rsquo;t know how to do that.
+</p>
+</dd>
+<dt><code>Too many arguments!</code></dt>
+<dd><p>This message is typically printed by the <samp>log.pl</samp>
+script which is in the <samp>contrib</samp> directory in the
+<small>CVS</small> source distribution.  In some versions of
+<small>CVS</small>, <samp>log.pl</samp> has been part of the default
+<small>CVS</small> installation.  The <samp>log.pl</samp> script gets
+called from the <samp>loginfo</samp> administrative file.
+Check that the arguments passed in <samp>loginfo</samp> match
+what your version of <samp>log.pl</samp> expects.  In
+particular, the <samp>log.pl</samp> from <small>CVS</small> 1.3 and
+older expects the log file as an argument whereas the
+<samp>log.pl</samp> from <small>CVS</small> 1.5 and newer expects the
+log file to be specified with a &lsquo;<samp>-f</samp>&rsquo; option.  Of
+course, if you don&rsquo;t need <samp>log.pl</samp> you can just
+comment it out of <samp>loginfo</samp>.
+</p>
+</dd>
+<dt><code>cvs [update aborted]: unexpected EOF reading 
<var>file</var>,v</code></dt>
+<dd><p>See &lsquo;<samp>EOF in key in RCS file</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>cvs [login aborted]: unrecognized auth response from 
<var>server</var></code></dt>
+<dd><p>This message typically means that the server is not set
+up properly.  For example, if <samp>inetd.conf</samp> points
+to a nonexistent cvs executable.  To debug it further,
+find the log file which inetd writes
+(<samp>/var/log/messages</samp> or whatever inetd uses on
+your system).  For details, see <a href="#Connection">Connection</a>, and
+<a href="#Password-authentication-server">Password authentication server</a>.
+</p>
+</dd>
+<dt><code>cvs commit: Up-to-date check failed for `<var>file</var>'</code></dt>
+<dd><p>This means that someone else has committed a change to
+that file since the last time that you did a <code>cvs
+update</code>.  So before proceeding with your <code>cvs
+commit</code> you need to <code>cvs update</code>.  <small>CVS</small> will 
merge
+the changes that you made and the changes that the
+other person made.  If it does not detect any conflicts
+it will report &lsquo;<samp>M <var>file</var></samp>&rsquo; and you are ready
+to <code>cvs commit</code>.  If it detects conflicts it will
+print a message saying so, will report &lsquo;<samp>C 
<var>file</var></samp>&rsquo;,
+and you need to manually resolve the
+conflict.  For more details on this process see
+<a href="#Conflicts-example">Conflicts example</a>.
+</p>
+</dd>
+<dt><code>Usage:       diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 
file2 file3</code></dt>
+<dd><div class="example">
+<pre class="example">Only one of [exEX3] allowed
+</pre></div>
+<p>This indicates a problem with the installation of
+<code>diff3</code> and <code>rcsmerge</code>.  Specifically
+<code>rcsmerge</code> was compiled to look for GNU diff3, but
+it is finding unix diff3 instead.  The exact text of
+the message will vary depending on the system.  The
+simplest solution is to upgrade to a current version of
+<small>CVS</small>, which does not rely on external
+<code>rcsmerge</code> or <code>diff3</code> programs.
+</p>
+</dd>
+<dt><code>warning: unrecognized response `<var>text</var>' from cvs 
server</code></dt>
+<dd><p>If <var>text</var> contains a valid response (such as
+&lsquo;<samp>ok</samp>&rsquo;) followed by an extra carriage return
+character (on many systems this will cause the second
+part of the message to overwrite the first part), then
+it probably means that you are using the &lsquo;<samp>:ext:</samp>&rsquo;
+access method with a version of rsh, such as most
+non-unix rsh versions, which does not by default
+provide a transparent data stream.  In such cases you
+probably want to try &lsquo;<samp>:server:</samp>&rsquo; instead of
+&lsquo;<samp>:ext:</samp>&rsquo;.  If <var>text</var> is something else, this
+may signify a problem with your <small>CVS</small> server.
+Double-check your installation against the instructions
+for setting up the <small>CVS</small> server.
+</p>
+</dd>
+<dt><code>cvs commit: [<var>time</var>] waiting for <var>user</var>'s lock in 
<var>directory</var></code></dt>
+<dd><p>This is a normal message, not an error.  See
+<a href="#Concurrency">Concurrency</a>, for more details.
+</p>
+</dd>
+<dt><code>cvs commit: warning: editor session failed</code></dt>
+<dd><a name="index-Exit-status_002c-of-editor"></a>
+<p>This means that the editor which <small>CVS</small> is using exits with a 
nonzero
+exit status.  Some versions of vi will do this even when there was not
+a problem editing the file.  If so, point the
+<code>CVSEDITOR</code> environment variable to a small script
+such as:
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+vi $*
+exit 0
+</pre></div>
+
+</dd>
+<dt><code>cvs update: warning: <var>file</var> was lost</code></dt>
+<dd><p>This means that the working copy of <var>file</var> has been deleted
+but it has not been removed from <small>CVS</small>.
+This is nothing to be concerned about,
+the update will just recreate the local file from the repository.
+(This is a convenient way to discard local changes to a file:
+just delete it and then run <code>cvs update</code>.)
+</p>
+</dd>
+<dt><code>cvs update: warning: <var>file</var> is not (any longer) 
pertinent</code></dt>
+<dd><p>This means that the working copy of <var>file</var> has been deleted,
+it has not been removed from <small>CVS</small> in the current working 
directory,
+but it has been removed from <small>CVS</small> in some other working 
directory.
+This is nothing to be concerned about,
+the update would have removed the local file anyway.
+</p>
+</dd>
+</dl>
+
+<hr>
+<a name="Connection"></a>
+<div class="header">
+<p>
+Next: <a href="#Other-problems" accesskey="n" rel="next">Other problems</a>, 
Previous: <a href="#Error-messages" accesskey="p" rel="prev">Error 
messages</a>, Up: <a href="#Troubleshooting" accesskey="u" 
rel="up">Troubleshooting</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Trouble-making-a-connection-to-a-CVS-server"></a>
+<h3 class="appendixsec">F.2 Trouble making a connection to a CVS server</h3>
+
+<p>This section concerns what to do if you are having
+trouble making a connection to a <small>CVS</small> server.  If
+you are running the <small>CVS</small> command line client
+running on Windows, first upgrade the client to
+<small>CVS</small> 1.9.12 or later.  The error reporting in
+earlier versions provided much less information about
+what the problem was.  If the client is non-Windows,
+<small>CVS</small> 1.9 should be fine.
+</p>
+<p>If the error messages are not sufficient to track down
+the problem, the next steps depend largely on which
+access method you are using.
+</p>
+<dl compact="compact">
+<dd><a name="index-_003aext_003a_002c-troubleshooting"></a>
+</dd>
+<dt><code>:ext:</code></dt>
+<dd><p>Try running the rsh program from the command line.  For
+example: &quot;rsh servername cvs -v&quot; should print <small>CVS</small>
+version information.  If this doesn&rsquo;t work, you need to
+fix it before you can worry about <small>CVS</small> problems.
+</p>
+<a name="index-_003aserver_003a_002c-troubleshooting"></a>
+</dd>
+<dt><code>:server:</code></dt>
+<dd><p>You don&rsquo;t need a command line rsh program to use this
+access method, but if you have an rsh program around,
+it may be useful as a debugging tool.  Follow the
+directions given for :ext:.
+</p>
+<a name="index-_003apserver_003a_002c-troubleshooting"></a>
+</dd>
+<dt><code>:pserver:</code></dt>
+<dd><p>Errors along the lines of &quot;connection refused&quot; typically 
indicate
+that inetd isn&rsquo;t even listening for connections on port 2401
+whereas errors like &quot;connection reset by peer&quot;,
+&quot;received broken pipe signal&quot;, &quot;recv() from server: EOF&quot;,
+or &quot;end of file from server&quot;
+typically indicate that inetd is listening for
+connections but is unable to start <small>CVS</small> (this is frequently
+caused by having an incorrect path in <samp>inetd.conf</samp>
+or by firewall software rejecting the connection).
+&quot;unrecognized auth response&quot; errors are caused by a bad command
+line in <samp>inetd.conf</samp>, typically an invalid option or forgetting
+to put the &lsquo;<samp>pserver</samp>&rsquo; command at the end of the line.
+Another less common problem is invisible control characters that
+your editor &quot;helpfully&quot; added without you noticing.
+</p>
+<p>One good debugging tool is to &quot;telnet servername
+2401&quot;.  After connecting, send any text (for example
+&quot;foo&quot; followed by return).  If <small>CVS</small> is working
+correctly, it will respond with
+</p>
+<div class="example">
+<pre class="example">cvs [pserver aborted]: bad auth protocol start: foo
+</pre></div>
+
+<p>If instead you get:
+</p>
+<div class="example">
+<pre class="example">Usage: cvs [cvs-options] command 
[command-options-and-arguments]
+...
+</pre></div>
+
+<p>then you&rsquo;re missing the &lsquo;<samp>pserver</samp>&rsquo; command at 
the end of the
+line in <samp>inetd.conf</samp>; check to make sure that the entire command
+is on one line and that it&rsquo;s complete.
+</p>
+<p>Likewise, if you get something like:
+</p>
+<div class="example">
+<pre class="example">Unknown command: `pserved'
+
+CVS commands are:
+        add          Add a new file/directory to the repository
+...
+</pre></div>
+
+<p>then you&rsquo;ve misspelled &lsquo;<samp>pserver</samp>&rsquo; in some 
way.  If it isn&rsquo;t
+obvious, check for invisible control characters (particularly
+carriage returns) in <samp>inetd.conf</samp>.
+</p>
+<p>If it fails to work at all, then make sure inetd is working
+right.  Change the invocation in <samp>inetd.conf</samp> to run the
+echo program instead of cvs.  For example:
+</p>
+<div class="example">
+<pre class="example">2401  stream  tcp  nowait  root /bin/echo echo hello
+</pre></div>
+
+<p>After making that change and instructing inetd to
+re-read its configuration file, &quot;telnet servername
+2401&quot; should show you the text hello and then the
+server should close the connection.  If this doesn&rsquo;t
+work, you need to fix it before you can worry about
+<small>CVS</small> problems.
+</p>
+<p>On AIX systems, the system will often have its own
+program trying to use port 2401.  This is AIX&rsquo;s problem
+in the sense that port 2401 is registered for use with
+<small>CVS</small>.  I hear that there is an AIX patch available
+to address this problem.
+</p>
+<p>Another good debugging tool is the &lsquo;<samp>-d</samp>&rsquo;
+(debugging) option to inetd.  Consult your system
+documentation for more information.
+</p>
+<p>If you seem to be connecting but get errors like:
+</p>
+<div class="example">
+<pre class="example">cvs server: cannot open /root/.cvsignore: Permission 
denied
+cvs [server aborted]: can't chdir(/root): Permission denied
+</pre></div>
+
+<p>then you probably haven&rsquo;t specified &lsquo;<samp>-f</samp>&rsquo; in 
<samp>inetd.conf</samp>.
+(In releases prior to <small>CVS</small> 1.11.1, this problem can be caused by
+your system setting the <code>$HOME</code> environment variable
+for programs being run by inetd.  In this case, you can either
+have inetd run a shell script that unsets <code>$HOME</code> and then runs
+<small>CVS</small>, or you can use <code>env</code> to run <small>CVS</small> 
with a pristine
+environment.)
+</p>
+<p>If you can connect successfully for a while but then can&rsquo;t,
+you&rsquo;ve probably hit inetd&rsquo;s rate limit.
+(If inetd receives too many requests for the same service
+in a short period of time, it assumes that something is wrong
+and temporarily disables the service.)
+Check your inetd documentation to find out how to adjust the
+rate limit (some versions of inetd have a single rate limit,
+others allow you to set the limit for each service separately.)
+</p></dd>
+</dl>
+
+<hr>
+<a name="Other-problems"></a>
+<div class="header">
+<p>
+Previous: <a href="#Connection" accesskey="p" rel="prev">Connection</a>, Up: 
<a href="#Troubleshooting" accesskey="u" rel="up">Troubleshooting</a> &nbsp; 
[<a href="#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Other-common-problems"></a>
+<h3 class="appendixsec">F.3 Other common problems</h3>
+
+<p>Here is a list of problems which do not fit into the
+above categories.  They are in no particular order.
+</p>
+<ul>
+<li> On Windows, if there is a 30 second or so delay when
+you run a <small>CVS</small> command, it may mean that you have
+your home directory set to <samp>C:/</samp>, for example (see
+<code>HOMEDRIVE</code> and <code>HOMEPATH</code> in
+<a href="#Environment-variables">Environment variables</a>).  
<small>CVS</small> expects the home
+directory to not end in a slash, for example <samp>C:</samp>
+or <samp>C:\cvs</samp>.
+
+</li><li> If you are running <small>CVS</small> 1.9.18 or older, and
+<code>cvs update</code> finds a conflict and tries to
+merge, as described in <a href="#Conflicts-example">Conflicts example</a>, but
+doesn&rsquo;t tell you there were conflicts, then you may
+have an old version of <small>RCS</small>.  The easiest solution
+probably is to upgrade to a current version of
+<small>CVS</small>, which does not rely on external <small>RCS</small>
+programs.
+</li></ul>
+
+<hr>
+<a name="Credits"></a>
+<div class="header">
+<p>
+Next: <a href="#BUGS" accesskey="n" rel="next">BUGS</a>, Previous: <a 
href="#Troubleshooting" accesskey="p" rel="prev">Troubleshooting</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Credits-1"></a>
+<h2 class="appendix">Appendix G Credits</h2>
+
+<a name="index-Contributors-_0028manual_0029"></a>
+<a name="index-Credits-_0028manual_0029"></a>
+<p>Roland Pesch, then of Cygnus Support &lt;<tt>address@hidden</tt>&gt;
+wrote the manual pages which were distributed with
+<small>CVS</small> 1.3.  Much of their text was copied into this
+manual.  He also read an early draft
+of this manual and contributed many ideas and
+corrections.
+</p>
+<p>The mailing-list <code>info-cvs</code> is sometimes
+informative. I have included information from postings
+made by the following persons:
+David G. Grubbs &lt;<tt>address@hidden</tt>&gt;.
+</p>
+<p>Some text has been extracted from the man pages for
+<small>RCS</small>.
+</p>
+<p>The <small>CVS</small> <small>FAQ</small> by David G. Grubbs has provided
+useful material.  The <small>FAQ</small> is no longer maintained,
+however, and this manual is about the closest thing there
+is to a successor (with respect to documenting how to
+use <small>CVS</small>, at least).
+</p>
+<p>In addition, the following persons have helped by
+telling me about mistakes I&rsquo;ve made:
+</p>
+<div class="display">
+<pre class="display">Roxanne Brunskill &lt;<tt>address@hidden</tt>&gt;,
+Kathy Dyer &lt;<tt>address@hidden</tt>&gt;,
+Karl Pingle &lt;<tt>address@hidden</tt>&gt;,
+Thomas A Peterson &lt;<tt>address@hidden</tt>&gt;,
+Inge Wallin &lt;<tt>address@hidden</tt>&gt;,
+Dirk Koschuetzki &lt;<tt>address@hidden</tt>&gt;
+and Michael Brown &lt;<tt>address@hidden</tt>&gt;.
+</pre></div>
+
+<p>The list of contributors here is not comprehensive; for a more
+complete list of who has contributed to this manual see
+the file <samp>doc/ChangeLog</samp> in the <small>CVS</small> source
+distribution.
+</p>
+<hr>
+<a name="BUGS"></a>
+<div class="header">
+<p>
+Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a 
href="#Credits" accesskey="p" rel="prev">Credits</a>, Up: <a href="#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<a name="Dealing-with-bugs-in-CVS-or-this-manual"></a>
+<h2 class="appendix">Appendix H Dealing with bugs in CVS or this manual</h2>
+
+<a name="index-Bugs-in-this-manual-or-CVS"></a>
+<p>Neither <small>CVS</small> nor this manual is perfect, and they
+probably never will be.  If you are having trouble
+using <small>CVS</small>, or think you have found a bug, there
+are a number of things you can do about it.  Note that
+if the manual is unclear, that can be considered a bug
+in the manual, so these problems are often worth doing
+something about as well as problems with <small>CVS</small> itself.
+</p>
+<a name="index-Reporting-bugs"></a>
+<a name="index-Bugs_002c-reporting"></a>
+<a name="index-Errors_002c-reporting"></a>
+<ul>
+<li> If you want someone to help you and fix bugs that you
+report, there are companies which will do that for a
+fee.  One such company is:
+
+<a name="index-Ximbiot"></a>
+<a name="index-Support_002c-getting-CVS-support"></a>
+<div class="example">
+<pre class="example">Ximbiot LLC
+Suite 230
+200 Diversion St.
+Rochester Hills, MI  48307-6636
+USA
+Email: address@hidden
+Phone: (248) 835-1260
+Fax:   (248) 835-1263
+<a href="http://ximbiot.com/";>http://ximbiot.com/</a>
+
+</pre></div>
+
+</li><li> If you got <small>CVS</small> through a distributor, such as an
+operating system vendor or a vendor of freeware
+<small>CD-ROM</small>s, you may wish to see whether the
+distributor provides support.  Often, they will provide
+no support or minimal support, but this may vary from
+distributor to distributor.
+
+</li><li> If you have the skills and time to do so, you may wish
+to fix the bug yourself.  If you wish to submit your
+fix for inclusion in future releases of <small>CVS</small>, see
+the file <small>HACKING</small> in the <small>CVS</small> source
+distribution.  It contains much more information on the
+process of submitting fixes.
+
+</li><li> There may be resources on the net which can help.  A
+good place to start is:
+
+<div class="example">
+<pre class="example"><a 
href="http://cvs.nongnu.org/";>http://cvs.nongnu.org/</a>
+</pre></div>
+
+<p>If you are so inspired, increasing the information
+available on the net is likely to be appreciated.  For
+example, before the standard <small>CVS</small> distribution
+worked on Windows 95, there was a web page with some
+explanation and patches for running <small>CVS</small> on Windows
+95, and various people helped out by mentioning this
+page on mailing lists or newsgroups when the subject
+came up.
+</p>
+</li><li> It is also possible to report bugs to <a 
href="mailto:address@hidden";>address@hidden</a>.
+Note that someone may or may not want to do anything
+with your bug report&mdash;if you need a solution consider
+one of the options mentioned above.  People probably do
+want to hear about bugs which are particularly severe
+in consequences and/or easy to fix, however.  You can
+also increase your odds by being as clear as possible
+about the exact nature of the bug and any other
+relevant information.  The way to report bugs is to
+send email to <a href="mailto:address@hidden";>address@hidden</a>.  Note
+that submissions to <a href="mailto:address@hidden";>address@hidden</a> may be 
distributed
+under the terms of the <small>GNU</small> Public License, so if
+you don&rsquo;t like this, don&rsquo;t submit them.  There is
+usually no justification for sending mail directly to
+one of the <small>CVS</small> maintainers rather than to
+<a href="mailto:address@hidden";>address@hidden</a>; those maintainers who want 
to hear
+about such bug reports read <a 
href="mailto:address@hidden";>address@hidden</a>.  Also note
+that sending a bug report to other mailing lists or
+newsgroups is <em>not</em> a substitute for sending it to
+<a href="mailto:address@hidden";>address@hidden</a>.  It is fine to discuss 
<small>CVS</small> bugs on
+whatever forum you prefer, but there are not
+necessarily any maintainers reading bug reports sent
+anywhere except <a href="mailto:address@hidden";>address@hidden</a>.
+</li></ul>
+
+<a name="index-Known-bugs-in-this-manual-or-CVS"></a>
+<p>People often ask if there is a list of known bugs or
+whether a particular bug is a known one.  The file
+<small>BUGS</small> in the <small>CVS</small> source distribution is one
+list of known bugs, but it doesn&rsquo;t necessarily try to
+be comprehensive.  Perhaps there will never be a
+comprehensive, detailed list of known bugs.
+</p>
+<hr>
+<a name="Index"></a>
+<div class="header">
+<p>
+Previous: <a href="#BUGS" accesskey="p" rel="prev">BUGS</a>, Up: <a 
href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a href="#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Index-1"></a>
+<h2 class="unnumbered">Index</h2>
+<a name="index-Index"></a>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" 
href="#Index_cp_symbol-1"><b>!</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-2"><b>#</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-3"><b>&amp;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-4"><b>-</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-5"><b>.</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-6"><b>/</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-7"><b>:</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-8"><b>&lt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-9"><b>=</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-10"><b>&gt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-11"><b>_</b></a>
+ &nbsp; 
+<br>
+<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table class="index-cp" border="0">
+<tr><td></td><th align="left">Index Entry</th><td>&nbsp;</td><th align="left"> 
Section</th></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-1">!</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_0021_002c-in-modules-file">!, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Excluding-directories">Excluding directories</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-2">#</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002elock_002c-removing">#cvs.lock, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002elock_002c-technical-details">#cvs.lock, technical 
details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002erfl_002c-and-backups">#cvs.rfl, and 
backups</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Backing-up">Backing 
up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002erfl_002c-removing">#cvs.rfl, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002erfl_002c-technical-details">#cvs.rfl, technical 
details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002etfl">#cvs.tfl</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002ewfl_002c-removing">#cvs.wfl, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0023cvs_002ewfl_002c-technical-details">#cvs.wfl, technical 
details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Locks">Locks</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-3">&amp;</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_0026_002c-in-modules-file">&amp;, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Ampersand-modules">Ampersand modules</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-4">-</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002da_002c-in-modules-file">-a, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Alias-modules">Alias modules</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002dd_002c-in-modules-file">-d, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002de_002c-in-modules-file">-e, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002de_002c-in-modules-file-1">-e, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-program-options">Module program options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002dj-_0028merging-branches_0029">-j (merging 
branches)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002dj-_0028merging-branches_0029_002c-and-keyword-substitution">-j
 (merging branches), and keyword substitution</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Merging-and-keywords">Merging and keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002dk-_0028keyword-substitution_0029">-k (keyword 
substitution)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Substitution-modes">Substitution modes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002dkk_002c-to-avoid-conflicts-during-a-merge">-kk, to avoid 
conflicts during a merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-and-keywords">Merging and keywords</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002do_002c-in-modules-file">-o, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002do_002c-in-modules-file-1">-o, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-program-options">Module program options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002ds_002c-in-modules-file">-s, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002dt_002c-in-modules-file">-t, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002dt_002c-in-modules-file-1">-t, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-program-options">Module program options</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-5">.</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002e_0023-files">.# 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#update-output">update 
output</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002ebashrc_002c-setting-CVSROOT-in">.bashrc, setting CVSROOT 
in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002ecshrc_002c-setting-CVSROOT-in">.cshrc, setting CVSROOT 
in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-_002ecvsrc-file">.cvsrc 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#g_t_007e_002f_002ecvsrc">~/.cvsrc</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002eprofile_002c-setting-CVSROOT-in">.profile, setting CVSROOT 
in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002etcshrc_002c-setting-CVSROOT-in">.tcshrc, setting CVSROOT 
in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-6">/</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_002fusr_002flocal_002fcvsroot_002c-as-example-repository">/usr/local/cvsroot,
 as example repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-7">:</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003aext_003a_002c-setting-up">:ext:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003aext_003a_002c-troubleshooting">:ext:, 
troubleshooting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connection">Connection</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003aextssh_003a_002c-setting-up">:extssh:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003afork_003a_002c-setting-up">:fork:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-fork">Connecting via fork</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003agserver_003a_002c-setting-up">:gserver:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#GSSAPI-authenticated">GSSAPI authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003akserver_003a_002c-setting-up">:kserver:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Kerberos-authenticated">Kerberos authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003alocal_003a_002c-setting-up">:local:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003apserver_003a_002c-setting-up">:pserver:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-client">Password authentication 
client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003apserver_003a_002c-troubleshooting">:pserver:, 
troubleshooting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connection">Connection</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003aserver_003a_002c-setting-up">:server:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003aserver_003a_002c-troubleshooting">:server:, 
troubleshooting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connection">Connection</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-8">&lt;</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003c_003c_003c_003c_003c_003c_003c">&lt;&lt;&lt;&lt;&lt;&lt;&lt;</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-9">=</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003d_003d_003d_003d_003d_003d_003d">=======</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-10">&gt;</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_003e_003e_003e_003e_003e_003e_003e">&gt;&gt;&gt;&gt;&gt;&gt;&gt;</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-11">_</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-_005f_005f-files-_0028VMS_0029">__ files 
(VMS)</a>:</td><td>&nbsp;</td><td valign="top"><a href="#update-output">update 
output</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Abandoning-work">Abandoning 
work</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Editing-files">Editing 
files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Access-a-branch">Access a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-add-_0028subcommand_0029">add 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Adding-files">Adding files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-add-_0028subcommand_0029-1">add 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#add">add</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Adding-a-tag">Adding a 
tag</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Adding-files">Adding 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Adding-files">Adding 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Admin-_0028subcommand_0029">Admin 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin">admin</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Administrative-files-_0028intro_0029">Administrative files 
(intro)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Intro-administrative-files">Intro administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Administrative-files-_0028reference_0029">Administrative files 
(reference)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Administrative-files">Administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Administrative-files_002c-editing-them">Administrative files, 
editing them</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Intro-administrative-files">Intro administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Alias-modules">Alias 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Alias-modules">Alias 
modules</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-ALL-in-commitinfo">ALL in 
commitinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Ampersand-modules">Ampersand 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Ampersand-modules">Ampersand modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-annotate-_0028subcommand_0029">annotate 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#annotate">annotate</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Atomic-transactions_002c-lack-of">Atomic transactions, lack 
of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Attic">Attic</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Attic">Attic</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Authenticated-client_002c-using">Authenticated client, 
using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-client">Password authentication 
client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Authenticating-server_002c-setting-up">Authenticating server, 
setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Authentication_002c-stream">Authentication, 
stream</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Author-keyword">Author 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Automatically-ignored-files">Automatically ignored 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Avoiding-editor-invocation">Avoiding editor 
invocation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Backing-up_002c-repository">Backing up, 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Backing-up">Backing up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Base-directory_002c-in-CVS-directory">Base directory, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-BASE_002c-as-reserved-tag-name">BASE, as reserved tag 
name</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-BASE_002c-special-tag">BASE, 
special tag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Baserev-file_002c-in-CVS-directory">Baserev file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Baserev_002etmp-file_002c-in-CVS-directory">Baserev.tmp file, in 
CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Bill-of-materials">Bill of 
materials</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Builds">Builds</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Binary-files">Binary 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Binary-files">Binary 
files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch-merge-example">Branch 
merge example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch-number">Branch 
number</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch-number-1">Branch 
number</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branches-and-revisions">Branches and revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Branch-tags_002c-deleting">Branch tags, 
deleting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch-tags_002c-moving">Branch 
tags, moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch_002c-accessing">Branch, 
accessing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch_002c-check-out">Branch, 
check out</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch_002c-creating-a">Branch, 
creating a</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch_002c-identifying">Branch, 
identifying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch_002c-retrieving">Branch, 
retrieving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branch_002c-vendor_002d">Branch, 
vendor-</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branches-motivation">Branches 
motivation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branches-motivation">Branches motivation</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Branches_002c-copying-changes-between">Branches, copying changes 
between</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Branches_002c-sticky">Branches, 
sticky</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Branching">Branching</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Bringing-a-file-up-to-date">Bringing a file up to 
date</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Bugs-in-this-manual-or-CVS">Bugs 
in this manual or CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Bugs_002c-reporting">Bugs, 
reporting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Builds">Builds</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Builds">Builds</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Changes_002c-copying-between-branches">Changes, copying between 
branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Changing-a-log-message">Changing 
a log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Check-out-a-branch">Check out a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Checked-out-copy_002c-keeping">Checked out copy, 
keeping</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keeping-a-checked-out-copy">Keeping a checked out copy</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Checking-out-source">Checking 
out source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-the-source">Getting the source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-checkout-_0028subcommand_0029">checkout 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#checkout">checkout</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Checkout-program">Checkout 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Checkout_002c-as-term-for-getting-ready-to-edit">Checkout, as term 
for getting ready to edit</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Checkout_002c-example">Checkout, 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-the-source">Getting the source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-checkoutlist">checkoutlist</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#checkoutlist">checkoutlist</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Choosing_002c-reserved-or-unreserved-checkouts">Choosing, reserved 
or unreserved checkouts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Choosing-a-model">Choosing a model</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Cleaning-up">Cleaning 
up</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Cleaning-up">Cleaning 
up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Client_002fServer-Operation">Client/Server 
Operation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Client_002fServer-Operation_002c-port-specification">Client/Server 
Operation, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Client_002fServer-Operation_002c-port-specification-1">Client/Server
 Operation, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-co-_0028subcommand_0029">co 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#checkout">checkout</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Command-reference">Command 
reference</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Command-structure">Command 
structure</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Structure">Structure</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Comment-leader">Comment 
leader</a>:</td><td>&nbsp;</td><td valign="top"><a href="#admin-options">admin 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-commit-_0028subcommand_0029">commit 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commit">commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-commitinfo"><samp>commitinfo</samp></a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-commitinfo_002c-command-environment"><samp>commitinfo</samp>, 
command environment</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-commitinfo_002c-working-directory"><samp>commitinfo</samp>, 
working directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Commits_002c-precommit-verification-of">Commits, precommit 
verification of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Committing-changes-to-files">Committing changes to 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Committing-your-changes">Committing your changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Committing_002c-administrative-support-files">Committing, 
administrative support files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commit-files">commit files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Committing_002c-when-to">Committing, when 
to</a>:</td><td>&nbsp;</td><td valign="top"><a href="#When-to-commit">When to 
commit</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Common-options">Common 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Common-syntax-of-info-files">Common syntax of info 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Compatibility_002c-between-CVS-versions">Compatibility, between 
CVS versions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Compatibility">Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Compression">Compression</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Compression-1">Compression</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-COMSPEC_002c-environment-variable">COMSPEC, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-config_002c-in-CVSROOT">config, 
in CVSROOT</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Conflict-markers">Conflict 
markers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Conflict-resolution">Conflict 
resolution</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Conflicts-_0028merge-example_0029">Conflicts (merge 
example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Contributors-_0028CVS-program_0029">Contributors (CVS 
program)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Contributors-_0028manual_0029">Contributors 
(manual)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Credits">Credits</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Copying-a-repository">Copying a 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-a-repository">Moving a repository</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Copying-changes">Copying 
changes</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Correcting-a-log-message">Correcting a log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a href="#admin-options">admin 
options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Creating-a-branch">Creating a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Creating-a-project">Creating a 
project</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Starting-a-new-project">Starting a new project</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Creating-a-repository">Creating 
a repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-repository">Creating a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Credits-_0028CVS-program_0029">Credits (CVS 
program)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Credits-_0028manual_0029">Credits 
(manual)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Credits">Credits</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS-1_002e6_002c-and-watches">CVS 1.6, and 
watches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Watches-Compatibility">Watches Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS-command-structure">CVS 
command structure</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Structure">Structure</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS-directory_002c-in-repository">CVS directory, in 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#CVS-in-repository">CVS in repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS-directory_002c-in-working-directory">CVS directory, in working 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS-passwd-file">CVS passwd 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002c-history-of">CVS, 
history of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002c-introduction-to">CVS, 
introduction to</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002c-versions-of">CVS, 
versions of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Compatibility">Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002fBase-directory">CVS/Base 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fBaserev-file">CVS/Baserev file</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Working-directory-storage">Working directory 
storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fBaserev_002etmp-file">CVS/Baserev.tmp 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fEntries-file">CVS/Entries file</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Working-directory-storage">Working directory 
storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fEntries_002eBackup-file">CVS/Entries.Backup 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fEntries_002eLog-file">CVS/Entries.Log 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fEntries_002eStatic-file">CVS/Entries.Static 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002fNotify-file">CVS/Notify 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fNotify_002etmp-file">CVS/Notify.tmp 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fRepository-file">CVS/Repository 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002fRoot-file">CVS/Root 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVS_002fTag-file">CVS/Tag 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_002fTemplate-file">CVS/Template 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-cvsadmin">cvsadmin</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin">admin</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSEDITOR_002c-environment-variable">CVSEDITOR, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Committing-your-changes">Committing your changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSEDITOR_002c-environment-variable-1">CVSEDITOR, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSEDITOR_002c-internal-variable">CVSEDITOR, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-cvsignore-_0028admin-file_0029_002c-global">cvsignore (admin 
file), global</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSIGNORE_002c-environment-variable">CVSIGNORE, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSREAD_002c-environment-variable">CVSREAD, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSREAD_002c-overriding">CVSREAD, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-cvsroot">cvsroot</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-CVSROOT-_0028file_0029">CVSROOT 
(file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Administrative-files">Administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002c-environment-variable">CVSROOT, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002c-internal-variable">CVSROOT, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002c-module-name">CVSROOT, module 
name</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Intro-administrative-files">Intro administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002c-multiple-repositories">CVSROOT, multiple 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-repositories">Multiple repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002c-overriding">CVSROOT, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002c-storage-of-files">CVSROOT, storage of 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#CVSROOT-storage">CVSROOT storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002fconfig">CVSROOT/config</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002fEmptydir-directory">CVSROOT/Emptydir 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002fval_002dtags-file_002c-and-read_002donly-access-to-projects">CVSROOT/val-tags
 file, and read-only access to projects</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSROOT_002fval_002dtags-file_002c-forcing-tags-into">CVSROOT/val-tags
 file, forcing tags into</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSUMASK_002c-environment-variable">CVSUMASK, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-cvswrappers-_0028admin-file_0029">cvswrappers (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Wrappers">Wrappers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSWRAPPERS_002c-environment-variable">CVSWRAPPERS, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Wrappers">Wrappers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVSWRAPPERS_002c-environment-variable-1">CVSWRAPPERS, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fCLIENT_005fLOG_002c-environment-variable">CVS_CLIENT_LOG, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fCLIENT_005fPORT">CVS_CLIENT_PORT</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="#Kerberos-authenticated">Kerberos 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fIGNORE_005fREMOTE_005fROOT_002c-environment-variable">CVS_IGNORE_REMOTE_ROOT,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fPASSFILE_002c-environment-variable">CVS_PASSFILE, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-client">Password authentication 
client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fRCMD_005fPORT_002c-environment-variable">CVS_RCMD_PORT, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fRSH_002c-environment-variable">CVS_RSH, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fSERVER_002c-and-_003afork_003a">CVS_SERVER, and 
:fork:</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-fork">Connecting via fork</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fSERVER_002c-environment-variable">CVS_SERVER, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fSERVER_005fSLEEP_002c-environment-variable">CVS_SERVER_SLEEP,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fSSH_002c-environment-variable">CVS_SSH, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-CVS_005fUSER_002c-environment-variable">CVS_USER, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Date-keyword">Date 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Dates">Dates</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Dead-state">Dead 
state</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Attic">Attic</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Decimal-revision-number">Decimal 
revision number</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-DEFAULT-in-commitinfo">DEFAULT 
in commitinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-DEFAULT-in-editinfo">DEFAULT in 
editinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-DEFAULT-in-verifymsg">DEFAULT in 
<samp>verifymsg</samp></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Defining-a-module">Defining a 
module</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Defining-the-module">Defining the module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Defining-modules-_0028intro_0029">Defining modules 
(intro)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Intro-administrative-files">Intro administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Defining-modules-_0028reference-manual_0029">Defining modules 
(reference manual)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#modules">modules</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Deleting-branch-tags">Deleting 
branch tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Deleting-files">Deleting 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Removing-files">Removing files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Deleting-revisions">Deleting 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Deleting-sticky-tags">Deleting 
sticky tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Deleting-tags">Deleting 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Descending-directories">Descending 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Recursive-behavior">Recursive behavior</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Device-nodes">Device 
nodes</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Files">Special 
Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Diff">Diff</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Viewing-differences">Viewing differences</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-diff-_0028subcommand_0029">diff 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#diff">diff</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Differences_002c-merging">Differences, 
merging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Directories_002c-moving">Directories, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-directories">Moving directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Directories_002c-removing">Directories, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Removing-directories">Removing directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Directory_002c-descending">Directory, 
descending</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Recursive-behavior">Recursive behavior</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Disjoint-repositories">Disjoint 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-repositories">Multiple repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Distributing-log-messages">Distributing log 
messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-driver_002ec-_0028merge-example_0029">driver.c (merge 
example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-edit-_0028subcommand_0029">edit 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-editinfo-_0028admin-file_0029">editinfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Editing-administrative-files">Editing administrative 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Intro-administrative-files">Intro administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Editing-the-modules-file">Editing the modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Defining-the-module">Defining the module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Editor_002c-avoiding-invocation-of">Editor, avoiding invocation 
of</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Common-options">Common 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EDITOR_002c-environment-variable">EDITOR, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Committing-your-changes">Committing your changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EDITOR_002c-environment-variable-1">EDITOR, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-EDITOR_002c-internal-variable">EDITOR, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-EDITOR_002c-overriding">EDITOR, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Editor_002c-specifying-per-module">Editor, specifying per 
module</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-editors-_0028subcommand_0029">editors 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Watch-information">Watch information</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-emerge">emerge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Emptydir_002c-in-CVSROOT-directory">Emptydir, in CVSROOT 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Encryption">Encryption</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Entries-file_002c-in-CVS-directory">Entries file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Entries_002eBackup-file_002c-in-CVS-directory">Entries.Backup 
file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Entries_002eLog-file_002c-in-CVS-directory">Entries.Log file, in 
CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Entries_002eStatic-file_002c-in-CVS-directory">Entries.Static 
file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Environment-variables">Environment 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-environment-variables_002c-passed-to-administrative-files">environment
 variables, passed to administrative files</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Errors_002c-reporting">Errors, 
reporting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Example-of-a-work_002dsession">Example of a 
work-session</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Example-of-merge">Example of 
merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Example_002c-branch-merge">Example, branch 
merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Excluding-directories_002c-in-modules-file">Excluding directories, 
in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Excluding-directories">Excluding directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Exit-status_002c-of-commitinfo">Exit status, of 
commitinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Exit-status_002c-of-CVS">Exit 
status, of CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Exit-status">Exit status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Exit-status_002c-of-editor">Exit 
status, of editor</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Exit-status_002c-of-verifymsg">Exit status, of 
<samp>verifymsg</samp></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-export-_0028subcommand_0029">export 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#export">export</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Export-program">Export 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Fetching-source">Fetching 
source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-the-source">Getting the source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-File-had-conflicts-on-merge">File had conflicts on 
merge</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-File-locking">File 
locking</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-File-permissions_002c-general">File permissions, 
general</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-File-permissions_002c-Windows_002dspecific">File permissions, 
Windows-specific</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Windows-permissions">Windows permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-File-status">File 
status</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Files_002c-moving">Files, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Moving-files">Moving 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Files_002c-reference-manual">Files, reference 
manual</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Administrative-files">Administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Fixing-a-log-message">Fixing a 
log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Forcing-a-tag-match">Forcing a 
tag match</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-fork_002c-access-method">fork, 
access method</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-fork">Connecting via fork</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Form-for-log-message">Form for 
log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Format-of-CVS-commands">Format 
of CVS commands</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Structure">Structure</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Getting-started">Getting 
started</a>:</td><td>&nbsp;</td><td valign="top"><a href="#A-sample-session">A 
sample session</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Getting-the-source">Getting the 
source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-the-source">Getting the source</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Global-cvsignore">Global 
cvsignore</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Global-options">Global 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Group_002c-UNIX-file-permissions_002c-in-repository">Group, UNIX 
file permissions, in repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification">gserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1">gserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-GSSAPI">GSSAPI</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#GSSAPI-authenticated">GSSAPI authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Gzip">Gzip</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Gzip-1">Gzip</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Hard-links">Hard 
links</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Files">Special 
Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-HEAD_002c-as-reserved-tag-name">HEAD, as reserved tag 
name</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-HEAD_002c-special-tag">HEAD, 
special tag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Header-keyword">Header 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-history-_0028subcommand_0029">history 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#history">history</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-History-browsing">History 
browsing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#History-browsing">History browsing</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-History-file">History 
file</a>:</td><td>&nbsp;</td><td valign="top"><a href="#history-file">history 
file</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-History-files">History 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository-files">Repository files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-History-of-CVS">History of 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a href="#What-is-CVS_003f">What 
is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-HOME_002c-environment-variable">HOME, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-HOMEDRIVE_002c-environment-variable">HOMEDRIVE, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-HOMEPATH_002c-environment-variable">HOMEPATH, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Id-keyword">Id 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Ident-_0028shell-command_0029">Ident (shell 
command)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Using-keywords">Using keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Identifying-a-branch">Identifying a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Identifying-files">Identifying 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-substitution">Keyword substitution</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Ignored-files">Ignored 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-IgnoreUnknownConfigKeys_002c-in-CVSROOT_002fconfig">IgnoreUnknownConfigKeys,
 in CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Ignoring-files">Ignoring 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-import-_0028subcommand_0029">import 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#import">import</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Importing-files">Importing 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#From-files">From 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Importing-files_002c-from-other-version-control-systems">Importing 
files, from other version control systems</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#From-other-version-control-systems">From other version 
control systems</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Importing-modules">Importing 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a href="#First-import">First 
import</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Index">Index</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Index">Index</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-inetd_002c-configuring-for-pserver">inetd, configuring for 
pserver</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Info-files">Info 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Trigger-Scripts">Trigger Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Info-files-_0028syntax_0029">Info files 
(syntax)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Info-files_002c-security">Info 
files, security</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Trigger-Script-Security">Trigger Script Security</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Informing-others">Informing 
others</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Informing-others">Informing others</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-init-_0028subcommand_0029">init 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-repository">Creating a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Installed-images-_0028VMS_0029">Installed images 
(VMS)</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Internal-variables">Internal 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Introduction-to-CVS">Introduction to 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a href="#What-is-CVS_003f">What 
is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Invoking-CVS">Invoking 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Invoking-CVS">Invoking 
CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Isolation">Isolation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#History-browsing">History browsing</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Join">Join</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Keeping-a-checked-out-copy">Keeping a checked out 
copy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keeping-a-checked-out-copy">Keeping a checked out copy</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Kerberos_002c-using-_003agserver_003a">Kerberos, using 
:gserver:</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#GSSAPI-authenticated">GSSAPI authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Kerberos_002c-using-_003akserver_003a">Kerberos, using 
:kserver:</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Kerberos-authenticated">Kerberos authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Kerberos_002c-using-kerberized-rsh">Kerberos, using kerberized 
rsh</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Keyword-expansion">Keyword 
expansion</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-substitution">Keyword substitution</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Keyword-List">Keyword 
List</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Keyword-list">Keyword 
list</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Keyword-substitution">Keyword 
substitution</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-substitution">Keyword substitution</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Keyword-substitution_002c-and-merging">Keyword substitution, and 
merging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-and-keywords">Merging and keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Keyword-substitution_002c-changing-modes">Keyword substitution, 
changing modes</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Substitution-modes">Substitution modes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Kflag">Kflag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Substitution-modes">Substitution modes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-kinit">kinit</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Kerberos-authenticated">Kerberos authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Known-bugs-in-this-manual-or-CVS">Known bugs in this manual or 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification">kserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1">kserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Layout-of-repository">Layout of 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Left_002dhand-options">Left-hand 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Linear-development">Linear 
development</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Link_002c-symbolic_002c-importing">Link, symbolic, 
importing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#import-output">import output</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-List_002c-mailing-list">List, 
mailing list</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Locally-Added">Locally 
Added</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Locally-Modified">Locally 
Modified</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Locally-Removed">Locally 
Removed</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-LockDir_002c-in-CVSROOT_002fconfig">LockDir, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Locker-keyword">Locker 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Locking-files">Locking 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Locks_002c-cvs_002c-and-backups">Locks, cvs, and 
backups</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Backing-up">Backing 
up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Locks_002c-cvs_002c-introduction">Locks, cvs, 
introduction</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Locks_002c-cvs_002c-technical-details">Locks, cvs, technical 
details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-log-_0028subcommand_0029">log 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#log">log</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-information_002c-saving">Log 
information, saving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#history-file">history file</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-keyword">Log 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-message-entry">Log message 
entry</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Committing-your-changes">Committing your changes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-message-template">Log 
message template</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-message_002c-correcting">Log 
message, correcting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-message_002c-verifying">Log 
message, verifying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-messages">Log 
messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Log-messages_002c-editing">Log 
messages, editing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-LogHistory_002c-in-CVSROOT_002fconfig">LogHistory, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Login-_0028subcommand_0029">Login 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-client">Password authentication 
client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-loginfo-_0028admin-file_0029">loginfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-LOGNAME_002c-environment-variable">LOGNAME, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Logout-_0028subcommand_0029">Logout 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-client">Password authentication 
client</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Mail_002c-automatic-mail-on-commit">Mail, automatic mail on 
commit</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Informing-others">Informing others</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Mailing-list">Mailing 
list</a>:</td><td>&nbsp;</td><td valign="top"><a href="#What-is-CVS_003f">What 
is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Mailing-log-messages">Mailing 
log messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Main-trunk-and-branches">Main 
trunk and branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-make">make</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Builds">Builds</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Many-repositories">Many 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-repositories">Multiple repositories</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Markers_002c-conflict">Markers, 
conflict</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Merge_002c-an-example">Merge, an 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Merge_002c-branch-example">Merge, branch 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Merging">Merging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Merging-a-branch">Merging a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Merging-a-file">Merging a 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Merging-two-revisions">Merging 
two revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Merging_002c-and-keyword-substitution">Merging, and keyword 
substitution</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-and-keywords">Merging and keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-mkmodules">mkmodules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Modifications_002c-copying-between-branches">Modifications, 
copying between branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Module-status">Module 
status</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Module_002c-defining">Module, 
defining</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Defining-the-module">Defining the module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Modules-_0028admin-file_0029">Modules (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#modules">modules</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Modules-file">Modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Intro-administrative-files">Intro administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Modules-file-program-options">Modules file program 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-program-options">Module program options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Modules-file_002c-changing">Modules file, 
changing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Defining-the-module">Defining the module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-modules_002edb">modules.db</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#CVSROOT-storage">CVSROOT storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-modules_002edir">modules.dir</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#CVSROOT-storage">CVSROOT storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-modules_002epag">modules.pag</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#CVSROOT-storage">CVSROOT storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Motivation-for-branches">Motivation for 
branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branches-motivation">Branches motivation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Moving-a-repository">Moving a 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-a-repository">Moving a repository</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Moving-branch-tags">Moving 
branch tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Moving-directories">Moving 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-directories">Moving directories</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Moving-files">Moving 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Moving-files">Moving 
files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Moving-tags">Moving 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Multiple-developers">Multiple 
developers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Multiple-repositories">Multiple 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-repositories">Multiple repositories</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Name-keyword">Name 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Name_002c-symbolic-_0028tag_0029">Name, symbolic 
(tag)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Needs-Checkout">Needs 
Checkout</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Needs-Merge">Needs 
Merge</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Needs-Patch">Needs 
Patch</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Newsgroups">Newsgroups</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-notify-_0028admin-file_0029">notify (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Notify-file_002c-in-CVS-directory">Notify file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Notify_002etmp-file_002c-in-CVS-directory">Notify.tmp file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Number_002c-branch">Number, 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Number_002c-branch-1">Number, 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branches-and-revisions">Branches and revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Number_002c-revision_002d">Number, 
revision-</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Option-defaults">Option 
defaults</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#g_t_007e_002f_002ecvsrc">~/.cvsrc</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Options_002c-global">Options, 
global</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Options_002c-in-modules-file">Options, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Module-options">Module 
options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Outdating-revisions">Outdating 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Overlap">Overlap</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Overriding-CVSREAD">Overriding 
CVSREAD</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Overriding-CVSROOT">Overriding 
CVSROOT</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Overriding-EDITOR">Overriding 
EDITOR</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Overriding-RCSBIN">Overriding 
RCSBIN</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Overriding-TMPDIR">Overriding 
TMPDIR</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Overview">Overview</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Overview">Overview</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Ownership_002c-saving-in-CVS">Ownership, saving in 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Files">Special 
Files</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Parallel-repositories">Parallel 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-repositories">Multiple repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-passwd-_0028admin-file_0029">passwd (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Password-client_002c-using">Password client, 
using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-client">Password authentication 
client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Password-server_002c-setting-up">Password server, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-PATH_002c-environment-variable">PATH, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Per_002ddirectory-sticky-tags_002fdates">Per-directory sticky 
tags/dates</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Per_002dmodule-editor">Per-module 
editor</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Permissions_002c-general">Permissions, 
general</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Permissions_002c-saving-in-CVS">Permissions, saving in 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Files">Special 
Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Permissions_002c-Windows_002dspecific">Permissions, 
Windows-specific</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Windows-permissions">Windows permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Policy">Policy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#When-to-commit">When to commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-port_002c-specifying-for-remote-repositories">port, specifying for 
remote repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-port_002c-specifying-for-remote-repositories-1">port, specifying 
for remote repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Precommit-checking">Precommit 
checking</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification">pserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1">pserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-pserver-_0028subcommand_0029">pserver 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-PVCS_002c-importing-files-from">PVCS, importing files 
from</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#From-other-version-control-systems">From other version control 
systems</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-RCS-history-files">RCS history 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository-files">Repository files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-RCS-revision-numbers">RCS 
revision numbers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-RCS_002c-importing-files-from">RCS, importing files 
from</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#From-other-version-control-systems">From other version control 
systems</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-RCS_002dstyle-locking">RCS-style 
locking</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-RCSBIN_002c-in-CVSROOT_002fconfig">RCSBIN, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-RCSBIN_002c-internal-variable">RCSBIN, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-RCSBIN_002c-overriding">RCSBIN, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-RCSfile-keyword">RCSfile 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-rcsinfo-_0028admin-file_0029">rcsinfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-rdiff-_0028subcommand_0029">rdiff 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#rdiff">rdiff</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Read_002donly-files_002c-and-_002dr">Read-only files, and 
-r</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Global-options">Global 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Read_002donly-files_002c-and-CVSREAD">Read-only files, and 
CVSREAD</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Read_002donly-files_002c-and-watches">Read-only files, and 
watches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Setting-a-watch">Setting a watch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Read_002donly-files_002c-in-repository">Read-only files, in 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Read_002donly-mode">Read-only 
mode</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Global-options">Global 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Read_002donly-repository-access">Read-only repository 
access</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Read_002donly-access">Read-only access</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-readers-_0028admin-file_0029">readers (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Read_002donly-access">Read-only access</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Recursive-_0028directory-descending_0029">Recursive (directory 
descending)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Recursive-behavior">Recursive behavior</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Reference-manual-_0028files_0029">Reference manual 
(files)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Administrative-files">Administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Reference-manual-for-variables">Reference manual for 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Reference_002c-commands">Reference, 
commands</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Regular-expression-syntax">Regular expression 
syntax</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Regular-modules">Regular 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Regular-modules">Regular modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-release-_0028subcommand_0029">release 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#release">release</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Releases_002c-revisions-and-versions">Releases, revisions and 
versions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Versions-revisions-releases">Versions revisions releases</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Releasing-your-working-copy">Releasing your working 
copy</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Cleaning-up">Cleaning 
up</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Remote-repositories">Remote 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Remote-repositories_002c-port-specification">Remote repositories, 
port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Remote-repositories_002c-port-specification-1">Remote 
repositories, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Remove-_0028subcommand_0029">Remove 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Removing-files">Removing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-remove-_0028subcommand_0029">remove 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#remove">remove</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Removing-a-change">Removing a 
change</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Removing-branch-tags">Removing 
branch tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Removing-directories">Removing 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Removing-directories">Removing directories</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Removing-files">Removing 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Removing-files">Removing files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Removing-tags">Removing 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Removing-your-working-copy">Removing your working 
copy</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Cleaning-up">Cleaning 
up</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Renaming-directories">Renaming 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-directories">Moving directories</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Renaming-files">Renaming 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Moving-files">Moving 
files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Renaming-tags">Renaming 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Replacing-a-log-message">Replacing a log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a href="#admin-options">admin 
options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Reporting-bugs">Reporting 
bugs</a>:</td><td>&nbsp;</td><td valign="top"><a href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repositories_002c-multiple">Repositories, 
multiple</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-repositories">Multiple repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repositories_002c-remote">Repositories, 
remote</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repositories_002c-remote_002c-port-specification">Repositories, 
remote, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repositories_002c-remote_002c-port-specification-1">Repositories, 
remote, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository-_0028intro_0029">Repository 
(intro)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository-file_002c-in-CVS-directory">Repository file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository_002c-backing-up">Repository, backing 
up</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Backing-up">Backing 
up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository_002c-example">Repository, 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository_002c-how-data-is-stored">Repository, how data is 
stored</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository-storage">Repository storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository_002c-moving">Repository, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Moving-a-repository">Moving a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Repository_002c-setting-up">Repository, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-repository">Creating a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-RereadLogAfterVerify_002c-in-CVSROOT_002fconfig">RereadLogAfterVerify,
 in CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Reserved-checkouts">Reserved 
checkouts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Resetting-sticky-tags">Resetting 
sticky tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Resolving-a-conflict">Resolving 
a conflict</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Restoring-old-version-of-removed-file">Restoring old version of 
removed file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Resurrecting-old-version-of-dead-file">Resurrecting old version of 
dead file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Retrieve-a-branch">Retrieve a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Accessing-branches">Accessing branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Retrieving-an-old-revision-using-tags">Retrieving an old revision 
using tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Reverting-to-repository-version">Reverting to repository 
version</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Revision-keyword">Revision 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Revision-management">Revision 
management</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-management">Revision management</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Revision-numbers">Revision 
numbers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Revision-numbers-_0028branches_0029">Revision numbers 
(branches)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branches-and-revisions">Branches and revisions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Revision-tree">Revision 
tree</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Revision-tree_002c-making-branches">Revision tree, making 
branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branching-and-merging">Branching and merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Revisions_002c-merging-differences-between">Revisions, merging 
differences between</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Revisions_002c-versions-and-releases">Revisions, versions and 
releases</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Versions-revisions-releases">Versions revisions releases</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Right_002dhand-options">Right-hand 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Root-file_002c-in-CVS-directory">Root file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Specifying-a-repository">Specifying a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-rsh">rsh</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-rsh-replacements-_0028Kerberized_002c-SSH_002c-_0026c_0029">rsh 
replacements (Kerberized, SSH, &amp;c)</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-rtag-_0028subcommand_0029">rtag 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tagging-by-date_002ftag">Tagging by date/tag</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-rtag_002c-creating-a-branch-using">rtag, creating a branch 
using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Saving-space">Saving 
space</a>:</td><td>&nbsp;</td><td valign="top"><a href="#admin-options">admin 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-SCCS_002c-importing-files-from">SCCS, importing files 
from</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#From-other-version-control-systems">From other version control 
systems</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Security_002c-file-permissions-in-repository">Security, file 
permissions in repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Security_002c-GSSAPI">Security, 
GSSAPI</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#GSSAPI-authenticated">GSSAPI authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Security_002c-Kerberos">Security, 
Kerberos</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Kerberos-authenticated">Kerberos authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Security_002c-of-pserver">Security, of 
pserver</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-security">Password authentication 
security</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Security_002c-setuid">Security, 
setuid</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Server_002c-CVS">Server, 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Remote-repositories">Remote repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Server_002c-temporary-directories">Server, temporary 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Server-temporary-directory">Server temporary directory</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Setgid">Setgid</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Setting-up-a-repository">Setting 
up a repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-repository">Creating a repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Setuid">Setuid</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Source-keyword">Source 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Source_002c-getting-CVS-source">Source, getting CVS 
source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Source_002c-getting-from-CVS">Source, getting from 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-the-source">Getting the source</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Special-files">Special 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Files">Special 
Files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Specifying-dates">Specifying 
dates</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Common-options">Common 
options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Spreading-information">Spreading 
information</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Informing-others">Informing others</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-ssh">ssh</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-SSH-_0028rsh-replacement_0029">SSH (rsh 
replacement)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Connecting-via-rsh">Connecting via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Starting-a-project-with-CVS">Starting a project with 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Starting-a-new-project">Starting a new project</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-State-keyword">State 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Status-of-a-file">Status of a 
file</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Status-of-a-module">Status of a 
module</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Sticky-date">Sticky 
date</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Sticky-tags">Sticky 
tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Sticky-tags">Sticky 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Sticky-tags">Sticky 
tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Sticky-tags_002c-resetting">Sticky tags, 
resetting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Sticky-tags_002fdates_002c-per_002ddirectory">Sticky tags/dates, 
per-directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Storing-log-messages">Storing 
log messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Stream-authentication">Stream 
authentication</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Structure">Structure</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Structure">Structure</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Subdirectories">Subdirectories</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#Recursive-behavior">Recursive behavior</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Support_002c-getting-CVS-support">Support, getting CVS 
support</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Symbolic-link_002c-importing">Symbolic link, 
importing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#import-output">import output</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Symbolic-links">Symbolic 
links</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Files">Special 
Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Symbolic-name-_0028tag_0029">Symbolic name 
(tag)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Syntax-of-info-files">Syntax of 
info files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-SystemAuth_002c-in-CVSROOT_002fconfig">SystemAuth, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-tag-_0028subcommand_0029">tag 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tagging-the-working-directory">Tagging the working 
directory</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Tag-file_002c-in-CVS-directory">Tag file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tag-program">Tag 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-tag_002c-command_002c-introduction">tag, command, 
introduction</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-tag_002c-creating-a-branch-using">tag, creating a branch 
using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tag_002c-example">Tag, 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Tag_002c-retrieving-old-revisions">Tag, retrieving old 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tag_002c-symbolic-name">Tag, 
symbolic name</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-taginfo-_0028admin-file_0029">taginfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#taginfo">taginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Tags">Tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tags_002c-deleting">Tags, 
deleting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tags_002c-logging">Tags, 
logging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#taginfo">taginfo</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tags_002c-moving">Tags, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tags_002c-renaming">Tags, 
renaming</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tags_002c-sticky">Tags, 
sticky</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Sticky-tags">Sticky 
tags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tags_002c-verifying">Tags, 
verifying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#taginfo">taginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-tc_002c-Trivial-Compiler-_0028example_0029">tc, Trivial Compiler 
(example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Team-of-developers">Team of 
developers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-TEMP_002c-environment-variable">TEMP, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Template-file_002c-in-CVS-directory">Template file, in CVS 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Working-directory-storage">Working directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Template-for-log-message">Template for log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Temporary-directories_002c-and-server">Temporary directories, and 
server</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Server-temporary-directory">Server temporary directory</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Temporary-files_002c-location-of">Temporary files, location 
of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Third_002dparty-sources">Third-party 
sources</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Time">Time</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Timezone_002c-in-input">Timezone, in 
input</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Common-options">Common 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Timezone_002c-in-output">Timezone, in 
output</a>:</td><td>&nbsp;</td><td valign="top"><a href="#log">log</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-TMP_002c-environment-variable">TMP, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-TMPDIR_002c-environment-variable">TMPDIR, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-TMPDIR_002c-overriding">TMPDIR, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-TopLevelAdmin_002c-in-CVSROOT_002fconfig">TopLevelAdmin, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Trace">Trace</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Traceability">Traceability</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#History-browsing">History browsing</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Tracking-sources">Tracking 
sources</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Transactions_002c-atomic_002c-lack-of">Transactions, atomic, lack 
of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Trigger-scripts">Trigger 
scripts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Trigger-Scripts">Trigger Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Trigger-scripts_002c-security">Trigger scripts, 
security</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Trigger-Script-Security">Trigger Script Security</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Trivial-Compiler-_0028example_0029">Trivial Compiler 
(example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Typical-repository">Typical 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Repository">Repository</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Umask_002c-for-repository-files">Umask, for repository 
files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Undoing-a-change">Undoing a 
change</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Merging-two-revisions">Merging two revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-unedit-_0028subcommand_0029">unedit 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Unknown">Unknown</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Unreserved-checkouts">Unreserved 
checkouts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Unresolved-Conflict">Unresolved 
Conflict</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Up_002dto_002ddate">Up-to-date</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-update-_0028subcommand_0029">update 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#update">update</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Update_002c-introduction">Update, 
introduction</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-update_002c-to-display-file-status">update, to display file 
status</a>:</td><td>&nbsp;</td><td valign="top"><a href="#File-status">File 
status</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Updating-a-file">Updating a 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-User-aliases">User 
aliases</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-User-variables">User 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-USER_002c-environment-variable">USER, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-USER_002c-internal-variable">USER, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-users-_0028admin-file_0029">users (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-val_002dtags-file_002c-and-read_002donly-access-to-projects">val-tags
 file, and read-only access to projects</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-val_002dtags-file_002c-forcing-tags-into">val-tags file, forcing 
tags into</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Variables">Variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Vendor">Vendor</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Vendor-branch">Vendor 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-verifymsg-_0028admin-file_0029"><samp>verifymsg</samp> (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-verifymsg_002c-changing-the-log-message"><samp>verifymsg</samp>, 
changing the log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-verifymsg_002c-changing-the-log-message-1"><samp>verifymsg</samp>, 
changing the log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-version-_0028subcommand_0029">version 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Versions_002c-of-CVS">Versions, 
of CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Compatibility">Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Versions_002c-revisions-and-releases">Versions, revisions and 
releases</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Versions-revisions-releases">Versions revisions releases</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Viewing-differences">Viewing 
differences</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Viewing-differences">Viewing differences</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-VISUAL_002c-environment-variable">VISUAL, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Committing-your-changes">Committing your changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-VISUAL_002c-environment-variable-1">VISUAL, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Environment-variables">Environment variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-VISUAL_002c-internal-variable">VISUAL, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Variables">Variables</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-watch-add-_0028subcommand_0029">watch add 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-watch-off-_0028subcommand_0029">watch off 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Setting-a-watch">Setting a watch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-watch-on-_0028subcommand_0029">watch on 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Setting-a-watch">Setting a watch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-watch-remove-_0028subcommand_0029">watch remove 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-watchers-_0028subcommand_0029">watchers 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Watch-information">Watch information</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Watches">Watches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Watches">Watches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-wdiff-_0028import-example_0029">wdiff (import 
example)</a>:</td><td>&nbsp;</td><td valign="top"><a href="#First-import">First 
import</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Web-pages_002c-maintaining-with-CVS">Web pages, maintaining with 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Keeping-a-checked-out-copy">Keeping a checked out copy</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-What-_0028shell-command_0029">What (shell 
command)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Using-keywords">Using keywords</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-What-branches-are-good-for">What 
branches are good for</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Branches-motivation">Branches motivation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-What-is-CVS-not_003f">What is 
CVS not?</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#What-is-CVS-not_003f">What is CVS not?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-What-is-CVS_003f">What is 
CVS?</a>:</td><td>&nbsp;</td><td valign="top"><a href="#What-is-CVS_003f">What 
is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-When-to-commit">When to 
commit</a>:</td><td>&nbsp;</td><td valign="top"><a href="#When-to-commit">When 
to commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Windows_002c-and-permissions">Windows, and 
permissions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Windows-permissions">Windows permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Work_002dsession_002c-example-of">Work-session, example 
of</a>:</td><td>&nbsp;</td><td valign="top"><a href="#A-sample-session">A 
sample session</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Working-copy">Working 
copy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Multiple-developers">Multiple developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Working-copy_002c-removing">Working copy, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Cleaning-up">Cleaning up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Wrappers">Wrappers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Wrappers">Wrappers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-writers-_0028admin-file_0029">writers (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Read_002donly-access">Read-only access</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Ximbiot">Ximbiot</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-xinetd_002c-configuring-for-pserver">xinetd, configuring for 
pserver</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Password-authentication-server">Password authentication 
server</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Zone_002c-time_002c-in-input">Zone, time, in 
input</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Common-options">Common 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Zone_002c-time_002c-in-output">Zone, time, in 
output</a>:</td><td>&nbsp;</td><td valign="top"><a href="#log">log</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" 
href="#Index_cp_symbol-1"><b>!</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-2"><b>#</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-3"><b>&amp;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-4"><b>-</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-5"><b>.</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-6"><b>/</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-7"><b>:</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-8"><b>&lt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-9"><b>=</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-10"><b>&gt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-11"><b>_</b></a>
+ &nbsp; 
+<br>
+<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr>
+
+
+
+</body>
+</html>

Index: cvs.html.gz
===================================================================
RCS file: cvs.html.gz
diff -N cvs.html.gz
Binary files /dev/null and /tmp/cvs3KAKvN differ

Index: cvs.html_node.tar.gz
===================================================================
RCS file: cvs.html_node.tar.gz
diff -N cvs.html_node.tar.gz
Binary files /dev/null and /tmp/cvs8QsKbO differ

Index: cvs.info.tar.gz
===================================================================
RCS file: cvs.info.tar.gz
diff -N cvs.info.tar.gz
Binary files /dev/null and /tmp/cvsmVelUQ differ

Index: cvs.pdf
===================================================================
RCS file: cvs.pdf
diff -N cvs.pdf
Binary files /dev/null and /tmp/cvs5yHpyR differ

Index: cvs.texi.tar.gz
===================================================================
RCS file: cvs.texi.tar.gz
diff -N cvs.texi.tar.gz
Binary files /dev/null and /tmp/cvsz7IT8P differ

Index: cvs.txt
===================================================================
RCS file: cvs.txt
diff -N cvs.txt
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ cvs.txt     28 Dec 2015 15:57:44 -0000      1.1
@@ -0,0 +1,10681 @@
+
+1 Overview
+2 The Repository
+3 Starting a project with CVS
+4 Revisions
+5 Branching and merging
+6 Recursive behavior
+7 Adding, removing, and renaming files and directories
+8 History browsing
+9 Handling binary files
+10 Multiple developers
+11 Revision management
+12 Keyword substitution
+13 Tracking third-party sources
+14 How your build system interacts with CVS
+15 Special Files
+Appendix A Guide to CVS commands
+Appendix B Quick reference to CVS commands
+Appendix C Reference manual for Administrative files
+Appendix D All environment variables which affect CVS
+Appendix E Compatibility between CVS Versions
+Appendix F Troubleshooting
+Appendix G Credits
+Appendix H Dealing with bugs in CVS or this manual
+Index
+
+1 Overview
+  1.1 What is CVS?
+  1.2 What is CVS not?
+  1.3 A sample session
+    1.3.1 Getting the source
+    1.3.2 Committing your changes
+    1.3.3 Cleaning up
+    1.3.4 Viewing differences
+2 The Repository
+  2.1 Telling CVS where your repository is
+  2.2 How data is stored in the repository
+    2.2.1 Where files are stored within the repository
+    2.2.2 File permissions
+    2.2.3 File Permission issues specific to Windows
+    2.2.4 The attic
+    2.2.5 The CVS directory in the repository
+    2.2.6 CVS locks in the repository
+    2.2.7 How files are stored in the CVSROOT directory
+  2.3 How data is stored in the working directory
+  2.4 The administrative files
+    2.4.1 Editing administrative files
+  2.5 Multiple repositories
+  2.6 Creating a repository
+  2.7 Backing up a repository
+  2.8 Moving a repository
+  2.9 Remote repositories
+    2.9.1 Server requirements
+    2.9.2 Connecting with rsh or ssh
+    2.9.3 Direct connection with password authentication
+      2.9.3.1 Setting up the server for password authentication
+      2.9.3.2 Using the client with password authentication
+      2.9.3.3 Security considerations with password authentication
+    2.9.4 Direct connection with GSSAPI
+    2.9.5 Direct connection with Kerberos
+    2.9.6 Connecting with fork
+  2.10 Read-only repository access
+  2.11 Temporary directories for the server
+3 Starting a project with CVS
+  3.1 Setting up the files
+    3.1.1 Creating a directory tree from a number of files
+    3.1.2 Creating Files From Other Version Control Systems
+    3.1.3 Creating a directory tree from scratch
+  3.2 Defining the module
+4 Revisions
+  4.1 Revision numbers
+  4.2 Versions, revisions and releases
+  4.3 Assigning revisions
+  4.4 Tags-Symbolic revisions
+  4.5 Specifying what to tag from the working directory
+  4.6 Specifying what to tag by date or revision
+  4.7 Deleting, moving, and renaming tags
+  4.8 Tagging and adding and removing files
+  4.9 Sticky tags
+5 Branching and merging
+  5.1 What branches are good for
+  5.2 Creating a branch
+  5.3 Accessing branches
+  5.4 Branches and revisions
+  5.5 Magic branch numbers
+  5.6 Merging an entire branch
+  5.7 Merging from a branch several times
+  5.8 Merging differences between any two revisions
+  5.9 Merging can add or remove files
+  5.10 Merging and keywords
+6 Recursive behavior
+7 Adding, removing, and renaming files and directories
+  7.1 Adding files to a directory
+  7.2 Removing files
+  7.3 Removing directories
+  7.4 Moving and renaming files
+    7.4.1 The Normal way to Rename
+    7.4.2 Moving the history file
+    7.4.3 Copying the history file
+  7.5 Moving and renaming directories
+8 History browsing
+  8.1 Log messages
+  8.2 The history database
+  8.3 User-defined logging
+9 Handling binary files
+  9.1 The issues with binary files
+  9.2 How to store binary files
+10 Multiple developers
+  10.1 File status
+  10.2 Bringing a file up to date
+  10.3 Conflicts example
+  10.4 Informing others about commits
+  10.5 Several developers simultaneously attempting to run CVS
+  10.6 Mechanisms to track who is editing files
+    10.6.1 Telling CVS to watch certain files
+    10.6.2 Telling CVS to notify you
+    10.6.3 How to edit a file which is being watched
+    10.6.4 Information about who is watching and editing
+    10.6.5 Using watches with old versions of CVS
+  10.7 Choosing between reserved or unreserved checkouts
+11 Revision management
+  11.1 When to commit?
+12 Keyword substitution
+  12.1 Keyword List
+  12.2 Using keywords
+  12.3 Avoiding substitution
+  12.4 Substitution modes
+  12.5 Problems with the $Log$ keyword.
+13 Tracking third-party sources
+  13.1 Importing for the first time
+  13.2 Updating with the import command
+  13.3 Reverting to the latest vendor release
+  13.4 How to handle binary files with cvs import
+  13.5 How to handle keyword substitution with cvs import
+  13.6 Multiple vendor branches
+14 How your build system interacts with CVS
+15 Special Files
+Appendix A Guide to CVS commands
+  A.1 Overall structure of CVS commands
+  A.2 CVS's exit status
+  A.3 Default options and the ~/.cvsrc file
+  A.4 Global options
+  A.5 Common command options
+  A.6 add--Add files and directories to the repository
+    A.6.1 add options
+    A.6.2 add examples
+      A.6.2.1 Adding a directory
+      A.6.2.2 Adding a file
+      A.6.2.3 Undoing a 'remove' command
+  A.7 admin--Administration
+    A.7.1 admin options
+  A.8 annotate--What revision modified each line of a file?
+    A.8.1 annotate options
+    A.8.2 annotate example
+  A.9 checkout--Check out sources for editing
+    A.9.1 checkout options
+    A.9.2 checkout examples
+  A.10 commit--Check files into the repository
+    A.10.1 commit options
+    A.10.2 commit examples
+      A.10.2.1 Committing to a branch
+      A.10.2.2 Creating the branch after editing
+  A.11 diff--Show differences between revisions
+    A.11.1 diff options
+      A.11.1.1 Line group formats
+      A.11.1.2 Line formats
+    A.11.2 diff examples
+  A.12 export--Export sources from CVS, similar to checkout
+    A.12.1 export options
+  A.13 history--Show status of files and users
+    A.13.1 history options
+  A.14 import--Import sources into CVS, using vendor branches
+    A.14.1 import options
+    A.14.2 import output
+    A.14.3 import examples
+  A.15 log--Print out log information for files
+    A.15.1 log options
+    A.15.2 log examples
+  A.16 rdiff--'patch' format diffs between releases
+    A.16.1 rdiff options
+    A.16.2 rdiff examples
+  A.17 release--Indicate that a Module is no longer in use
+    A.17.1 release options
+    A.17.2 release output
+    A.17.3 release examples
+  A.18 remove--Remove files from active use
+    A.18.1 remove options
+    A.18.2 remove examples
+      A.18.2.1 Removing a file
+      A.18.2.2 Removing entire directories
+  A.19 update--Bring work tree in sync with repository
+    A.19.1 update options
+    A.19.2 update output
+Appendix B Quick reference to CVS commands
+Appendix C Reference manual for Administrative files
+  C.1 The modules file
+    C.1.1 Alias modules
+    C.1.2 Regular modules
+    C.1.3 Ampersand modules
+    C.1.4 Excluding directories
+    C.1.5 Module options
+    C.1.6 How the modules file "program options" programs are run
+  C.2 The cvswrappers file
+  C.3 The Trigger Scripts
+    C.3.1 The common syntax
+    C.3.2 Security and the Trigger Scripts
+  C.4 The commit support files
+    C.4.1 Commitinfo
+    C.4.2 Verifying log messages
+    C.4.3 Editinfo
+      C.4.3.1 Editinfo example
+    C.4.4 Loginfo
+      C.4.4.1 Loginfo example
+      C.4.4.2 Keeping a checked out copy
+  C.5 Rcsinfo
+  C.6 Taginfo
+  C.7 Ignoring files via cvsignore
+  C.8 The checkoutlist file
+  C.9 The history file
+  C.10 Expansions in administrative files
+  C.11 The CVSROOT/config configuration file
+Appendix D All environment variables which affect CVS
+Appendix E Compatibility between CVS Versions
+Appendix F Troubleshooting
+  F.1 Partial list of error messages
+  F.2 Trouble making a connection to a CVS server
+  F.3 Other common problems
+Appendix G Credits
+Appendix H Dealing with bugs in CVS or this manual
+Index
+CVS--Concurrent Versions System v1.11.23
+****************************************
+
+This info manual describes how to use and administer CVS version
+1.11.23.
+
+Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+
+Portions
+          Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005,      2006,
+          2007 Derek R. Price,
+          Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Ximbiot
+          <http://ximbiot.com>,
+          Copyright (C) 1992, 1993, 1999 Signum Support AB,
+          and Copyright (C) others.
+
+   Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+   Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided also
+that the entire resulting derived work is distributed under the terms of
+a permission notice identical to this one.
+
+   Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+1 Overview
+**********
+
+This chapter is for people who have never used CVS, and perhaps have
+never used version control software before.
+
+   If you are already familiar with CVS and are just trying to learn a
+particular feature or remember a certain command, you can probably skip
+everything here.
+
+1.1 What is CVS?
+================
+
+CVS is a version control system.  Using it, you can record the history
+of your source files.
+
+   For example, bugs sometimes creep in when software is modified, and
+you might not detect the bug until a long time after you make the
+modification.  With CVS, you can easily retrieve old versions to see
+exactly which change caused the bug.  This can sometimes be a big help.
+
+   You could of course save every version of every file you have ever
+created.  This would however waste an enormous amount of disk space.
+CVS stores all the versions of a file in a single file in a clever way
+that only stores the differences between versions.
+
+   CVS also helps you if you are part of a group of people working on
+the same project.  It is all too easy to overwrite each others' changes
+unless you are extremely careful.  Some editors, like GNU Emacs, try to
+make sure that two people never modify the same file at the same time.
+Unfortunately, if someone is using another editor, that safeguard will
+not work.  CVS solves this problem by insulating the different
+developers from each other.  Every developer works in his own directory,
+and CVS merges the work when each developer is done.
+
+   CVS started out as a bunch of shell scripts written by Dick Grune,
+posted to the newsgroup 'comp.sources.unix' in the volume 6 release of
+July, 1986.  While no actual code from these shell scripts is present in
+the current version of CVS much of the CVS conflict resolution
+algorithms come from them.
+
+   In April, 1989, Brian Berliner designed and coded CVS.  Jeff Polk
+later helped Brian with the design of the CVS module and vendor branch
+support.
+
+   You can get CVS in a variety of ways, including free download from
+the Internet.  For more information on downloading CVS and other CVS
+topics, see:
+
+     <http://cvs.nongnu.org/>
+
+   There is a mailing list, known as <address@hidden>, devoted to
+CVS.  To subscribe or unsubscribe write to
+<address@hidden>.  If you prefer a Usenet group, there is a
+one-way mirror (posts to the email list are usually sent to the news
+group, but not vice versa) of <address@hidden> at
+<news:gnu.cvs.help>.  The right Usenet group for posts is
+<news:comp.software.config-mgmt> which is for CVS discussions (along
+with other configuration management systems).  In the future, it might
+be possible to create a 'comp.software.config-mgmt.cvs', but probably
+only if there is sufficient CVS traffic on
+<news:comp.software.config-mgmt>.
+
+   You can also subscribe to the <address@hidden> mailing list,
+described in more detail in *note BUGS::.  To subscribe send mail to
+<address@hidden>.  There is a two-way Usenet mirror (posts
+to the Usenet group are usually sent to the email list and vice versa)
+of <address@hidden> named <news:gnu.cvs.bug>.
+
+1.2 What is CVS not?
+====================
+
+CVS can do a lot of things for you, but it does not try to be everything
+for everyone.
+
+CVS is not a build system.
+
+     Though the structure of your repository and modules file interact
+     with your build system (e.g.  'Makefile's), they are essentially
+     independent.
+
+     CVS does not dictate how you build anything.  It merely stores
+     files for retrieval in a tree structure you devise.
+
+     CVS does not dictate how to use disk space in the checked out
+     working directories.  If you write your 'Makefile's or scripts in
+     every directory so they have to know the relative positions of
+     everything else, you wind up requiring the entire repository to be
+     checked out.
+
+     If you modularize your work, and construct a build system that will
+     share files (via links, mounts, 'VPATH' in 'Makefile's, etc.), you
+     can arrange your disk usage however you like.
+
+     But you have to remember that _any_ such system is a lot of work to
+     construct and maintain.  CVS does not address the issues involved.
+
+     Of course, you should place the tools created to support such a
+     build system (scripts, 'Makefile's, etc.)  under CVS.
+
+     Figuring out what files need to be rebuilt when something changes
+     is, again, something to be handled outside the scope of CVS.  One
+     traditional approach is to use 'make' for building, and use some
+     automated tool for generating the dependencies which 'make' uses.
+
+     See *note Builds::, for more information on doing builds in
+     conjunction with CVS.
+
+CVS is not a substitute for management.
+
+     Your managers and project leaders are expected to talk to you
+     frequently enough to make certain you are aware of schedules, merge
+     points, branch names and release dates.  If they don't, CVS can't
+     help.
+
+     CVS is an instrument for making sources dance to your tune.  But
+     you are the piper and the composer.  No instrument plays itself or
+     writes its own music.
+
+CVS is not a substitute for developer communication.
+
+     When faced with conflicts within a single file, most developers
+     manage to resolve them without too much effort.  But a more general
+     definition of "conflict" includes problems too difficult to solve
+     without communication between developers.
+
+     CVS cannot determine when simultaneous changes within a single
+     file, or across a whole collection of files, will logically
+     conflict with one another.  Its concept of a "conflict" is purely
+     textual, arising when two changes to the same base file are near
+     enough to spook the merge (i.e., 'diff3') command.
+
+     CVS does not claim to help at all in figuring out non-textual or
+     distributed conflicts in program logic.
+
+     For example: Say you change the arguments to function 'X' defined
+     in file 'A'.  At the same time, someone edits file 'B', adding new
+     calls to function 'X' using the old arguments.  You are outside the
+     realm of CVS's competence.
+
+     Acquire the habit of reading specs and talking to your peers.
+
+CVS does not have change control
+
+     Change control refers to a number of things.  First of all it can
+     mean "bug-tracking", that is being able to keep a database of
+     reported bugs and the status of each one (Is it fixed?  In what
+     release?  Has the bug submitter agreed that it is fixed?).  For
+     interfacing CVS to an external bug-tracking system, see the
+     'rcsinfo' and 'verifymsg' files (*note Administrative files::).
+
+     Another aspect of change control is keeping track of the fact that
+     changes to several files were in fact changed together as one
+     logical change.  If you check in several files in a single 'cvs
+     commit' operation, CVS then forgets that those files were checked
+     in together, and the fact that they have the same log message is
+     the only thing tying them together.  Keeping a GNU style
+     'ChangeLog' can help somewhat.
+
+     Another aspect of change control, in some systems, is the ability
+     to keep track of the status of each change.  Some changes have been
+     written by a developer, others have been reviewed by a second
+     developer, and so on.  Generally, the way to do this with CVS is to
+     generate a diff (using 'cvs diff' or 'diff') and email it to
+     someone who can then apply it using the 'patch' utility.  This is
+     very flexible, but depends on mechanisms outside CVS to make sure
+     nothing falls through the cracks.
+
+CVS is not an automated testing program
+
+     It should be possible to enforce mandatory use of a test suite
+     using the 'commitinfo' file.  I haven't heard a lot about projects
+     trying to do that or whether there are subtle gotchas, however.
+
+CVS does not have a built-in process model
+
+     Some systems provide ways to ensure that changes or releases go
+     through various steps, with various approvals as needed.
+     Generally, one can accomplish this with CVS but it might be a
+     little more work.  In some cases you'll want to use the
+     'commitinfo', 'loginfo', 'rcsinfo', or 'verifymsg' files, to
+     require that certain steps be performed before cvs will allow a
+     checkin.  Also consider whether features such as branches and tags
+     can be used to perform tasks such as doing work in a development
+     tree and then merging certain changes over to a stable tree only
+     once they have been proven.
+
+1.3 A sample session
+====================
+
+As a way of introducing CVS, we'll go through a typical work-session
+using CVS.  The first thing to understand is that CVS stores all files
+in a centralized "repository" (*note Repository::); this section assumes
+that a repository is set up.
+
+   Suppose you are working on a simple compiler.  The source consists of
+a handful of C files and a 'Makefile'.  The compiler is called 'tc'
+(Trivial Compiler), and the repository is set up so that there is a
+module called 'tc'.
+
+1.3.1 Getting the source
+------------------------
+
+The first thing you must do is to get your own working copy of the
+source for 'tc'.  For this, you use the 'checkout' command:
+
+     $ cvs checkout tc
+
+This will create a new directory called 'tc' and populate it with the
+source files.
+
+     $ cd tc
+     $ ls
+     CVS         Makefile    backend.c   driver.c    frontend.c  parser.c
+
+   The 'CVS' directory is used internally by CVS.  Normally, you should
+not modify or remove any of the files in it.
+
+   You start your favorite editor, hack away at 'backend.c', and a
+couple of hours later you have added an optimization pass to the
+compiler.  A note to RCS and SCCS users: There is no need to lock the
+files that you want to edit.  *Note Multiple developers::, for an
+explanation.
+
+1.3.2 Committing your changes
+-----------------------------
+
+When you have checked that the compiler is still compilable you decide
+to make a new version of 'backend.c'.  This will store your new
+'backend.c' in the repository and make it available to anyone else who
+is using that same repository.
+
+     $ cvs commit backend.c
+
+CVS starts an editor, to allow you to enter a log message.  You type in
+"Added an optimization pass.", save the temporary file, and exit the
+editor.
+
+   The environment variable '$CVSEDITOR' determines which editor is
+started.  If '$CVSEDITOR' is not set, then if the environment variable
+'$EDITOR' is set, it will be used.  If both '$CVSEDITOR' and '$EDITOR'
+are not set then there is a default which will vary with your operating
+system, for example 'vi' for unix or 'notepad' for Windows NT/95.
+
+   In addition, CVS checks the '$VISUAL' environment variable.  Opinions
+vary on whether this behavior is desirable and whether future releases
+of CVS should check '$VISUAL' or ignore it.  You will be OK either way
+if you make sure that '$VISUAL' is either unset or set to the same thing
+as '$EDITOR'.
+
+   When CVS starts the editor, it includes a list of files which are
+modified.  For the CVS client, this list is based on comparing the
+modification time of the file against the modification time that the
+file had when it was last gotten or updated.  Therefore, if a file's
+modification time has changed but its contents have not, it will show up
+as modified.  The simplest way to handle this is simply not to worry
+about it--if you proceed with the commit CVS will detect that the
+contents are not modified and treat it as an unmodified file.  The next
+'update' will clue CVS in to the fact that the file is unmodified, and
+it will reset its stored timestamp so that the file will not show up in
+future editor sessions.
+
+   If you want to avoid starting an editor you can specify the log
+message on the command line using the '-m' flag instead, like this:
+
+     $ cvs commit -m "Added an optimization pass" backend.c
+
+1.3.3 Cleaning up
+-----------------
+
+Before you turn to other tasks you decide to remove your working copy of
+tc.  One acceptable way to do that is of course
+
+     $ cd ..
+     $ rm -r tc
+
+but a better way is to use the 'release' command (*note release::):
+
+     $ cd ..
+     $ cvs release -d tc
+     M driver.c
+     ? tc
+     You have [1] altered files in this repository.
+     Are you sure you want to release (and delete) directory `tc': n
+     ** `release' aborted by user choice.
+
+   The 'release' command checks that all your modifications have been
+committed.  If history logging is enabled it also makes a note in the
+history file.  *Note history file::.
+
+   When you use the '-d' flag with 'release', it also removes your
+working copy.
+
+   In the example above, the 'release' command wrote a couple of lines
+of output.  '? tc' means that the file 'tc' is unknown to CVS.  That is
+nothing to worry about: 'tc' is the executable compiler, and it should
+not be stored in the repository.  *Note cvsignore::, for information
+about how to make that warning go away.  *Note release output::, for a
+complete explanation of all possible output from 'release'.
+
+   'M driver.c' is more serious.  It means that the file 'driver.c' has
+been modified since it was checked out.
+
+   The 'release' command always finishes by telling you how many
+modified files you have in your working copy of the sources, and then
+asks you for confirmation before deleting any files or making any note
+in the history file.
+
+   You decide to play it safe and answer 'n <RET>' when 'release' asks
+for confirmation.
+
+1.3.4 Viewing differences
+-------------------------
+
+You do not remember modifying 'driver.c', so you want to see what has
+happened to that file.
+
+     $ cd tc
+     $ cvs diff driver.c
+
+   This command runs 'diff' to compare the version of 'driver.c' that
+you checked out with your working copy.  When you see the output you
+remember that you added a command line option that enabled the
+optimization pass.  You check it in, and release the module.
+
+     $ cvs commit -m "Added an optimization pass" driver.c
+     Checking in driver.c;
+     /usr/local/cvsroot/tc/driver.c,v  <--  driver.c
+     new revision: 1.2; previous revision: 1.1
+     done
+     $ cd ..
+     $ cvs release -d tc
+     ? tc
+     You have [0] altered files in this repository.
+     Are you sure you want to release (and delete) directory `tc': y
+
+2 The Repository
+****************
+
+The CVS "repository" stores a complete copy of all the files and
+directories which are under version control.
+
+   Normally, you never access any of the files in the repository
+directly.  Instead, you use CVS commands to get your own copy of the
+files into a "working directory", and then work on that copy.  When
+you've finished a set of changes, you check (or "commit") them back into
+the repository.  The repository then contains the changes which you have
+made, as well as recording exactly what you changed, when you changed
+it, and other such information.  Note that the repository is not a
+subdirectory of the working directory, or vice versa; they should be in
+separate locations.
+
+   CVS can access a repository by a variety of means.  It might be on
+the local computer, or it might be on a computer across the room or
+across the world.  To distinguish various ways to access a repository,
+the repository name can start with an "access method".  For example, the
+access method ':local:' means to access a repository directory, so the
+repository ':local:/usr/local/cvsroot' means that the repository is in
+'/usr/local/cvsroot' on the computer running CVS.  For information on
+other access methods, see *note Remote repositories::.
+
+   If the access method is omitted, then if the repository starts with
+'/', then ':local:' is assumed.  If it does not start with '/' then
+either ':ext:' or ':server:' is assumed.  For example, if you have a
+local repository in '/usr/local/cvsroot', you can use
+'/usr/local/cvsroot' instead of ':local:/usr/local/cvsroot'.  But if
+(under Windows NT, for example) your local repository is
+'c:\src\cvsroot', then you must specify the access method, as in
+':local:c:/src/cvsroot'.
+
+   The repository is split in two parts.  '$CVSROOT/CVSROOT' contains
+administrative files for CVS.  The other directories contain the actual
+user-defined modules.
+
+2.1 Telling CVS where your repository is
+========================================
+
+There are several ways to tell CVS where to find the repository.  You
+can name the repository on the command line explicitly, with the '-d'
+(for "directory") option:
+
+     cvs -d /usr/local/cvsroot checkout yoyodyne/tc
+
+   Or you can set the '$CVSROOT' environment variable to an absolute
+path to the root of the repository, '/usr/local/cvsroot' in this
+example.  To set '$CVSROOT', 'csh' and 'tcsh' users should have this
+line in their '.cshrc' or '.tcshrc' files:
+
+     setenv CVSROOT /usr/local/cvsroot
+
+'sh' and 'bash' users should instead have these lines in their
+'.profile' or '.bashrc':
+
+     CVSROOT=/usr/local/cvsroot
+     export CVSROOT
+
+   A repository specified with '-d' will override the '$CVSROOT'
+environment variable.  Once you've checked a working copy out from the
+repository, it will remember where its repository is (the information is
+recorded in the 'CVS/Root' file in the working copy).
+
+   The '-d' option and the 'CVS/Root' file both override the '$CVSROOT'
+environment variable.  If '-d' option differs from 'CVS/Root', the
+former is used.  Of course, for proper operation they should be two ways
+of referring to the same repository.
+
+2.2 How data is stored in the repository
+========================================
+
+For most purposes it isn't important _how_ CVS stores information in the
+repository.  In fact, the format has changed in the past, and is likely
+to change in the future.  Since in almost all cases one accesses the
+repository via CVS commands, such changes need not be disruptive.
+
+   However, in some cases it may be necessary to understand how CVS
+stores data in the repository, for example you might need to track down
+CVS locks (*note Concurrency::) or you might need to deal with the file
+permissions appropriate for the repository.
+
+2.2.1 Where files are stored within the repository
+--------------------------------------------------
+
+The overall structure of the repository is a directory tree
+corresponding to the directories in the working directory.  For example,
+supposing the repository is in
+
+     /usr/local/cvsroot
+
+here is a possible directory tree (showing only the directories):
+
+     /usr
+      |
+      +--local
+      |   |
+      |   +--cvsroot
+      |   |    |
+      |   |    +--CVSROOT
+               |      (administrative files)
+               |
+               +--gnu
+               |   |
+               |   +--diff
+               |   |   (source code to GNU diff)
+               |   |
+               |   +--rcs
+               |   |   (source code to RCS)
+               |   |
+               |   +--cvs
+               |       (source code to CVS)
+               |
+               +--yoyodyne
+                   |
+                   +--tc
+                   |    |
+                   |    +--man
+                   |    |
+                   |    +--testing
+                   |
+                   +--(other Yoyodyne software)
+
+   With the directories are "history files" for each file under version
+control.  The name of the history file is the name of the corresponding
+file with ',v' appended to the end.  Here is what the repository for the
+'yoyodyne/tc' directory might look like:
+       $CVSROOT
+         |
+         +--yoyodyne
+         |   |
+         |   +--tc
+         |   |   |
+                 +--Makefile,v
+                 +--backend.c,v
+                 +--driver.c,v
+                 +--frontend.c,v
+                 +--parser.c,v
+                 +--man
+                 |    |
+                 |    +--tc.1,v
+                 |
+                 +--testing
+                      |
+                      +--testpgm.t,v
+                      +--test2.t,v
+
+   The history files contain, among other things, enough information to
+recreate any revision of the file, a log of all commit messages and the
+user-name of the person who committed the revision.  The history files
+are known as "RCS files", because the first program to store files in
+that format was a version control system known as RCS.  For a full
+description of the file format, see the 'man' page 'rcsfile(5)',
+distributed with RCS, or the file 'doc/RCSFILES' in the CVS source
+distribution.  This file format has become very common--many systems
+other than CVS or RCS can at least import history files in this format.
+
+   The RCS files used in CVS differ in a few ways from the standard
+format.  The biggest difference is magic branches; for more information
+see *note Magic branch numbers::.  Also in CVS the valid tag names are a
+subset of what RCS accepts; for CVS's rules see *note Tags::.
+
+2.2.2 File permissions
+----------------------
+
+All ',v' files are created read-only, and you should not change the
+permission of those files.  The directories inside the repository should
+be writable by the persons that have permission to modify the files in
+each directory.  This normally means that you must create a UNIX group
+(see group(5)) consisting of the persons that are to edit the files in a
+project, and set up the repository so that it is that group that owns
+the directory.  (On some systems, you also need to set the
+set-group-ID-on-execution bit on the repository directories (see
+chmod(1)) so that newly-created files and directories get the group-ID
+of the parent directory rather than that of the current process.)
+
+   This means that you can only control access to files on a
+per-directory basis.
+
+   Note that users must also have write access to check out files,
+because CVS needs to create lock files (*note Concurrency::).  You can
+use LockDir in CVSROOT/config to put the lock files somewhere other than
+in the repository if you want to allow read-only access to some
+directories (*note config::).
+
+   Also note that users must have write access to the 'CVSROOT/val-tags'
+file.  CVS uses it to keep track of what tags are valid tag names (it is
+sometimes updated when tags are used, as well as when they are created).
+
+   Each RCS file will be owned by the user who last checked it in.  This
+has little significance; what really matters is who owns the
+directories.
+
+   CVS tries to set up reasonable file permissions for new directories
+that are added inside the tree, but you must fix the permissions
+manually when a new directory should have different permissions than its
+parent directory.  If you set the 'CVSUMASK' environment variable, that
+will control the file permissions which CVS uses in creating directories
+and/or files in the repository.  'CVSUMASK' does not affect the file
+permissions in the working directory; such files have the permissions
+which are typical for newly created files, except that sometimes CVS
+creates them read-only (see the sections on watches, *note Setting a
+watch::; -r, *note Global options::; or 'CVSREAD', *note Environment
+variables::).
+
+   Note that using the client/server CVS (*note Remote repositories::),
+there is no good way to set 'CVSUMASK'; the setting on the client
+machine has no effect.  If you are connecting with 'rsh', you can set
+'CVSUMASK' in '.bashrc' or '.cshrc', as described in the documentation
+for your operating system.  This behavior might change in future
+versions of CVS; do not rely on the setting of 'CVSUMASK' on the client
+having no effect.
+
+   Using pserver, you will generally need stricter permissions on the
+CVSROOT directory and directories above it in the tree; see *note
+Password authentication security::.
+
+   Some operating systems have features which allow a particular program
+to run with the ability to perform operations which the caller of the
+program could not.  For example, the set user ID (setuid) or set group
+ID (setgid) features of unix or the installed image feature of VMS. CVS
+was not written to use such features and therefore attempting to install
+CVS in this fashion will provide protection against only accidental
+lapses; anyone who is trying to circumvent the measure will be able to
+do so, and depending on how you have set it up may gain access to more
+than just CVS.  You may wish to instead consider pserver.  It shares
+some of the same attributes, in terms of possibly providing a false
+sense of security or opening security holes wider than the ones you are
+trying to fix, so read the documentation on pserver security carefully
+if you are considering this option (*note Password authentication
+security::).
+
+2.2.3 File Permission issues specific to Windows
+------------------------------------------------
+
+Some file permission issues are specific to Windows operating systems
+(Windows 95, Windows NT, and presumably future operating systems in this
+family.  Some of the following might apply to OS/2 but I'm not sure).
+
+   If you are using local CVS and the repository is on a networked file
+system which is served by the Samba SMB server, some people have
+reported problems with permissions.  Enabling WRITE=YES in the samba
+configuration is said to fix/workaround it.  Disclaimer: I haven't
+investigated enough to know the implications of enabling that option,
+nor do I know whether there is something which CVS could be doing
+differently in order to avoid the problem.  If you find something out,
+please let us know as described in *note BUGS::.
+
+2.2.4 The attic
+---------------
+
+You will notice that sometimes CVS stores an RCS file in the 'Attic'.
+For example, if the CVSROOT is '/usr/local/cvsroot' and we are talking
+about the file 'backend.c' in the directory 'yoyodyne/tc', then the file
+normally would be in
+
+     /usr/local/cvsroot/yoyodyne/tc/backend.c,v
+
+but if it goes in the attic, it would be in
+
+     /usr/local/cvsroot/yoyodyne/tc/Attic/backend.c,v
+
+instead.  It should not matter from a user point of view whether a file
+is in the attic; CVS keeps track of this and looks in the attic when it
+needs to.  But in case you want to know, the rule is that the RCS file
+is stored in the attic if and only if the head revision on the trunk has
+state 'dead'.  A 'dead' state means that file has been removed, or never
+added, for that revision.  For example, if you add a file on a branch,
+it will have a trunk revision in 'dead' state, and a branch revision in
+a non-'dead' state.
+
+2.2.5 The CVS directory in the repository
+-----------------------------------------
+
+The 'CVS' directory in each repository directory contains information
+such as file attributes (in a file called 'CVS/fileattr'.  In the future
+additional files may be added to this directory, so implementations
+should silently ignore additional files.
+
+   This behavior is implemented only by CVS 1.7 and later; for details
+see *note Watches Compatibility::.
+
+   The format of the 'fileattr' file is a series of entries of the
+following form (where '{' and '}' means the text between the braces can
+be repeated zero or more times):
+
+   ENT-TYPE FILENAME <tab> ATTRNAME = ATTRVAL {; ATTRNAME = ATTRVAL}
+<linefeed>
+
+   ENT-TYPE is 'F' for a file, in which case the entry specifies the
+attributes for that file.
+
+   ENT-TYPE is 'D', and FILENAME empty, to specify default attributes to
+be used for newly added files.
+
+   Other ENT-TYPE are reserved for future expansion.  CVS 1.9 and older
+will delete them any time it writes file attributes.  CVS 1.10 and later
+will preserve them.
+
+   Note that the order of the lines is not significant; a program
+writing the fileattr file may rearrange them at its convenience.
+
+   There is currently no way of quoting tabs or line feeds in the
+filename, '=' in ATTRNAME, ';' in ATTRVAL, etc.  Note: some
+implementations also don't handle a NUL character in any of the fields,
+but implementations are encouraged to allow it.
+
+   By convention, ATTRNAME starting with '_' is for an attribute given
+special meaning by CVS; other ATTRNAMEs are for user-defined attributes
+(or will be, once implementations start supporting user-defined
+attributes).
+
+   Built-in attributes:
+
+'_watched'
+     Present means the file is watched and should be checked out
+     read-only.
+
+'_watchers'
+     Users with watches for this file.  Value is WATCHER > TYPE { ,
+     WATCHER > TYPE } where WATCHER is a username, and TYPE is zero or
+     more of edit,unedit,commit separated by '+' (that is, nothing if
+     none; there is no "none" or "all" keyword).
+
+'_editors'
+     Users editing this file.  Value is EDITOR > VAL { , EDITOR > VAL }
+     where EDITOR is a username, and VAL is TIME+HOSTNAME+PATHNAME,
+     where TIME is when the 'cvs edit' command (or equivalent) happened,
+     and HOSTNAME and PATHNAME are for the working directory.
+
+   Example:
+
+     Ffile1 _watched=;_watchers=joe>edit,mary>commit
+     Ffile2 _watched=;_editors=sue>8 Jan 1975+workstn1+/home/sue/cvs
+     D _watched=
+
+means that the file 'file1' should be checked out read-only.
+Furthermore, joe is watching for edits and mary is watching for commits.
+The file 'file2' should be checked out read-only; sue started editing it
+on 8 Jan 1975 in the directory '/home/sue/cvs' on the machine
+'workstn1'.  Future files which are added should be checked out
+read-only.  To represent this example here, we have shown a space after
+'D', 'Ffile1', and 'Ffile2', but in fact there must be a single tab
+character there and no spaces.
+
+2.2.6 CVS locks in the repository
+---------------------------------
+
+For an introduction to CVS locks focusing on user-visible behavior, see
+*note Concurrency::.  The following section is aimed at people who are
+writing tools which want to access a CVS repository without interfering
+with other tools accessing the same repository.  If you find yourself
+confused by concepts described here, like "read lock", "write lock", and
+"deadlock", you might consult the literature on operating systems or
+databases.
+
+   Any file in the repository with a name starting with '#cvs.rfl.' is a
+read lock.  Any file in the repository with a name starting with
+'#cvs.wfl' is a write lock.  Old versions of CVS (before CVS 1.5) also
+created files with names starting with '#cvs.tfl', but they are not
+discussed here.  The directory '#cvs.lock' serves as a master lock.
+That is, one must obtain this lock first before creating any of the
+other locks.
+
+   To obtain a read lock, first create the '#cvs.lock' directory.  This
+operation must be atomic (which should be true for creating a directory
+under most operating systems).  If it fails because the directory
+already existed, wait for a while and try again.  After obtaining the
+'#cvs.lock' lock, create a file whose name is '#cvs.rfl.' followed by
+information of your choice (for example, hostname and process
+identification number).  Then remove the '#cvs.lock' directory to
+release the master lock.  Then proceed with reading the repository.
+When you are done, remove the '#cvs.rfl' file to release the read lock.
+
+   To obtain a write lock, first create the '#cvs.lock' directory, as
+with read locks.  Then check that there are no files whose names start
+with '#cvs.rfl.'.  If there are, remove '#cvs.lock', wait for a while,
+and try again.  If there are no readers, then create a file whose name
+is '#cvs.wfl' followed by information of your choice (for example,
+hostname and process identification number).  Hang on to the '#cvs.lock'
+lock.  Proceed with writing the repository.  When you are done, first
+remove the '#cvs.wfl' file and then the '#cvs.lock' directory.  Note
+that unlike the '#cvs.rfl' file, the '#cvs.wfl' file is just
+informational; it has no effect on the locking operation beyond what is
+provided by holding on to the '#cvs.lock' lock itself.
+
+   Note that each lock (write lock or read lock) only locks a single
+directory in the repository, including 'Attic' and 'CVS' but not
+including subdirectories which represent other directories under version
+control.  To lock an entire tree, you need to lock each directory (note
+that if you fail to obtain any lock you need, you must release the whole
+tree before waiting and trying again, to avoid deadlocks).
+
+   Note also that CVS expects write locks to control access to
+individual 'foo,v' files.  RCS has a scheme where the ',foo,' file
+serves as a lock, but CVS does not implement it and so taking out a CVS
+write lock is recommended.  See the comments at rcs_internal_lockfile in
+the CVS source code for further discussion/rationale.
+
+2.2.7 How files are stored in the CVSROOT directory
+---------------------------------------------------
+
+The '$CVSROOT/CVSROOT' directory contains the various administrative
+files.  In some ways this directory is just like any other directory in
+the repository; it contains RCS files whose names end in ',v', and many
+of the CVS commands operate on it the same way.  However, there are a
+few differences.
+
+   For each administrative file, in addition to the RCS file, there is
+also a checked out copy of the file.  For example, there is an RCS file
+'loginfo,v' and a file 'loginfo' which contains the latest revision
+contained in 'loginfo,v'.  When you check in an administrative file, CVS
+should print
+
+     cvs commit: Rebuilding administrative file database
+
+and update the checked out copy in '$CVSROOT/CVSROOT'.  If it does not,
+there is something wrong (*note BUGS::).  To add your own files to the
+files to be updated in this fashion, you can add them to the
+'checkoutlist' administrative file (*note checkoutlist::).
+
+   By default, the 'modules' file behaves as described above.  If the
+modules file is very large, storing it as a flat text file may make
+looking up modules slow (I'm not sure whether this is as much of a
+concern now as when CVS first evolved this feature; I haven't seen
+benchmarks).  Therefore, by making appropriate edits to the CVS source
+code one can store the modules file in a database which implements the
+'ndbm' interface, such as Berkeley db or GDBM. If this option is in use,
+then the modules database will be stored in the files 'modules.db',
+'modules.pag', and/or 'modules.dir'.
+
+   For information on the meaning of the various administrative files,
+see *note Administrative files::.
+
+2.3 How data is stored in the working directory
+===============================================
+
+While we are discussing CVS internals which may become visible from time
+to time, we might as well talk about what CVS puts in the 'CVS'
+directories in the working directories.  As with the repository, CVS
+handles this information and one can usually access it via CVS commands.
+But in some cases it may be useful to look at it, and other programs,
+such as the 'jCVS' graphical user interface or the 'VC' package for
+emacs, may need to look at it.  Such programs should follow the
+recommendations in this section if they hope to be able to work with
+other programs which use those files, including future versions of the
+programs just mentioned and the command-line CVS client.
+
+   The 'CVS' directory contains several files.  Programs which are
+reading this directory should silently ignore files which are in the
+directory but which are not documented here, to allow for future
+expansion.
+
+   The files are stored according to the text file convention for the
+system in question.  This means that working directories are not
+portable between systems with differing conventions for storing text
+files.  This is intentional, on the theory that the files being managed
+by CVS probably will not be portable between such systems either.
+
+'Root'
+     This file contains the current CVS root, as described in *note
+     Specifying a repository::.
+
+'Repository'
+     This file contains the directory within the repository which the
+     current directory corresponds with.  It can be either an absolute
+     pathname or a relative pathname; CVS has had the ability to read
+     either format since at least version 1.3 or so.  The relative
+     pathname is relative to the root, and is the more sensible
+     approach, but the absolute pathname is quite common and
+     implementations should accept either.  For example, after the
+     command
+
+          cvs -d :local:/usr/local/cvsroot checkout yoyodyne/tc
+
+     'Root' will contain
+
+          :local:/usr/local/cvsroot
+
+     and 'Repository' will contain either
+
+          /usr/local/cvsroot/yoyodyne/tc
+
+     or
+
+          yoyodyne/tc
+
+     If the particular working directory does not correspond to a
+     directory in the repository, then 'Repository' should contain
+     'CVSROOT/Emptydir'.
+
+'Entries'
+     This file lists the files and directories in the working directory.
+     The first character of each line indicates what sort of line it is.
+     If the character is unrecognized, programs reading the file should
+     silently skip that line, to allow for future expansion.
+
+     If the first character is '/', then the format is:
+
+          /NAME/REVISION/TIMESTAMP[+CONFLICT]/OPTIONS/TAGDATE
+
+     where '[' and ']' are not part of the entry, but instead indicate
+     that the '+' and conflict marker are optional.  NAME is the name of
+     the file within the directory.  REVISION is the revision that the
+     file in the working derives from, or '0' for an added file, or '-'
+     followed by a revision for a removed file.  TIMESTAMP is the
+     timestamp of the file at the time that CVS created it; if the
+     timestamp differs with the actual modification time of the file it
+     means the file has been modified.  It is stored in the format used
+     by the ISO C asctime() function (for example, 'Sun Apr 7 01:29:26
+     1996').  One may write a string which is not in that format, for
+     example, 'Result of merge', to indicate that the file should always
+     be considered to be modified.  This is not a special case; to see
+     whether a file is modified a program should take the timestamp of
+     the file and simply do a string compare with TIMESTAMP.  If there
+     was a conflict, CONFLICT can be set to the modification time of the
+     file after the file has been written with conflict markers (*note
+     Conflicts example::).  Thus if CONFLICT is subsequently the same as
+     the actual modification time of the file it means that the user has
+     obviously not resolved the conflict.  OPTIONS contains sticky
+     options (for example '-kb' for a binary file).  TAGDATE contains
+     'T' followed by a tag name, or 'D' for a date, followed by a sticky
+     tag or date.  Note that if TIMESTAMP contains a pair of timestamps
+     separated by a space, rather than a single timestamp, you are
+     dealing with a version of CVS earlier than CVS 1.5 (not documented
+     here).
+
+     The timezone on the timestamp in CVS/Entries (local or universal)
+     should be the same as the operating system stores for the timestamp
+     of the file itself.  For example, on Unix the file's timestamp is
+     in universal time (UT), so the timestamp in CVS/Entries should be
+     too.  On VMS, the file's timestamp is in local time, so CVS on VMS
+     should use local time.  This rule is so that files do not appear to
+     be modified merely because the timezone changed (for example, to or
+     from summer time).
+
+     If the first character of a line in 'Entries' is 'D', then it
+     indicates a subdirectory.  'D' on a line all by itself indicates
+     that the program which wrote the 'Entries' file does record
+     subdirectories (therefore, if there is such a line and no other
+     lines beginning with 'D', one knows there are no subdirectories).
+     Otherwise, the line looks like:
+
+          D/NAME/FILLER1/FILLER2/FILLER3/FILLER4
+
+     where NAME is the name of the subdirectory, and all the FILLER
+     fields should be silently ignored, for future expansion.  Programs
+     which modify 'Entries' files should preserve these fields.
+
+     The lines in the 'Entries' file can be in any order.
+
+'Entries.Log'
+     This file does not record any information beyond that in 'Entries',
+     but it does provide a way to update the information without having
+     to rewrite the entire 'Entries' file, including the ability to
+     preserve the information even if the program writing 'Entries' and
+     'Entries.Log' abruptly aborts.  Programs which are reading the
+     'Entries' file should also check for 'Entries.Log'.  If the latter
+     exists, they should read 'Entries' and then apply the changes
+     mentioned in 'Entries.Log'.  After applying the changes, the
+     recommended practice is to rewrite 'Entries' and then delete
+     'Entries.Log'.  The format of a line in 'Entries.Log' is a single
+     character command followed by a space followed by a line in the
+     format specified for a line in 'Entries'.  The single character
+     command is 'A' to indicate that the entry is being added, 'R' to
+     indicate that the entry is being removed, or any other character to
+     indicate that the entire line in 'Entries.Log' should be silently
+     ignored (for future expansion).  If the second character of the
+     line in 'Entries.Log' is not a space, then it was written by an
+     older version of CVS (not documented here).
+
+     Programs which are writing rather than reading can safely ignore
+     'Entries.Log' if they so choose.
+
+'Entries.Backup'
+     This is a temporary file.  Recommended usage is to write a new
+     entries file to 'Entries.Backup', and then to rename it
+     (atomically, where possible) to 'Entries'.
+
+'Entries.Static'
+     The only relevant thing about this file is whether it exists or
+     not.  If it exists, then it means that only part of a directory was
+     gotten and CVS will not create additional files in that directory.
+     To clear it, use the 'update' command with the '-d' option, which
+     will get the additional files and remove 'Entries.Static'.
+
+'Tag'
+     This file contains per-directory sticky tags or dates.  The first
+     character is 'T' for a branch tag, 'N' for a non-branch tag, or 'D'
+     for a date, or another character to mean the file should be
+     silently ignored, for future expansion.  This character is followed
+     by the tag or date.  Note that per-directory sticky tags or dates
+     are used for things like applying to files which are newly added;
+     they might not be the same as the sticky tags or dates on
+     individual files.  For general information on sticky tags and
+     dates, see *note Sticky tags::.
+
+'Notify'
+     This file stores notifications (for example, for 'edit' or
+     'unedit') which have not yet been sent to the server.  Its format
+     is not yet documented here.
+
+'Notify.tmp'
+     This file is to 'Notify' as 'Entries.Backup' is to 'Entries'.  That
+     is, to write 'Notify', first write the new contents to 'Notify.tmp'
+     and then (atomically where possible), rename it to 'Notify'.
+
+'Base'
+     If watches are in use, then an 'edit' command stores the original
+     copy of the file in the 'Base' directory.  This allows the 'unedit'
+     command to operate even if it is unable to communicate with the
+     server.
+
+'Baserev'
+     The file lists the revision for each of the files in the 'Base'
+     directory.  The format is:
+
+          BNAME/REV/EXPANSION
+
+     where EXPANSION should be ignored, to allow for future expansion.
+
+'Baserev.tmp'
+     This file is to 'Baserev' as 'Entries.Backup' is to 'Entries'.
+     That is, to write 'Baserev', first write the new contents to
+     'Baserev.tmp' and then (atomically where possible), rename it to
+     'Baserev'.
+
+'Template'
+     This file contains the template specified by the 'rcsinfo' file
+     (*note rcsinfo::).  It is only used by the client; the
+     non-client/server CVS consults 'rcsinfo' directly.
+
+2.4 The administrative files
+============================
+
+The directory '$CVSROOT/CVSROOT' contains some "administrative files".
+*Note Administrative files::, for a complete description.  You can use
+CVS without any of these files, but some commands work better when at
+least the 'modules' file is properly set up.
+
+   The most important of these files is the 'modules' file.  It defines
+all modules in the repository.  This is a sample 'modules' file.
+
+     CVSROOT         CVSROOT
+     modules         CVSROOT modules
+     cvs             gnu/cvs
+     rcs             gnu/rcs
+     diff            gnu/diff
+     tc              yoyodyne/tc
+
+   The 'modules' file is line oriented.  In its simplest form each line
+contains the name of the module, whitespace, and the directory where the
+module resides.  The directory is a path relative to '$CVSROOT'.  The
+last four lines in the example above are examples of such lines.
+
+   The line that defines the module called 'modules' uses features that
+are not explained here.  *Note modules::, for a full explanation of all
+the available features.
+
+2.4.1 Editing administrative files
+----------------------------------
+
+You edit the administrative files in the same way that you would edit
+any other module.  Use 'cvs checkout CVSROOT' to get a working copy,
+edit it, and commit your changes in the normal way.
+
+   It is possible to commit an erroneous administrative file.  You can
+often fix the error and check in a new revision, but sometimes a
+particularly bad error in the administrative file makes it impossible to
+commit new revisions.  If and when this happens, you can correct the
+problem by temporarily copying a corrected administrative file directly
+into the '$CVSROOT/CVSROOT' repository directory, then committing the
+same correction via a checkout of the 'CVSROOT' module.  It is important
+that the correction also be made via the checked out copy, or the next
+checkout and commit to the <code>CVSROOT</code> module will overwrite
+the correction that was copied directly into the repository, possibly
+breaking things in such a way as to prevent commits again.
+
+2.5 Multiple repositories
+=========================
+
+In some situations it is a good idea to have more than one repository,
+for instance if you have two development groups that work on separate
+projects without sharing any code.  All you have to do to have several
+repositories is to specify the appropriate repository, using the
+'CVSROOT' environment variable, the '-d' option to CVS, or (once you
+have checked out a working directory) by simply allowing CVS to use the
+repository that was used to check out the working directory (*note
+Specifying a repository::).
+
+   The big advantage of having multiple repositories is that they can
+reside on different servers.  With CVS version 1.10, a single command
+cannot recurse into directories from different repositories.  With
+development versions of CVS, you can check out code from multiple
+servers into your working directory.  CVS will recurse and handle all
+the details of making connections to as many server machines as
+necessary to perform the requested command.  Here is an example of how
+to set up a working directory:
+
+     cvs -d server1:/cvs co dir1
+     cd dir1
+     cvs -d server2:/root co sdir
+     cvs update
+
+   The 'cvs co' commands set up the working directory, and then the 'cvs
+update' command will contact server2, to update the dir1/sdir
+subdirectory, and server1, to update everything else.
+
+2.6 Creating a repository
+=========================
+
+This section describes how to set up a CVS repository for any sort of
+access method.  After completing the setup described in this section,
+you should be able to access your CVS repository immediately via the
+local access method and several remote access methods.  For more
+information on setting up remote access to the repository you create in
+this section, please read the section on *Note Remote repositories::.
+
+   To set up a CVS repository, first choose the machine and disk on
+which you want to store the revision history of the source files.  CPU
+and memory requirements are modest, so most machines should be adequate.
+For details see *note Server requirements::.
+
+   To estimate disk space requirements, if you are importing RCS files
+from another system, the size of those files is the approximate initial
+size of your repository, or if you are starting without any version
+history, a rule of thumb is to allow for the server approximately three
+times the size of the code to be under CVS for the repository (you will
+eventually outgrow this, but not for a while).  On the machines on which
+the developers will be working, you'll want disk space for approximately
+one working directory for each developer (either the entire tree or a
+portion of it, depending on what each developer uses).
+
+   The repository should be accessible (directly or via a networked file
+system) from all machines which want to use CVS in server or local mode;
+the client machines need not have any access to it other than via the
+CVS protocol.  It is not possible to use CVS to read from a repository
+which one only has read access to; CVS needs to be able to create lock
+files (*note Concurrency::).
+
+   To create a repository, run the 'cvs init' command.  It will set up
+an empty repository in the CVS root specified in the usual way (*note
+Repository::).  For example,
+
+     cvs -d /usr/local/cvsroot init
+
+   'cvs init' is careful to never overwrite any existing files in the
+repository, so no harm is done if you run 'cvs init' on an already
+set-up repository.
+
+   'cvs init' will enable history logging; if you don't want that,
+remove the history file after running 'cvs init'.  *Note history file::.
+
+2.7 Backing up a repository
+===========================
+
+There is nothing particularly magical about the files in the repository;
+for the most part it is possible to back them up just like any other
+files.  However, there are a few issues to consider.
+
+   The first is that to be paranoid, one should either not use CVS
+during the backup, or have the backup program lock CVS while doing the
+backup.  To not use CVS, you might forbid logins to machines which can
+access the repository, turn off your CVS server, or similar mechanisms.
+The details would depend on your operating system and how you have CVS
+set up.  To lock CVS, you would create '#cvs.rfl' locks in each
+repository directory.  See *note Concurrency::, for more on CVS locks.
+Having said all this, if you just back up without any of these
+precautions, the results are unlikely to be particularly dire.
+Restoring from backup, the repository might be in an inconsistent state,
+but this would not be particularly hard to fix manually.
+
+   When you restore a repository from backup, assuming that changes in
+the repository were made after the time of the backup, working
+directories which were not affected by the failure may refer to
+revisions which no longer exist in the repository.  Trying to run CVS in
+such directories will typically produce an error message.  One way to
+get those changes back into the repository is as follows:
+
+   * Get a new working directory.
+
+   * Copy the files from the working directory from before the failure
+     over to the new working directory (do not copy the contents of the
+     'CVS' directories, of course).
+
+   * Working in the new working directory, use commands such as 'cvs
+     update' and 'cvs diff' to figure out what has changed, and then
+     when you are ready, commit the changes into the repository.
+
+2.8 Moving a repository
+=======================
+
+Just as backing up the files in the repository is pretty much like
+backing up any other files, if you need to move a repository from one
+place to another it is also pretty much like just moving any other
+collection of files.
+
+   The main thing to consider is that working directories point to the
+repository.  The simplest way to deal with a moved repository is to just
+get a fresh working directory after the move.  Of course, you'll want to
+make sure that the old working directory had been checked in before the
+move, or you figured out some other way to make sure that you don't lose
+any changes.  If you really do want to reuse the existing working
+directory, it should be possible with manual surgery on the
+'CVS/Repository' files.  You can see *note Working directory storage::,
+for information on the 'CVS/Repository' and 'CVS/Root' files, but unless
+you are sure you want to bother, it probably isn't worth it.
+
+2.9 Remote repositories
+=======================
+
+Your working copy of the sources can be on a different machine than the
+repository.  Using CVS in this manner is known as "client/server"
+operation.  You run CVS on a machine which can mount your working
+directory, known as the "client", and tell it to communicate to a
+machine which can mount the repository, known as the "server".
+Generally, using a remote repository is just like using a local one,
+except that the format of the repository name is:
+
+     [:METHOD:][[USER][:address@hidden:[PORT]]/path/to/repository
+
+   Specifying a password in the repository name is not recommended
+during checkout, since this will cause CVS to store a cleartext copy of
+the password in each created directory.  'cvs login' first instead
+(*note Password authentication client::).
+
+   The details of exactly what needs to be set up depend on how you are
+connecting to the server.
+
+   If METHOD is not specified, and the repository name contains ':',
+then the default is 'ext' or 'server', depending on your platform; both
+are described in *note Connecting via rsh::.
+
+2.9.1 Server requirements
+-------------------------
+
+The quick answer to what sort of machine is suitable as a server is that
+requirements are modest--a server with 32M of memory or even less can
+handle a fairly large source tree with a fair amount of activity.
+
+   The real answer, of course, is more complicated.  Estimating the
+known areas of large memory consumption should be sufficient to estimate
+memory requirements.  There are two such areas documented here; other
+memory consumption should be small by comparison (if you find that is
+not the case, let us know, as described in *note BUGS::, so we can
+update this documentation).
+
+   The first area of big memory consumption is large checkouts, when
+using the CVS server.  The server consists of two processes for each
+client that it is serving.  Memory consumption on the child process
+should remain fairly small.  Memory consumption on the parent process,
+particularly if the network connection to the client is slow, can be
+expected to grow to slightly more than the size of the sources in a
+single directory, or two megabytes, whichever is larger.
+
+   Multiplying the size of each CVS server by the number of servers
+which you expect to have active at one time should give an idea of
+memory requirements for the server.  For the most part, the memory
+consumed by the parent process probably can be swap space rather than
+physical memory.
+
+   The second area of large memory consumption is 'diff', when checking
+in large files.  This is required even for binary files.  The rule of
+thumb is to allow about ten times the size of the largest file you will
+want to check in, although five times may be adequate.  For example, if
+you want to check in a file which is 10 megabytes, you should have 100
+megabytes of memory on the machine doing the checkin (the server machine
+for client/server, or the machine running CVS for non-client/server).
+This can be swap space rather than physical memory.  Because the memory
+is only required briefly, there is no particular need to allow memory
+for more than one such checkin at a time.
+
+   Resource consumption for the client is even more modest--any machine
+with enough capacity to run the operating system in question should have
+little trouble.
+
+   For information on disk space requirements, see *note Creating a
+repository::.
+
+2.9.2 Connecting with rsh or ssh
+--------------------------------
+
+CVS may use the 'ssh' protocol to perform these operations, so the
+remote user host needs to have a either an agent like 'ssh-agent' to
+hold credentials or a '.shosts' file which grants access to the local
+user.  Note that the program that CVS uses for this purpose may be
+specified using the '--with-ssh' flag to configure.
+
+   CVS uses the 'rsh' protocol to perform these operations, so the
+remote user host needs to have a '.rhosts' file which grants access to
+the local user.  Note that the program that CVS uses for this purpose
+may be specified using the '--with-rsh' flag to configure.
+
+   For example, suppose you are the user 'mozart' on the local machine
+'toe.example.com', and the server machine is 'faun.example.org'.  On
+faun, put the following line into the file '.rhosts' in 'bach''s home
+directory:
+
+     toe.example.com  mozart
+
+Then test that 'rsh' is working with
+
+     rsh -l bach faun.example.org 'echo $PATH'
+
+To test that 'ssh' is working use
+
+     ssh -l bach faun.example.org 'echo $PATH'
+
+   Next you have to make sure that 'rsh' will be able to find the
+server.  Make sure that the path which 'rsh' printed in the above
+example includes the directory containing a program named 'cvs' which is
+the server.  You need to set the path in '.bashrc', '.cshrc', etc., not
+'.login' or '.profile'.  Alternately, you can set the environment
+variable 'CVS_SERVER' on the client machine to the filename of the
+server you want to use, for example '/usr/local/bin/cvs-1.6'.
+
+   There is no need to edit 'inetd.conf' or start a CVS server daemon.
+
+   There are three access methods that you use in 'CVSROOT' for rsh or
+ssh.  ':server:' specifies an internal rsh client, which is supported
+only by some CVS ports.  ':extssh:' specifies an external ssh program.
+By default this is 'ssh' (unless otherwise specified by the '--with-ssh'
+flag to configure) but you may set the 'CVS_SSH' environment variable to
+invoke another program or wrapper script.  ':ext:' specifies an external
+rsh program.  By default this is 'rsh' (unless otherwise specified by
+the '--with-rsh' flag to configure) but you may set the 'CVS_RSH'
+environment variable to invoke another program which can access the
+remote server (for example, 'remsh' on HP-UX 9 because 'rsh' is
+something different).  It must be a program which can transmit data to
+and from the server without modifying it; for example the Windows NT
+'rsh' is not suitable since it by default translates between CRLF and
+LF. The OS/2 CVS port has a hack to pass '-b' to 'rsh' to get around
+this, but since this could potentially cause problems for programs other
+than the standard 'rsh', it may change in the future.  If you set
+'CVS_RSH' to 'SSH' or some other rsh replacement, the instructions in
+the rest of this section concerning '.rhosts' and so on are likely to be
+inapplicable; consult the documentation for your rsh replacement.
+
+   Continuing our example, supposing you want to access the module 'foo'
+in the repository '/usr/local/cvsroot/', on machine 'faun.example.org',
+you are ready to go:
+
+     cvs -d :ext:address@hidden:/usr/local/cvsroot checkout foo
+
+(The 'bach@' can be omitted if the username is the same on both the
+local and remote hosts.)
+
+2.9.3 Direct connection with password authentication
+----------------------------------------------------
+
+The CVS client can also connect to the server using a password protocol.
+This is particularly useful if using 'rsh' is not feasible (for example,
+the server is behind a firewall), and Kerberos also is not available.
+
+   To use this method, it is necessary to make some adjustments on both
+the server and client sides.
+
+2.9.3.1 Setting up the server for password authentication
+.........................................................
+
+First of all, you probably want to tighten the permissions on the
+'$CVSROOT' and '$CVSROOT/CVSROOT' directories.  See *note Password
+authentication security::, for more details.
+
+   On the server side, the file '/etc/inetd.conf' needs to be edited so
+'inetd' knows to run the command 'cvs pserver' when it receives a
+connection on the right port.  By default, the port number is 2401; it
+would be different if your client were compiled with 'CVS_AUTH_PORT'
+defined to something else, though.  This can also be specified in the
+CVSROOT variable (*note Remote repositories::) or overridden with the
+CVS_CLIENT_PORT environment variable (*note Environment variables::).
+
+   If your 'inetd' allows raw port numbers in '/etc/inetd.conf', then
+the following (all on a single line in 'inetd.conf') should be
+sufficient:
+
+     2401  stream  tcp  nowait  root  /usr/local/bin/cvs
+     cvs -f --allow-root=/usr/cvsroot pserver
+
+(You could also use the '-T' option to specify a temporary directory.)
+
+   The '--allow-root' option specifies the allowable CVSROOT directory.
+Clients which attempt to use a different CVSROOT directory will not be
+allowed to connect.  If there is more than one CVSROOT directory which
+you want to allow, repeat the option.  Unfortunately, many versions of
+'inetd' have very small limits on the number of arguments and/or the
+total length of the command.  The usual solution to this problem is to
+have 'inetd' run a shell script which then invokes CVS with the
+necessary arguments:
+
+     #! /bin/sh
+     exec /usr/local/bin/cvs -f \
+          --allow-root=/repo1 \
+          --allow-root=/repo2 \
+          ...
+          --allow-root=/repoN \
+          pserver
+
+   If your 'inetd' wants a symbolic service name instead of a raw port
+number, then put this in '/etc/services':
+
+     cvspserver      2401/tcp
+
+and put 'cvspserver' instead of '2401' in 'inetd.conf'.
+
+   If your system uses 'xinetd' instead of 'inetd', the procedure is
+slightly different.  Create a file called '/etc/xinetd.d/cvspserver'
+containing the following:
+
+     service cvspserver
+     {
+        port        = 2401
+        socket_type = stream
+        protocol    = tcp
+        wait        = no
+        user        = root
+        passenv     = PATH
+        server      = /usr/local/bin/cvs
+        server_args = -f --allow-root=/usr/cvsroot pserver
+     }
+
+(If 'cvspserver' is defined in '/etc/services', you can omit the 'port'
+line.)
+
+   Once the above is taken care of, restart your 'inetd', or do whatever
+is necessary to force it to reread its initialization files.
+
+   If you are having trouble setting this up, see *note Connection::.
+
+   Because the client stores and transmits passwords in cleartext
+(almost--see *note Password authentication security::, for details), a
+separate CVS password file is generally used, so people don't compromise
+their regular passwords when they access the repository.  This file is
+'$CVSROOT/CVSROOT/passwd' (*note Intro administrative files::).  It uses
+a colon-separated format, similar to '/etc/passwd' on Unix systems,
+except that it has fewer fields: CVS username, optional password, and an
+optional system username for CVS to run as if authentication succeeds.
+Here is an example 'passwd' file with five entries:
+
+     anonymous:
+     bach:ULtgRLXo7NRxs
+     spwang:1sOp854gDF3DY
+     melissa:tGX1fS8sun6rY:pubcvs
+     qproj:XR4EZcEs0szik:pubcvs
+
+(The passwords are encrypted according to the standard Unix 'crypt()'
+function, so it is possible to paste in passwords directly from regular
+Unix '/etc/passwd' files.)
+
+   The first line in the example will grant access to any CVS client
+attempting to authenticate as user 'anonymous', no matter what password
+they use, including an empty password.  (This is typical for sites
+granting anonymous read-only access; for information on how to do the
+"read-only" part, see *note Read-only access::.)
+
+   The second and third lines will grant access to 'bach' and 'spwang'
+if they supply their respective plaintext passwords.
+
+   The fourth line will grant access to 'melissa', if she supplies the
+correct password, but her CVS operations will actually run on the server
+side under the system user 'pubcvs'.  Thus, there need not be any system
+user named 'melissa', but there _must_ be one named 'pubcvs'.
+
+   The fifth line shows that system user identities can be shared: any
+client who successfully authenticates as 'qproj' will actually run as
+'pubcvs', just as 'melissa' does.  That way you could create a single,
+shared system user for each project in your repository, and give each
+developer their own line in the '$CVSROOT/CVSROOT/passwd' file.  The CVS
+username on each line would be different, but the system username would
+be the same.  The reason to have different CVS usernames is that CVS
+will log their actions under those names: when 'melissa' commits a
+change to a project, the checkin is recorded in the project's history
+under the name 'melissa', not 'pubcvs'.  And the reason to have them
+share a system username is so that you can arrange permissions in the
+relevant area of the repository such that only that account has
+write-permission there.
+
+   If the system-user field is present, all password-authenticated CVS
+commands run as that user; if no system user is specified, CVS simply
+takes the CVS username as the system username and runs commands as that
+user.  In either case, if there is no such user on the system, then the
+CVS operation will fail (regardless of whether the client supplied a
+valid password).
+
+   The password and system-user fields can both be omitted (and if the
+system-user field is omitted, then also omit the colon that would have
+separated it from the encrypted password).  For example, this would be a
+valid '$CVSROOT/CVSROOT/passwd' file:
+
+     anonymous::pubcvs
+     fish:rKa5jzULzmhOo:kfogel
+     sussman:1sOp854gDF3DY
+
+When the password field is omitted or empty, then the client's
+authentication attempt will succeed with any password, including the
+empty string.  However, the colon after the CVS username is always
+necessary, even if the password is empty.
+
+   CVS can also fall back to use system authentication.  When
+authenticating a password, the server first checks for the user in the
+'$CVSROOT/CVSROOT/passwd' file.  If it finds the user, it will use that
+entry for authentication as described above.  But if it does not find
+the user, or if the CVS 'passwd' file does not exist, then the server
+can try to authenticate the username and password using the operating
+system's user-lookup routines (this "fallback" behavior can be disabled
+by setting 'SystemAuth=no' in the CVS 'config' file, *note config::).
+Be aware, however, that falling back to system authentication might be a
+security risk: CVS operations would then be authenticated with that
+user's regular login password, and the password flies across the network
+in plaintext.  See *note Password authentication security:: for more on
+this.
+
+   Right now, the only way to put a password in the CVS 'passwd' file is
+to paste it there from somewhere else.  Someday, there may be a 'cvs
+passwd' command.
+
+   Unlike many of the files in '$CVSROOT/CVSROOT', it is normal to edit
+the 'passwd' file in-place, rather than via CVS.  This is because of the
+possible security risks of having the 'passwd' file checked out to
+people's working copies.  If you do want to include the 'passwd' file in
+checkouts of '$CVSROOT/CVSROOT', see *note checkoutlist::.
+
+2.9.3.2 Using the client with password authentication
+.....................................................
+
+To run a CVS command on a remote repository via the
+password-authenticating server, one specifies the 'pserver' protocol,
+optional username, repository host, an optional port number, and path to
+the repository.  For example:
+
+     cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj
+
+or
+
+     CVSROOT=:pserver:address@hidden:2401/usr/local/cvsroot
+     cvs checkout someproj
+
+   However, unless you're connecting to a public-access repository
+(i.e., one where that username doesn't require a password), you'll need
+to supply a password or "log in" first.  Logging in verifies your
+password with the repository and stores it in a file.  It's done with
+the 'login' command, which will prompt you interactively for the
+password if you didn't supply one as part of $CVSROOT:
+
+     cvs -d :pserver:address@hidden:/usr/local/cvsroot login
+     CVS password:
+
+or
+
+     cvs -d :pserver:bach:address@hidden:/usr/local/cvsroot login
+
+   After you enter the password, CVS verifies it with the server.  If
+the verification succeeds, then that combination of username, host,
+repository, and password is permanently recorded, so future transactions
+with that repository won't require you to run 'cvs login'.  (If
+verification fails, CVS will exit complaining that the password was
+incorrect, and nothing will be recorded.)
+
+   The records are stored, by default, in the file '$HOME/.cvspass'.
+That file's format is human-readable, and to a degree human-editable,
+but note that the passwords are not stored in cleartext--they are
+trivially encoded to protect them from "innocent" compromise (i.e.,
+inadvertent viewing by a system administrator or other non-malicious
+person).
+
+   You can change the default location of this file by setting the
+'CVS_PASSFILE' environment variable.  If you use this variable, make
+sure you set it _before_ 'cvs login' is run.  If you were to set it
+after running 'cvs login', then later CVS commands would be unable to
+look up the password for transmission to the server.
+
+   Once you have logged in, all CVS commands using that remote
+repository and username will authenticate with the stored password.  So,
+for example
+
+     cvs -d :pserver:address@hidden:/usr/local/cvsroot checkout foo
+
+should just work (unless the password changes on the server side, in
+which case you'll have to re-run 'cvs login').
+
+   Note that if the ':pserver:' were not present in the repository
+specification, CVS would assume it should use 'rsh' to connect with the
+server instead (*note Connecting via rsh::).
+
+   Of course, once you have a working copy checked out and are running
+CVS commands from within it, there is no longer any need to specify the
+repository explicitly, because CVS can deduce the repository from the
+working copy's 'CVS' subdirectory.
+
+   The password for a given remote repository can be removed from the
+'CVS_PASSFILE' by using the 'cvs logout' command.
+
+2.9.3.3 Security considerations with password authentication
+............................................................
+
+The passwords are stored on the client side in a trivial encoding of the
+cleartext, and transmitted in the same encoding.  The encoding is done
+only to prevent inadvertent password compromises (i.e., a system
+administrator accidentally looking at the file), and will not prevent
+even a naive attacker from gaining the password.
+
+   The separate CVS password file (*note Password authentication
+server::) allows people to use a different password for repository
+access than for login access.  On the other hand, once a user has
+non-read-only access to the repository, she can execute programs on the
+server system through a variety of means.  Thus, repository access
+implies fairly broad system access as well.  It might be possible to
+modify CVS to prevent that, but no one has done so as of this writing.
+
+   Note that because the '$CVSROOT/CVSROOT' directory contains 'passwd'
+and other files which are used to check security, you must control the
+permissions on this directory as tightly as the permissions on '/etc'.
+The same applies to the '$CVSROOT' directory itself and any directory
+above it in the tree.  Anyone who has write access to such a directory
+will have the ability to become any user on the system.  Note that these
+permissions are typically tighter than you would use if you are not
+using pserver.
+
+   In summary, anyone who gets the password gets repository access
+(which may imply some measure of general system access as well).  The
+password is available to anyone who can sniff network packets or read a
+protected (i.e., user read-only) file.  If you want real security, get
+Kerberos.
+
+2.9.4 Direct connection with GSSAPI
+-----------------------------------
+
+GSSAPI is a generic interface to network security systems such as
+Kerberos 5.  If you have a working GSSAPI library, you can have CVS
+connect via a direct TCP connection, authenticating with GSSAPI.
+
+   To do this, CVS needs to be compiled with GSSAPI support; when
+configuring CVS it tries to detect whether GSSAPI libraries using
+Kerberos version 5 are present.  You can also use the '--with-gssapi'
+flag to configure.
+
+   The connection is authenticated using GSSAPI, but the message stream
+is _not_ authenticated by default.  You must use the '-a' global option
+to request stream authentication.
+
+   The data transmitted is _not_ encrypted by default.  Encryption
+support must be compiled into both the client and the server; use the
+'--enable-encrypt' configure option to turn it on.  You must then use
+the '-x' global option to request encryption.
+
+   GSSAPI connections are handled on the server side by the same server
+which handles the password authentication server; see *note Password
+authentication server::.  If you are using a GSSAPI mechanism such as
+Kerberos which provides for strong authentication, you will probably
+want to disable the ability to authenticate via cleartext passwords.  To
+do so, create an empty 'CVSROOT/passwd' password file, and set
+'SystemAuth=no' in the config file (*note config::).
+
+   The GSSAPI server uses a principal name of cvs/HOSTNAME, where
+HOSTNAME is the canonical name of the server host.  You will have to set
+this up as required by your GSSAPI mechanism.
+
+   To connect using GSSAPI, use the ':gserver:' method.  For example,
+
+     cvs -d :gserver:faun.example.org:/usr/local/cvsroot checkout foo
+
+2.9.5 Direct connection with Kerberos
+-------------------------------------
+
+The easiest way to use Kerberos is to use the Kerberos 'rsh', as
+described in *note Connecting via rsh::.  The main disadvantage of using
+rsh is that all the data needs to pass through additional programs, so
+it may be slower.  So if you have Kerberos installed you can connect via
+a direct TCP connection, authenticating with Kerberos.
+
+   This section concerns the Kerberos network security system, version
+4.  Kerberos version 5 is supported via the GSSAPI generic network
+security interface, as described in the previous section.
+
+   To do this, CVS needs to be compiled with Kerberos support; when
+configuring CVS it tries to detect whether Kerberos is present or you
+can use the '--with-krb4' flag to configure.
+
+   The data transmitted is _not_ encrypted by default.  Encryption
+support must be compiled into both the client and server; use the
+'--enable-encryption' configure option to turn it on.  You must then use
+the '-x' global option to request encryption.
+
+   You need to edit 'inetd.conf' on the server machine to run 'cvs
+kserver'.  The client uses port 1999 by default; if you want to use
+another port specify it in the 'CVSROOT' (*note Remote repositories::)
+or the 'CVS_CLIENT_PORT' environment variable (*note Environment
+variables::) on the client.
+
+   When you want to use CVS, get a ticket in the usual way (generally
+'kinit'); it must be a ticket which allows you to log into the server
+machine.  Then you are ready to go:
+
+     cvs -d :kserver:faun.example.org:/usr/local/cvsroot checkout foo
+
+   Previous versions of CVS would fall back to a connection via rsh;
+this version will not do so.
+
+2.9.6 Connecting with fork
+--------------------------
+
+This access method allows you to connect to a repository on your local
+disk via the remote protocol.  In other words it does pretty much the
+same thing as ':local:', but various quirks, bugs and the like are those
+of the remote CVS rather than the local CVS.
+
+   For day-to-day operations you might prefer either ':local:' or
+':fork:', depending on your preferences.  Of course ':fork:' comes in
+particularly handy in testing or debugging 'cvs' and the remote
+protocol.  Specifically, we avoid all of the network-related
+setup/configuration, timeouts, and authentication inherent in the other
+remote access methods but still create a connection which uses the
+remote protocol.
+
+   To connect using the 'fork' method, use ':fork:' and the pathname to
+your local repository.  For example:
+
+     cvs -d :fork:/usr/local/cvsroot checkout foo
+
+   As with ':ext:', the server is called 'cvs' by default, or the value
+of the 'CVS_SERVER' environment variable.
+
+2.10 Read-only repository access
+================================
+
+It is possible to grant read-only repository access to people using the
+password-authenticated server (*note Password authenticated::).  (The
+other access methods do not have explicit support for read-only users
+because those methods all assume login access to the repository machine
+anyway, and therefore the user can do whatever local file permissions
+allow her to do.)
+
+   A user who has read-only access can do only those CVS operations
+which do not modify the repository, except for certain "administrative"
+files (such as lock files and the history file).  It may be desirable to
+use this feature in conjunction with user-aliasing (*note Password
+authentication server::).
+
+   Unlike with previous versions of CVS, read-only users should be able
+merely to read the repository, and not to execute programs on the server
+or otherwise gain unexpected levels of access.  Or to be more accurate,
+the _known_ holes have been plugged.  Because this feature is new and
+has not received a comprehensive security audit, you should use whatever
+level of caution seems warranted given your attitude concerning
+security.
+
+   There are two ways to specify read-only access for a user: by
+inclusion, and by exclusion.
+
+   "Inclusion" means listing that user specifically in the
+'$CVSROOT/CVSROOT/readers' file, which is simply a newline-separated
+list of users.  Here is a sample 'readers' file:
+
+     melissa
+     splotnik
+     jrandom
+
+(Don't forget the newline after the last user.)
+
+   "Exclusion" means explicitly listing everyone who has _write_
+access--if the file
+
+     $CVSROOT/CVSROOT/writers
+
+exists, then only those users listed in it have write access, and
+everyone else has read-only access (of course, even the read-only users
+still need to be listed in the CVS 'passwd' file).  The 'writers' file
+has the same format as the 'readers' file.
+
+   Note: if your CVS 'passwd' file maps cvs users onto system users
+(*note Password authentication server::), make sure you deny or grant
+read-only access using the _cvs_ usernames, not the system usernames.
+That is, the 'readers' and 'writers' files contain cvs usernames, which
+may or may not be the same as system usernames.
+
+   Here is a complete description of the server's behavior in deciding
+whether to grant read-only or read-write access:
+
+   If 'readers' exists, and this user is listed in it, then she gets
+read-only access.  Or if 'writers' exists, and this user is NOT listed
+in it, then she also gets read-only access (this is true even if
+'readers' exists but she is not listed there).  Otherwise, she gets full
+read-write access.
+
+   Of course there is a conflict if the user is listed in both files.
+This is resolved in the more conservative way, it being better to
+protect the repository too much than too little: such a user gets
+read-only access.
+
+2.11 Temporary directories for the server
+=========================================
+
+While running, the CVS server creates temporary directories.  They are
+named
+
+     cvs-servPID
+
+where PID is the process identification number of the server.  They are
+located in the directory specified by the '-T' global option (*note
+Global options::), the 'TMPDIR' environment variable (*note Environment
+variables::), or, failing that, '/tmp'.
+
+   In most cases the server will remove the temporary directory when it
+is done, whether it finishes normally or abnormally.  However, there are
+a few cases in which the server does not or cannot remove the temporary
+directory, for example:
+
+   * If the server aborts due to an internal server error, it may
+     preserve the directory to aid in debugging
+
+   * If the server is killed in a way that it has no way of cleaning up
+     (most notably, 'kill -KILL' on unix).
+
+   * If the system shuts down without an orderly shutdown, which tells
+     the server to clean up.
+
+   In cases such as this, you will need to manually remove the
+'cvs-servPID' directories.  As long as there is no server running with
+process identification number PID, it is safe to do so.
+
+3 Starting a project with CVS
+*****************************
+
+Because renaming files and moving them between directories is somewhat
+inconvenient, the first thing you do when you start a new project should
+be to think through your file organization.  It is not impossible to
+rename or move files, but it does increase the potential for confusion
+and CVS does have some quirks particularly in the area of renaming
+directories.  *Note Moving files::.
+
+   What to do next depends on the situation at hand.
+
+3.1 Setting up the files
+========================
+
+The first step is to create the files inside the repository.  This can
+be done in a couple of different ways.
+
+3.1.1 Creating a directory tree from a number of files
+------------------------------------------------------
+
+When you begin using CVS, you will probably already have several
+projects that can be put under CVS control.  In these cases the easiest
+way is to use the 'import' command.  An example is probably the easiest
+way to explain how to use it.  If the files you want to install in CVS
+reside in 'WDIR', and you want them to appear in the repository as
+'$CVSROOT/yoyodyne/RDIR', you can do this:
+
+     $ cd WDIR
+     $ cvs import -m "Imported sources" yoyodyne/RDIR yoyo start
+
+   Unless you supply a log message with the '-m' flag, CVS starts an
+editor and prompts for a message.  The string 'yoyo' is a "vendor tag",
+and 'start' is a "release tag".  They may fill no purpose in this
+context, but since CVS requires them they must be present.  *Note
+Tracking sources::, for more information about them.
+
+   You can now verify that it worked, and remove your original source
+directory.
+
+     $ cd ..
+     $ cvs checkout yoyodyne/RDIR       # Explanation below
+     $ diff -r WDIR yoyodyne/RDIR
+     $ rm -r WDIR
+
+Erasing the original sources is a good idea, to make sure that you do
+not accidentally edit them in WDIR, bypassing CVS.  Of course, it would
+be wise to make sure that you have a backup of the sources before you
+remove them.
+
+   The 'checkout' command can either take a module name as argument (as
+it has done in all previous examples) or a path name relative to
+'$CVSROOT', as it did in the example above.
+
+   It is a good idea to check that the permissions CVS sets on the
+directories inside '$CVSROOT' are reasonable, and that they belong to
+the proper groups.  *Note File permissions::.
+
+   If some of the files you want to import are binary, you may want to
+use the wrappers features to specify which files are binary and which
+are not.  *Note Wrappers::.
+
+3.1.2 Creating Files From Other Version Control Systems
+-------------------------------------------------------
+
+If you have a project which you are maintaining with another version
+control system, such as RCS, you may wish to put the files from that
+project into CVS, and preserve the revision history of the files.
+
+From RCS
+     If you have been using RCS, find the RCS files--usually a file
+     named 'foo.c' will have its RCS file in 'RCS/foo.c,v' (but it could
+     be other places; consult the RCS documentation for details).  Then
+     create the appropriate directories in CVS if they do not already
+     exist.  Then copy the files into the appropriate directories in the
+     CVS repository (the name in the repository must be the name of the
+     source file with ',v' added; the files go directly in the
+     appropriate directory of the repository, not in an 'RCS'
+     subdirectory).  This is one of the few times when it is a good idea
+     to access the CVS repository directly, rather than using CVS
+     commands.  Then you are ready to check out a new working directory.
+
+     The RCS file should not be locked when you move it into CVS; if it
+     is, CVS will have trouble letting you operate on it.
+
+From another version control system
+     Many version control systems have the ability to export RCS files
+     in the standard format.  If yours does, export the RCS files and
+     then follow the above instructions.
+
+     Failing that, probably your best bet is to write a script that will
+     check out the files one revision at a time using the command line
+     interface to the other system, and then check the revisions into
+     CVS.  The 'sccs2rcs' script mentioned below may be a useful example
+     to follow.
+
+From SCCS
+     There is a script in the 'contrib' directory of the CVS source
+     distribution called 'sccs2rcs' which converts SCCS files to RCS
+     files.  Note: you must run it on a machine which has both SCCS and
+     RCS installed, and like everything else in contrib it is
+     unsupported (your mileage may vary).
+
+From PVCS
+     There is a script in the 'contrib' directory of the CVS source
+     distribution called 'pvcs_to_rcs' which converts PVCS archives to
+     RCS files.  You must run it on a machine which has both PVCS and
+     RCS installed, and like everything else in contrib it is
+     unsupported (your mileage may vary).  See the comments in the
+     script for details.
+
+3.1.3 Creating a directory tree from scratch
+--------------------------------------------
+
+For a new project, the easiest thing to do is probably to create an
+empty directory structure, like this:
+
+     $ mkdir tc
+     $ mkdir tc/man
+     $ mkdir tc/testing
+
+   After that, you use the 'import' command to create the corresponding
+(empty) directory structure inside the repository:
+
+     $ cd tc
+     $ cvs import -m "Created directory structure" yoyodyne/DIR yoyo start
+
+   This will add yoyodyne/DIR as a directory under '$CVSROOT'.
+
+   Use 'checkout' to get the new project.  Then, use 'add' to add files
+(and new directories) as needed.
+
+     $ cd ..
+     $ cvs co yoyodyne/DIR
+
+   Check that the permissions CVS sets on the directories inside
+'$CVSROOT' are reasonable.
+
+3.2 Defining the module
+=======================
+
+The next step is to define the module in the 'modules' file.  This is
+not strictly necessary, but modules can be convenient in grouping
+together related files and directories.
+
+   In simple cases these steps are sufficient to define a module.
+
+  1. Get a working copy of the modules file.
+
+          $ cvs checkout CVSROOT/modules
+          $ cd CVSROOT
+
+  2. Edit the file and insert a line that defines the module.  *Note
+     Intro administrative files::, for an introduction.  *Note
+     modules::, for a full description of the modules file.  You can use
+     the following line to define the module 'tc':
+
+          tc   yoyodyne/tc
+
+  3. Commit your changes to the modules file.
+
+          $ cvs commit -m "Added the tc module." modules
+
+  4. Release the modules module.
+
+          $ cd ..
+          $ cvs release -d CVSROOT
+
+4 Revisions
+***********
+
+For many uses of CVS, one doesn't need to worry too much about revision
+numbers; CVS assigns numbers such as '1.1', '1.2', and so on, and that
+is all one needs to know.  However, some people prefer to have more
+knowledge and control concerning how CVS assigns revision numbers.
+
+   If one wants to keep track of a set of revisions involving more than
+one file, such as which revisions went into a particular release, one
+uses a "tag", which is a symbolic revision which can be assigned to a
+numeric revision in each file.
+
+4.1 Revision numbers
+====================
+
+Each version of a file has a unique "revision number".  Revision numbers
+look like '1.1', '1.2', '1.3.2.2' or even '1.3.2.2.4.5'.  A revision
+number always has an even number of period-separated decimal integers.
+By default revision 1.1 is the first revision of a file.  Each
+successive revision is given a new number by increasing the rightmost
+number by one.  The following figure displays a few revisions, with
+newer revisions to the right.
+
+            +-----+    +-----+    +-----+    +-----+    +-----+
+            ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+            +-----+    +-----+    +-----+    +-----+    +-----+
+
+   It is also possible to end up with numbers containing more than one
+period, for example '1.3.2.2'.  Such revisions represent revisions on
+branches (*note Branching and merging::); such revision numbers are
+explained in detail in *note Branches and revisions::.
+
+4.2 Versions, revisions and releases
+====================================
+
+A file can have several versions, as described above.  Likewise, a
+software product can have several versions.  A software product is often
+given a version number such as '4.1.1'.
+
+   Versions in the first sense are called "revisions" in this document,
+and versions in the second sense are called "releases".  To avoid
+confusion, the word "version" is almost never used in this document.
+
+4.3 Assigning revisions
+=======================
+
+By default, CVS will assign numeric revisions by leaving the first
+number the same and incrementing the second number.  For example, '1.1',
+'1.2', '1.3', etc.
+
+   When adding a new file, the second number will always be one and the
+first number will equal the highest first number of any file in that
+directory.  For example, the current directory contains files whose
+highest numbered revisions are '1.7', '3.1', and '4.12', then an added
+file will be given the numeric revision '4.1'.  (When using
+client/server CVS, only files that are actually sent to the server are
+considered.)
+
+   Normally there is no reason to care about the revision numbers--it is
+easier to treat them as internal numbers that CVS maintains, and tags
+provide a better way to distinguish between things like release 1 versus
+release 2 of your product (*note Tags::).  However, if you want to set
+the numeric revisions, the '-r' option to 'cvs commit' can do that.  The
+'-r' option implies the '-f' option, in the sense that it causes the
+files to be committed even if they are not modified.
+
+   For example, to bring all your files up to revision 3.0 (including
+those that haven't changed), you might invoke:
+
+     $ cvs commit -r 3.0
+
+   Note that the number you specify with '-r' must be larger than any
+existing revision number.  That is, if revision 3.0 exists, you cannot
+'cvs commit -r 1.3'.  If you want to maintain several releases in
+parallel, you need to use a branch (*note Branching and merging::).
+
+4.4 Tags-Symbolic revisions
+===========================
+
+The revision numbers live a life of their own.  They need not have
+anything at all to do with the release numbers of your software product.
+Depending on how you use CVS the revision numbers might change several
+times between two releases.  As an example, some of the source files
+that make up RCS 5.6 have the following revision numbers:
+
+     ci.c            5.21
+     co.c            5.9
+     ident.c         5.3
+     rcs.c           5.12
+     rcsbase.h       5.11
+     rcsdiff.c       5.10
+     rcsedit.c       5.11
+     rcsfcmp.c       5.9
+     rcsgen.c        5.10
+     rcslex.c        5.11
+     rcsmap.c        5.2
+     rcsutil.c       5.10
+
+   You can use the 'tag' command to give a symbolic name to a certain
+revision of a file.  You can use the '-v' flag to the 'status' command
+to see all tags that a file has, and which revision numbers they
+represent.  Tag names must start with an uppercase or lowercase letter
+and can contain uppercase and lowercase letters, digits, '-', and '_'.
+The two tag names 'BASE' and 'HEAD' are reserved for use by CVS.  It is
+expected that future names which are special to CVS will be specially
+named, for example by starting with '.', rather than being named
+analogously to 'BASE' and 'HEAD', to avoid conflicts with actual tag
+names.
+
+   You'll want to choose some convention for naming tags, based on
+information such as the name of the program and the version number of
+the release.  For example, one might take the name of the program,
+immediately followed by the version number with '.' changed to '-', so
+that CVS 1.9 would be tagged with the name 'cvs1-9'.  If you choose a
+consistent convention, then you won't constantly be guessing whether a
+tag is 'cvs-1-9' or 'cvs1_9' or what.  You might even want to consider
+enforcing your convention in the 'taginfo' file (*note taginfo::).
+
+   The following example shows how you can add a tag to a file.  The
+commands must be issued inside your working directory.  That is, you
+should issue the command in the directory where 'backend.c' resides.
+
+     $ cvs tag rel-0-4 backend.c
+     T backend.c
+     $ cvs status -v backend.c
+     ===================================================================
+     File: backend.c         Status: Up-to-date
+
+         Version:            1.4     Tue Dec  1 14:39:01 1992
+         RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
+         Sticky Tag:         (none)
+         Sticky Date:        (none)
+         Sticky Options:     (none)
+
+         Existing Tags:
+             rel-0-4                     (revision: 1.4)
+
+
+   For a complete summary of the syntax of 'cvs tag', including the
+various options, see *note Invoking CVS::.
+
+   There is seldom reason to tag a file in isolation.  A more common use
+is to tag all the files that constitute a module with the same tag at
+strategic points in the development life-cycle, such as when a release
+is made.
+
+     $ cvs tag rel-1-0 .
+     cvs tag: Tagging .
+     T Makefile
+     T backend.c
+     T driver.c
+     T frontend.c
+     T parser.c
+
+(When you give CVS a directory as argument, it generally applies the
+operation to all the files in that directory, and (recursively), to any
+subdirectories that it may contain.  *Note Recursive behavior::.)
+
+   The 'checkout' command has a flag, '-r', that lets you check out a
+certain revision of a module.  This flag makes it easy to retrieve the
+sources that make up release 1.0 of the module 'tc' at any time in the
+future:
+
+     $ cvs checkout -r rel-1-0 tc
+
+This is useful, for instance, if someone claims that there is a bug in
+that release, but you cannot find the bug in the current working copy.
+
+   You can also check out a module as it was at any given date.  *Note
+checkout options::.  When specifying '-r' to any of these commands, you
+will need beware of sticky tags; see *note Sticky tags::.
+
+   When you tag more than one file with the same tag you can think about
+the tag as "a curve drawn through a matrix of filename vs. revision
+number."  Say we have 5 files with the following revisions:
+
+             file1   file2   file3   file4   file5
+
+             1.1     1.1     1.1     1.1  /--1.1*      <-*-  TAG
+             1.2*-   1.2     1.2    -1.2*-
+             1.3  \- 1.3*-   1.3   / 1.3
+             1.4          \  1.4  /  1.4
+                           \-1.5*-   1.5
+                             1.6
+
+   At some time in the past, the '*' versions were tagged.  You can
+think of the tag as a handle attached to the curve drawn through the
+tagged revisions.  When you pull on the handle, you get all the tagged
+revisions.  Another way to look at it is that you "sight" through a set
+of revisions that is "flat" along the tagged revisions, like this:
+
+             file1   file2   file3   file4   file5
+
+                             1.1
+                             1.2
+                     1.1     1.3                       _
+             1.1     1.2     1.4     1.1              /
+             1.2*----1.3*----1.5*----1.2*----1.1     (--- <--- Look here
+             1.3             1.6     1.3              \_
+             1.4                     1.4
+                                     1.5
+
+4.5 Specifying what to tag from the working directory
+=====================================================
+
+The example in the previous section demonstrates one of the most common
+ways to choose which revisions to tag.  Namely, running the 'cvs tag'
+command without arguments causes CVS to select the revisions which are
+checked out in the current working directory.  For example, if the copy
+of 'backend.c' in working directory was checked out from revision 1.4,
+then CVS will tag revision 1.4.  Note that the tag is applied
+immediately to revision 1.4 in the repository; tagging is not like
+modifying a file, or other operations in which one first modifies the
+working directory and then runs 'cvs commit' to transfer that
+modification to the repository.
+
+   One potentially surprising aspect of the fact that 'cvs tag' operates
+on the repository is that you are tagging the checked-in revisions,
+which may differ from locally modified files in your working directory.
+If you want to avoid doing this by mistake, specify the '-c' option to
+'cvs tag'.  If there are any locally modified files, CVS will abort with
+an error before it tags any files:
+
+     $ cvs tag -c rel-0-4
+     cvs tag: backend.c is locally modified
+     cvs [tag aborted]: correct the above errors first!
+
+4.6 Specifying what to tag by date or revision
+==============================================
+
+The 'cvs rtag' command tags the repository as of a certain date or time
+(or can be used to tag the latest revision).  'rtag' works directly on
+the repository contents (it requires no prior checkout and does not look
+for a working directory).
+
+   The following options specify which date or revision to tag.  See
+*note Common options::, for a complete description of them.
+
+'-D DATE'
+     Tag the most recent revision no later than DATE.
+
+'-f'
+     Only useful with the '-D DATE' or '-r TAG' flags.  If no matching
+     revision is found, use the most recent revision (instead of
+     ignoring the file).
+
+'-r TAG'
+     Only tag those files that contain existing tag TAG.
+
+   The 'cvs tag' command also allows one to specify files by revision or
+date, using the same '-r', '-D', and '-f' options.  However, this
+feature is probably not what you want.  The reason is that 'cvs tag'
+chooses which files to tag based on the files that exist in the working
+directory, rather than the files which existed as of the given tag/date.
+Therefore, you are generally better off using 'cvs rtag'.  The
+exceptions might be cases like:
+
+     cvs tag -r 1.4 backend.c
+
+4.7 Deleting, moving, and renaming tags
+=======================================
+
+Normally one does not modify tags.  They exist in order to record the
+history of the repository and so deleting them or changing their meaning
+would, generally, not be what you want.
+
+   However, there might be cases in which one uses a tag temporarily or
+accidentally puts one in the wrong place.  Therefore, one might delete,
+move, or rename a tag.
+
+*WARNING: The commands in this section are dangerous; they permanently
+discard historical information and it can be difficult or impossible to
+recover from errors.  If you are a CVS administrator, you may consider
+restricting these commands with the 'taginfo' file (*note taginfo::).*
+
+   To delete a tag, specify the '-d' option to either 'cvs tag' or 'cvs
+rtag'.  For example:
+
+     cvs rtag -d rel-0-4 tc
+
+deletes the non-branch tag 'rel-0-4' from the module 'tc'.  In the event
+that branch tags are encountered within the repository with the given
+name, a warning message will be issued and the branch tag will not be
+deleted.  If you are absolutely certain you know what you are doing, the
+'-B' option may be specified to allow deletion of branch tags.  In that
+case, any non-branch tags encountered will trigger warnings and will not
+be deleted.
+
+*WARNING: Moving branch tags is very dangerous!  If you think you need
+the '-B' option, think again and ask your CVS administrator about it (if
+that isn't you).  There is almost certainly another way to accomplish
+what you want to accomplish.*
+
+   When we say "move" a tag, we mean to make the same name point to
+different revisions.  For example, the 'stable' tag may currently point
+to revision 1.4 of 'backend.c' and perhaps we want to make it point to
+revision 1.6.  To move a non-branch tag, specify the '-F' option to
+either 'cvs tag' or 'cvs rtag'.  For example, the task just mentioned
+might be accomplished as:
+
+     cvs tag -r 1.6 -F stable backend.c
+
+If any branch tags are encountered in the repository with the given
+name, a warning is issued and the branch tag is not disturbed.  If you
+are absolutely certain you wish to move the branch tag, the '-B' option
+may be specified.  In that case, non-branch tags encountered with the
+given name are ignored with a warning message.
+
+*WARNING: Moving branch tags is very dangerous!  If you think you need
+the '-B' option, think again and ask your CVS administrator about it (if
+that isn't you).  There is almost certainly another way to accomplish
+what you want to accomplish.*
+
+   When we say "rename" a tag, we mean to make a different name point to
+the same revisions as the old tag.  For example, one may have misspelled
+the tag name and want to correct it (hopefully before others are relying
+on the old spelling).  To rename a tag, first create a new tag using the
+'-r' option to 'cvs rtag', and then delete the old name.  (Caution: this
+method will not work with branch tags.)  This leaves the new tag on
+exactly the same files as the old tag.  For example:
+
+     cvs rtag -r old-name-0-4 rel-0-4 tc
+     cvs rtag -d old-name-0-4 tc
+
+4.8 Tagging and adding and removing files
+=========================================
+
+The subject of exactly how tagging interacts with adding and removing
+files is somewhat obscure; for the most part CVS will keep track of
+whether files exist or not without too much fussing.  By default, tags
+are applied to only files which have a revision corresponding to what is
+being tagged.  Files which did not exist yet, or which were already
+removed, simply omit the tag, and CVS knows to treat the absence of a
+tag as meaning that the file didn't exist as of that tag.
+
+   However, this can lose a small amount of information.  For example,
+suppose a file was added and then removed.  Then, if the tag is missing
+for that file, there is no way to know whether the tag refers to the
+time before the file was added, or the time after it was removed.  If
+you specify the '-r' option to 'cvs rtag', then CVS tags the files which
+have been removed, and thereby avoids this problem.  For example, one
+might specify '-r HEAD' to tag the head.
+
+   On the subject of adding and removing files, the 'cvs rtag' command
+has a '-a' option which means to clear the tag from removed files that
+would not otherwise be tagged.  For example, one might specify this
+option in conjunction with '-F' when moving a tag.  If one moved a tag
+without '-a', then the tag in the removed files might still refer to the
+old revision, rather than reflecting the fact that the file had been
+removed.  I don't think this is necessary if '-r' is specified, as noted
+above.
+
+4.9 Sticky tags
+===============
+
+Sometimes a working copy's revision has extra data associated with it,
+for example it might be on a branch (*note Branching and merging::), or
+restricted to versions prior to a certain date by 'checkout -D' or
+'update -D'.  Because this data persists - that is, it applies to
+subsequent commands in the working copy - we refer to it as "sticky".
+
+   Most of the time, stickiness is an obscure aspect of CVS that you
+don't need to think about.  However, even if you don't want to use the
+feature, you may need to know _something_ about sticky tags (for
+example, how to avoid them!).
+
+   You can use the 'status' command to see if any sticky tags or dates
+are set:
+
+     $ cvs status driver.c
+     ===================================================================
+     File: driver.c          Status: Up-to-date
+
+         Version:            1.7.2.1 Sat Dec  5 19:35:03 1992
+         RCS Version:        1.7.2.1 /u/cvsroot/yoyodyne/tc/driver.c,v
+         Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
+         Sticky Date:        (none)
+         Sticky Options:     (none)
+
+
+   The sticky tags will remain on your working files until you delete
+them with 'cvs update -A'.  The '-A' option merges local changes into
+the version of the file from the head of the trunk, removing any sticky
+tags, dates, or options (other than sticky '-k' options on locally
+modified files).  See *note update:: for more on the operation of 'cvs
+update'.
+
+   The most common use of sticky tags is to identify which branch one is
+working on, as described in *note Accessing branches::.  However,
+non-branch sticky tags have uses as well.  For example, suppose that you
+want to avoid updating your working directory, to isolate yourself from
+possibly destabilizing changes other people are making.  You can, of
+course, just refrain from running 'cvs update'.  But if you want to
+avoid updating only a portion of a larger tree, then sticky tags can
+help.  If you check out a certain revision (such as 1.4) it will become
+sticky.  Subsequent 'cvs update' commands will not retrieve the latest
+revision until you reset the tag with 'cvs update -A'.  Likewise, use of
+the '-D' option to 'update' or 'checkout' sets a "sticky date", which,
+similarly, causes that date to be used for future retrievals.
+
+   People often want to retrieve an old version of a file without
+setting a sticky tag.  This can be done with the '-p' option to
+'checkout' or 'update', which sends the contents of the file to standard
+output.  For example:
+     $ cvs update -p -r 1.1 file1 >file1
+     ===================================================================
+     Checking out file1
+     RCS:  /tmp/cvs-sanity/cvsroot/first-dir/Attic/file1,v
+     VERS: 1.1
+     ***************
+     $
+
+   However, this isn't the easiest way, if you are asking how to undo a
+previous checkin (in this example, put 'file1' back to the way it was as
+of revision 1.1).  In that case you are better off using the '-j' option
+to 'update'; for further discussion see *note Merging two revisions::.
+
+5 Branching and merging
+***********************
+
+CVS allows you to isolate changes onto a separate line of development,
+known as a "branch".  When you change files on a branch, those changes
+do not appear on the main trunk or other branches.
+
+   Later you can move changes from one branch to another branch (or the
+main trunk) by "merging".  Merging involves first running 'cvs update
+-j', to merge the changes into the working directory.  You can then
+commit that revision, and thus effectively copy the changes onto another
+branch.
+
+5.1 What branches are good for
+==============================
+
+Suppose that release 1.0 of tc has been made.  You are continuing to
+develop tc, planning to create release 1.1 in a couple of months.  After
+a while your customers start to complain about a fatal bug.  You check
+out release 1.0 (*note Tags::) and find the bug (which turns out to have
+a trivial fix).  However, the current revision of the sources are in a
+state of flux and are not expected to be stable for at least another
+month.  There is no way to make a bug fix release based on the newest
+sources.
+
+   The thing to do in a situation like this is to create a "branch" on
+the revision trees for all the files that make up release 1.0 of tc.
+You can then make modifications to the branch without disturbing the
+main trunk.  When the modifications are finished you can elect to either
+incorporate them on the main trunk, or leave them on the branch.
+
+5.2 Creating a branch
+=====================
+
+You can create a branch with 'tag -b'; for example, assuming you're in a
+working copy:
+
+     $ cvs tag -b rel-1-0-patches
+
+   This splits off a branch based on the current revisions in the
+working copy, assigning that branch the name 'rel-1-0-patches'.
+
+   It is important to understand that branches get created in the
+repository, not in the working copy.  Creating a branch based on current
+revisions, as the above example does, will _not_ automatically switch
+the working copy to be on the new branch.  For information on how to do
+that, see *note Accessing branches::.
+
+   You can also create a branch without reference to any working copy,
+by using 'rtag':
+
+     $ cvs rtag -b -r rel-1-0 rel-1-0-patches tc
+
+   '-r rel-1-0' says that this branch should be rooted at the revision
+that corresponds to the tag 'rel-1-0'.  It need not be the most recent
+revision - it's often useful to split a branch off an old revision (for
+example, when fixing a bug in a past release otherwise known to be
+stable).
+
+   As with 'tag', the '-b' flag tells 'rtag' to create a branch (rather
+than just a symbolic revision name).  Note that the numeric revision
+number that matches 'rel-1-0' will probably be different from file to
+file.
+
+   So, the full effect of the command is to create a new branch - named
+'rel-1-0-patches' - in module 'tc', rooted in the revision tree at the
+point tagged by 'rel-1-0'.
+
+5.3 Accessing branches
+======================
+
+You can retrieve a branch in one of two ways: by checking it out fresh
+from the repository, or by switching an existing working copy over to
+the branch.
+
+   To check out a branch from the repository, invoke 'checkout' with the
+'-r' flag, followed by the tag name of the branch (*note Creating a
+branch::):
+
+     $ cvs checkout -r rel-1-0-patches tc
+
+   Or, if you already have a working copy, you can switch it to a given
+branch with 'update -r':
+
+     $ cvs update -r rel-1-0-patches tc
+
+or equivalently:
+
+     $ cd tc
+     $ cvs update -r rel-1-0-patches
+
+   It does not matter if the working copy was originally on the main
+trunk or on some other branch - the above command will switch it to the
+named branch.  And similarly to a regular 'update' command, 'update -r'
+merges any changes you have made, notifying you of conflicts where they
+occur.
+
+   Once you have a working copy tied to a particular branch, it remains
+there until you tell it otherwise.  This means that changes checked in
+from the working copy will add new revisions on that branch, while
+leaving the main trunk and other branches unaffected.
+
+   To find out what branch a working copy is on, you can use the
+'status' command.  In its output, look for the field named 'Sticky tag'
+(*note Sticky tags::) - that's CVS's way of telling you the branch, if
+any, of the current working files:
+
+     $ cvs status -v driver.c backend.c
+     ===================================================================
+     File: driver.c          Status: Up-to-date
+
+         Version:            1.7     Sat Dec  5 18:25:54 1992
+         RCS Version:        1.7     /u/cvsroot/yoyodyne/tc/driver.c,v
+         Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
+         Sticky Date:        (none)
+         Sticky Options:     (none)
+
+         Existing Tags:
+             rel-1-0-patches             (branch: 1.7.2)
+             rel-1-0                     (revision: 1.7)
+
+     ===================================================================
+     File: backend.c         Status: Up-to-date
+
+         Version:            1.4     Tue Dec  1 14:39:01 1992
+         RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
+         Sticky Tag:         rel-1-0-patches (branch: 1.4.2)
+         Sticky Date:        (none)
+         Sticky Options:     (none)
+
+         Existing Tags:
+             rel-1-0-patches             (branch: 1.4.2)
+             rel-1-0                     (revision: 1.4)
+             rel-0-4                     (revision: 1.4)
+
+
+   Don't be confused by the fact that the branch numbers for each file
+are different ('1.7.2' and '1.4.2' respectively).  The branch tag is the
+same, 'rel-1-0-patches', and the files are indeed on the same branch.
+The numbers simply reflect the point in each file's revision history at
+which the branch was made.  In the above example, one can deduce that
+'driver.c' had been through more changes than 'backend.c' before this
+branch was created.
+
+   See *note Branches and revisions:: for details about how branch
+numbers are constructed.
+
+5.4 Branches and revisions
+==========================
+
+Ordinarily, a file's revision history is a linear series of increments
+(*note Revision numbers::):
+
+            +-----+    +-----+    +-----+    +-----+    +-----+
+            ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+            +-----+    +-----+    +-----+    +-----+    +-----+
+
+   However, CVS is not limited to linear development.  The "revision
+tree" can be split into "branches", where each branch is a
+self-maintained line of development.  Changes made on one branch can
+easily be moved back to the main trunk.
+
+   Each branch has a "branch number", consisting of an odd number of
+period-separated decimal integers.  The branch number is created by
+appending an integer to the revision number where the corresponding
+branch forked off.  Having branch numbers allows more than one branch to
+be forked off from a certain revision.
+
+   All revisions on a branch have revision numbers formed by appending
+an ordinal number to the branch number.  The following figure
+illustrates branching with an example.
+
+                                                           +-------------+
+                                Branch 1.2.2.3.2 ->        ! 1.2.2.3.2.1 !
+                                                         / +-------------+
+                                                        /
+                                                       /
+                      +---------+    +---------+    +---------+
+     Branch 1.2.2 -> _! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
+                    / +---------+    +---------+    +---------+
+                   /
+                  /
+     +-----+    +-----+    +-----+    +-----+    +-----+
+     ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !  <- The main trunk
+     +-----+    +-----+    +-----+    +-----+    +-----+
+                     !
+                     !
+                     !   +---------+    +---------+    +---------+
+     Branch 1.2.4 -> +---! 1.2.4.1 !----! 1.2.4.2 !----! 1.2.4.3 !
+                         +---------+    +---------+    +---------+
+
+
+   The exact details of how the branch number is constructed is not
+something you normally need to be concerned about, but here is how it
+works: When CVS creates a branch number it picks the first unused even
+integer, starting with 2.  So when you want to create a branch from
+revision 6.4 it will be numbered 6.4.2.  All branch numbers ending in a
+zero (such as 6.4.0) are used internally by CVS (*note Magic branch
+numbers::).  The branch 1.1.1 has a special meaning.  *Note Tracking
+sources::.
+
+5.5 Magic branch numbers
+========================
+
+This section describes a CVS feature called "magic branches".  For most
+purposes, you need not worry about magic branches; CVS handles them for
+you.  However, they are visible to you in certain circumstances, so it
+may be useful to have some idea of how it works.
+
+   Externally, branch numbers consist of an odd number of dot-separated
+decimal integers.  *Note Revision numbers::.  That is not the whole
+truth, however.  For efficiency reasons CVS sometimes inserts an extra 0
+in the second rightmost position (1.2.4 becomes 1.2.0.4, 8.9.10.11.12
+becomes 8.9.10.11.0.12 and so on).
+
+   CVS does a pretty good job at hiding these so called magic branches,
+but in a few places the hiding is incomplete:
+
+   * The magic branch number appears in the output from 'cvs log'.
+
+   * You cannot specify a symbolic branch name to 'cvs admin'.
+
+   You can use the 'admin' command to reassign a symbolic name to a
+branch the way RCS expects it to be.  If 'R4patches' is assigned to the
+branch 1.4.2 (magic branch number 1.4.0.2) in file 'numbers.c' you can
+do this:
+
+     $ cvs admin -NR4patches:1.4.2 numbers.c
+
+   It only works if at least one revision is already committed on the
+branch.  Be very careful so that you do not assign the tag to the wrong
+number.  (There is no way to see how the tag was assigned yesterday).
+
+5.6 Merging an entire branch
+============================
+
+You can merge changes made on a branch into your working copy by giving
+the '-j BRANCHNAME' flag to the 'update' subcommand.  With one '-j
+BRANCHNAME' option it merges the changes made between the greatest
+common ancestor (GCA) of the branch and the destination revision (in the
+simple case below the GCA is the point where the branch forked) and the
+newest revision on that branch into your working copy.
+
+   The '-j' stands for "join".
+
+   Consider this revision tree:
+
+     +-----+    +-----+    +-----+    +-----+
+     ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !      <- The main trunk
+     +-----+    +-----+    +-----+    +-----+
+                     !
+                     !
+                     !   +---------+    +---------+
+     Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !
+                         +---------+    +---------+
+
+The branch 1.2.2 has been given the tag (symbolic name) 'R1fix'.  The
+following example assumes that the module 'mod' contains only one file,
+'m.c'.
+
+     $ cvs checkout mod               # Retrieve the latest revision, 1.4
+
+     $ cvs update -j R1fix m.c        # Merge all changes made on the branch,
+                                      # i.e. the changes between revision 1.2
+                                      # and 1.2.2.2, into your working copy
+                                      # of the file.
+
+     $ cvs commit -m "Included R1fix" # Create revision 1.5.
+
+   A conflict can result from a merge operation.  If that happens, you
+should resolve it before committing the new revision.  *Note Conflicts
+example::.
+
+   If your source files contain keywords (*note Keyword substitution::),
+you might be getting more conflicts than strictly necessary.  See *note
+Merging and keywords::, for information on how to avoid this.
+
+   The 'checkout' command also supports the '-j BRANCHNAME' flag.  The
+same effect as above could be achieved with this:
+
+     $ cvs checkout -j R1fix mod
+     $ cvs commit -m "Included R1fix"
+
+   It should be noted that 'update -j TAGNAME' will also work but may
+not produce the desired result.  *Note Merging adds and removals::, for
+more.
+
+5.7 Merging from a branch several times
+=======================================
+
+Continuing our example, the revision tree now looks like this:
+
+     +-----+    +-----+    +-----+    +-----+    +-----+
+     ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   <- The main trunk
+     +-----+    +-----+    +-----+    +-----+    +-----+
+                     !                           *
+                     !                          *
+                     !   +---------+    +---------+
+     Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !
+                         +---------+    +---------+
+
+where the starred line represents the merge from the 'R1fix' branch to
+the main trunk, as just discussed.
+
+   Now suppose that development continues on the 'R1fix' branch:
+
+     +-----+    +-----+    +-----+    +-----+    +-----+
+     ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   <- The main trunk
+     +-----+    +-----+    +-----+    +-----+    +-----+
+                     !                           *
+                     !                          *
+                     !   +---------+    +---------+    +---------+
+     Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
+                         +---------+    +---------+    +---------+
+
+and then you want to merge those new changes onto the main trunk.  If
+you just use the 'cvs update -j R1fix m.c' command again, CVS will
+attempt to merge again the changes which you have already merged, which
+can have undesirable side effects.
+
+   So instead you need to specify that you only want to merge the
+changes on the branch which have not yet been merged into the trunk.  To
+do that you specify two '-j' options, and CVS merges the changes from
+the first revision to the second revision.  For example, in this case
+the simplest way would be
+
+     cvs update -j 1.2.2.2 -j R1fix m.c    # Merge changes from 1.2.2.2 to the
+                                           # head of the R1fix branch
+
+   The problem with this is that you need to specify the 1.2.2.2
+revision manually.  A slightly better approach might be to use the date
+the last merge was done:
+
+     cvs update -j R1fix:yesterday -j R1fix m.c
+
+   Better yet, tag the R1fix branch after every merge into the trunk,
+and then use that tag for subsequent merges:
+
+     cvs update -j merged_from_R1fix_to_trunk -j R1fix m.c
+
+5.8 Merging differences between any two revisions
+=================================================
+
+With two '-j REVISION' flags, the 'update' (and 'checkout') command can
+merge the differences between any two revisions into your working file.
+
+     $ cvs update -j 1.5 -j 1.3 backend.c
+
+will undo all changes made between revision 1.3 and 1.5.  Note the order
+of the revisions!
+
+   If you try to use this option when operating on multiple files,
+remember that the numeric revisions will probably be very different
+between the various files.  You almost always use symbolic tags rather
+than revision numbers when operating on multiple files.
+
+   Specifying two '-j' options can also undo file removals or additions.
+For example, suppose you have a file named 'file1' which existed as
+revision 1.1, and you then removed it (thus adding a dead revision 1.2).
+Now suppose you want to add it again, with the same contents it had
+previously.  Here is how to do it:
+
+     $ cvs update -j 1.2 -j 1.1 file1
+     U file1
+     $ cvs commit -m test
+     Checking in file1;
+     /tmp/cvs-sanity/cvsroot/first-dir/file1,v  <--  file1
+     new revision: 1.3; previous revision: 1.2
+     done
+     $
+
+5.9 Merging can add or remove files
+===================================
+
+If the changes which you are merging involve removing or adding some
+files, 'update -j' will reflect such additions or removals.
+
+   For example:
+     cvs update -A
+     touch a b c
+     cvs add a b c ; cvs ci -m "added" a b c
+     cvs tag -b branchtag
+     cvs update -r branchtag
+     touch d ; cvs add d
+     rm a ; cvs rm a
+     cvs ci -m "added d, removed a"
+     cvs update -A
+     cvs update -jbranchtag
+
+   After these commands are executed and a 'cvs commit' is done, file
+'a' will be removed and file 'd' added in the main branch.
+
+   Note that using a single static tag ('-j TAGNAME') rather than a
+dynamic tag ('-j BRANCHNAME') to merge changes from a branch will
+usually not remove files which were removed on the branch since CVS does
+not automatically add static tags to dead revisions.  The exception to
+this rule occurs when a static tag has been attached to a dead revision
+manually.  Use the branch tag to merge all changes from the branch or
+use two static tags as merge endpoints to be sure that all intended
+changes are propagated in the merge.
+
+5.10 Merging and keywords
+=========================
+
+If you merge files containing keywords (*note Keyword substitution::),
+you will normally get numerous conflicts during the merge, because the
+keywords are expanded differently in the revisions which you are
+merging.
+
+   Therefore, you will often want to specify the '-kk' (*note
+Substitution modes::) switch to the merge command line.  By substituting
+just the name of the keyword, not the expanded value of that keyword,
+this option ensures that the revisions which you are merging will be the
+same as each other, and avoid spurious conflicts.
+
+   For example, suppose you have a file like this:
+
+            +---------+
+           _! 1.1.2.1 !   <-  br1
+          / +---------+
+         /
+        /
+     +-----+    +-----+
+     ! 1.1 !----! 1.2 !
+     +-----+    +-----+
+
+and your working directory is currently on the trunk (revision 1.2).
+Then you might get the following results from a merge:
+
+     $ cat file1
+     key $Revision: 1.1 $
+     . . .
+     $ cvs update -j br1
+     U file1
+     RCS file: /cvsroot/first-dir/file1,v
+     retrieving revision 1.1
+     retrieving revision 1.1.2.1
+     Merging differences between 1.1 and 1.1.2.1 into file1
+     rcsmerge: warning: conflicts during merge
+     $ cat file1
+     <<<<<<< file1
+     key $Revision: 1.1 $
+     =======
+     key $Revision: 1.1 $
+     >>>>>>> 1.1.2.1
+     . . .
+
+   What happened was that the merge tried to merge the differences
+between 1.1 and 1.1.2.1 into your working directory.  So, since the
+keyword changed from 'Revision: 1.1' to 'Revision: 1.1.2.1', CVS tried
+to merge that change into your working directory, which conflicted with
+the fact that your working directory had contained 'Revision: 1.2'.
+
+   Here is what happens if you had used '-kk':
+
+     $ cat file1
+     key $Revision: 1.1 $
+     . . .
+     $ cvs update -kk -j br1
+     U file1
+     RCS file: /cvsroot/first-dir/file1,v
+     retrieving revision 1.1
+     retrieving revision 1.1.2.1
+     Merging differences between 1.1 and 1.1.2.1 into file1
+     $ cat file1
+     key $Revision: 1.1 $
+     . . .
+
+   What is going on here is that revision 1.1 and 1.1.2.1 both expand as
+plain 'Revision', and therefore merging the changes between them into
+the working directory need not change anything.  Therefore, there is no
+conflict.
+
+   There is, however, one major caveat with using '-kk' on merges.
+Namely, it overrides whatever keyword expansion mode CVS would normally
+have used.  In particular, this is a problem if the mode had been '-kb'
+for a binary file.  Therefore, if your repository contains binary files,
+you will need to deal with the conflicts rather than using '-kk'.
+
+   As a result of using '-kk' during the merge, each file examined by
+the update will have '-kk' set as sticky options.  Running 'update -A'
+will clear the sticky options on unmodified files, but it will not clear
+the sticky options on modified files.  To get back to the default
+keyword substitution for modified files, you must commit the results of
+the merge and then run 'update -A'.
+
+6 Recursive behavior
+********************
+
+Almost all of the subcommands of CVS work recursively when you specify a
+directory as an argument.  For instance, consider this directory
+structure:
+
+           $HOME
+             |
+             +--tc
+             |   |
+                 +--CVS
+                 |      (internal CVS files)
+                 +--Makefile
+                 +--backend.c
+                 +--driver.c
+                 +--frontend.c
+                 +--parser.c
+                 +--man
+                 |    |
+                 |    +--CVS
+                 |    |  (internal CVS files)
+                 |    +--tc.1
+                 |
+                 +--testing
+                      |
+                      +--CVS
+                      |  (internal CVS files)
+                      +--testpgm.t
+                      +--test2.t
+
+If 'tc' is the current working directory, the following is true:
+
+   * 'cvs update testing' is equivalent to
+
+          cvs update testing/testpgm.t testing/test2.t
+
+   * 'cvs update testing man' updates all files in the subdirectories
+
+   * 'cvs update .' or just 'cvs update' updates all files in the 'tc'
+     directory
+
+   If no arguments are given to 'update' it will update all files in the
+current working directory and all its subdirectories.  In other words,
+'.' is a default argument to 'update'.  This is also true for most of
+the CVS subcommands, not only the 'update' command.
+
+   The recursive behavior of the CVS subcommands can be turned off with
+the '-l' option.  Conversely, the '-R' option can be used to force
+recursion if '-l' is specified in '~/.cvsrc' (*note ~/.cvsrc::).
+
+     $ cvs update -l         # Don't update files in subdirectories
+
+7 Adding, removing, and renaming files and directories
+******************************************************
+
+In the course of a project, one will often add new files.  Likewise with
+removing or renaming, or with directories.  The general concept to keep
+in mind in all these cases is that instead of making an irreversible
+change you want CVS to record the fact that a change has taken place,
+just as with modifying an existing file.  The exact mechanisms to do
+this in CVS vary depending on the situation.
+
+7.1 Adding files to a directory
+===============================
+
+To add a new file to a directory, follow these steps.
+
+   * You must have a working copy of the directory.  *Note Getting the
+     source::.
+
+   * Create the new file inside your working copy of the directory.
+
+   * Use 'cvs add FILENAME' to tell CVS that you want to version control
+     the file.  If the file contains binary data, specify '-kb' (*note
+     Binary files::).
+
+   * Use 'cvs commit FILENAME' to actually check in the file into the
+     repository.  Other developers cannot see the file until you perform
+     this step.
+
+   You can also use the 'add' command to add a new directory.
+
+   Unlike most other commands, the 'add' command is not recursive.  You
+have to explicitly name files and directories that you wish to add to
+the repository.  However, each directory will need to be added
+separately before you will be able to add new files to those
+directories.
+
+     $ mkdir -p foo/bar
+     $ cp ~/myfile foo/bar/myfile
+     $ cvs add foo foo/bar
+     $ cvs add foo/bar/myfile
+
+ -- Command: cvs add ['-k' kflag] ['-m' message] files ...
+
+     Schedule FILES to be added to the repository.  The files or
+     directories specified with 'add' must already exist in the current
+     directory.  To add a whole new directory hierarchy to the source
+     repository (for example, files received from a third-party vendor),
+     use the 'import' command instead.  *Note import::.
+
+     The added files are not placed in the source repository until you
+     use 'commit' to make the change permanent.  Doing an 'add' on a
+     file that was removed with the 'remove' command will undo the
+     effect of the 'remove', unless a 'commit' command intervened.
+     *Note Removing files::, for an example.
+
+     The '-k' option specifies the default way that this file will be
+     checked out; for more information see *note Substitution modes::.
+
+     The '-m' option specifies a description for the file.  This
+     description appears in the history log (if it is enabled, *note
+     history file::).  It will also be saved in the version history
+     inside the repository when the file is committed.  The 'log'
+     command displays this description.  The description can be changed
+     using 'admin -t'.  *Note admin::.  If you omit the '-m DESCRIPTION'
+     flag, an empty string will be used.  You will not be prompted for a
+     description.
+
+   For example, the following commands add the file 'backend.c' to the
+repository:
+
+     $ cvs add backend.c
+     $ cvs commit -m "Early version. Not yet compilable." backend.c
+
+   When you add a file it is added only on the branch which you are
+working on (*note Branching and merging::).  You can later merge the
+additions to another branch if you want (*note Merging adds and
+removals::).
+
+7.2 Removing files
+==================
+
+Directories change.  New files are added, and old files disappear.
+Still, you want to be able to retrieve an exact copy of old releases.
+
+   Here is what you can do to remove a file, but remain able to retrieve
+old revisions:
+
+   * Make sure that you have not made any uncommitted modifications to
+     the file.  *Note Viewing differences::, for one way to do that.
+     You can also use the 'status' or 'update' command.  If you remove
+     the file without committing your changes, you will of course not be
+     able to retrieve the file as it was immediately before you deleted
+     it.
+
+   * Remove the file from your working copy of the directory.  You can
+     for instance use 'rm'.
+
+   * Use 'cvs remove FILENAME' to tell CVS that you really want to
+     delete the file.
+
+   * Use 'cvs commit FILENAME' to actually perform the removal of the
+     file from the repository.
+
+   When you commit the removal of the file, CVS records the fact that
+the file no longer exists.  It is possible for a file to exist on only
+some branches and not on others, or to re-add another file with the same
+name later.  CVS will correctly create or not create the file, based on
+the '-r' and '-D' options specified to 'checkout' or 'update'.
+
+ -- Command: cvs remove [options] files ...
+
+     Schedule file(s) to be removed from the repository (files which
+     have not already been removed from the working directory are not
+     processed).  This command does not actually remove the file from
+     the repository until you commit the removal.  For a full list of
+     options, see *note Invoking CVS::.
+
+   Here is an example of removing several files:
+
+     $ cd test
+     $ rm *.c
+     $ cvs remove
+     cvs remove: Removing .
+     cvs remove: scheduling a.c for removal
+     cvs remove: scheduling b.c for removal
+     cvs remove: use 'cvs commit' to remove these files permanently
+     $ cvs ci -m "Removed unneeded files"
+     cvs commit: Examining .
+     cvs commit: Committing .
+
+   As a convenience you can remove the file and 'cvs remove' it in one
+step, by specifying the '-f' option.  For example, the above example
+could also be done like this:
+
+     $ cd test
+     $ cvs remove -f *.c
+     cvs remove: scheduling a.c for removal
+     cvs remove: scheduling b.c for removal
+     cvs remove: use 'cvs commit' to remove these files permanently
+     $ cvs ci -m "Removed unneeded files"
+     cvs commit: Examining .
+     cvs commit: Committing .
+
+   If you execute 'remove' for a file, and then change your mind before
+you commit, you can undo the 'remove' with an 'add' command.
+
+     $ ls
+     CVS   ja.h  oj.c
+     $ rm oj.c
+     $ cvs remove oj.c
+     cvs remove: scheduling oj.c for removal
+     cvs remove: use 'cvs commit' to remove this file permanently
+     $ cvs add oj.c
+     U oj.c
+     cvs add: oj.c, version 1.1.1.1, resurrected
+
+   If you realize your mistake before you run the 'remove' command you
+can use 'update' to resurrect the file:
+
+     $ rm oj.c
+     $ cvs update oj.c
+     cvs update: warning: oj.c was lost
+     U oj.c
+
+   When you remove a file it is removed only on the branch which you are
+working on (*note Branching and merging::).  You can later merge the
+removals to another branch if you want (*note Merging adds and
+removals::).
+
+7.3 Removing directories
+========================
+
+In concept, removing directories is somewhat similar to removing
+files--you want the directory to not exist in your current working
+directories, but you also want to be able to retrieve old releases in
+which the directory existed.
+
+   The way that you remove a directory is to remove all the files in it.
+You don't remove the directory itself; there is no way to do that.
+Instead you specify the '-P' option to 'cvs update' or 'cvs checkout',
+which will cause CVS to remove empty directories from working
+directories.  (Note that 'cvs export' always removes empty directories.)
+Probably the best way to do this is to always specify '-P'; if you want
+an empty directory then put a dummy file (for example '.keepme') in it
+to prevent '-P' from removing it.
+
+   Note that '-P' is implied by the '-r' or '-D' options of 'checkout'.
+This way, CVS will be able to correctly create the directory or not
+depending on whether the particular version you are checking out
+contains any files in that directory.
+
+7.4 Moving and renaming files
+=============================
+
+Moving files to a different directory or renaming them is not difficult,
+but some of the ways in which this works may be non-obvious.  (Moving or
+renaming a directory is even harder.  *Note Moving directories::.).
+
+   The examples below assume that the file OLD is renamed to NEW.
+
+7.4.1 The Normal way to Rename
+------------------------------
+
+The normal way to move a file is to copy OLD to NEW, and then issue the
+normal CVS commands to remove OLD from the repository, and add NEW to
+it.
+
+     $ mv OLD NEW
+     $ cvs remove OLD
+     $ cvs add NEW
+     $ cvs commit -m "Renamed OLD to NEW" OLD NEW
+
+   This is the simplest way to move a file, it is not error-prone, and
+it preserves the history of what was done.  Note that to access the
+history of the file you must specify the old or the new name, depending
+on what portion of the history you are accessing.  For example, 'cvs log
+OLD' will give the log up until the time of the rename.
+
+   When NEW is committed its revision numbers will start again, usually
+at 1.1, so if that bothers you, use the '-r rev' option to commit.  For
+more information see *note Assigning revisions::.
+
+7.4.2 Moving the history file
+-----------------------------
+
+This method is more dangerous, since it involves moving files inside the
+repository.  Read this entire section before trying it out!
+
+     $ cd $CVSROOT/DIR
+     $ mv OLD,v NEW,v
+
+Advantages:
+
+   * The log of changes is maintained intact.
+
+   * The revision numbers are not affected.
+
+Disadvantages:
+
+   * Old releases cannot easily be fetched from the repository.  (The
+     file will show up as NEW even in revisions from the time before it
+     was renamed).
+
+   * There is no log information of when the file was renamed.
+
+   * Nasty things might happen if someone accesses the history file
+     while you are moving it.  Make sure no one else runs any of the CVS
+     commands while you move it.
+
+7.4.3 Copying the history file
+------------------------------
+
+This way also involves direct modifications to the repository.  It is
+safe, but not without drawbacks.
+
+     # Copy the RCS file inside the repository
+     $ cd $CVSROOT/DIR
+     $ cp OLD,v NEW,v
+     # Remove the old file
+     $ cd ~/DIR
+     $ rm OLD
+     $ cvs remove OLD
+     $ cvs commit OLD
+     # Remove all tags from NEW
+     $ cvs update NEW
+     $ cvs log NEW             # Remember the non-branch tag names
+     $ cvs tag -d TAG1 NEW
+     $ cvs tag -d TAG2 NEW
+     ...
+
+   By removing the tags you will be able to check out old revisions.
+
+Advantages:
+
+   * Checking out old revisions works correctly, as long as you use
+     '-rTAG' and not '-DDATE' to retrieve the revisions.
+
+   * The log of changes is maintained intact.
+
+   * The revision numbers are not affected.
+
+Disadvantages:
+
+   * You cannot easily see the history of the file across the rename.
+
+7.5 Moving and renaming directories
+===================================
+
+The normal way to rename or move a directory is to rename or move each
+file within it as described in *note Outside::.  Then check out with the
+'-P' option, as described in *note Removing directories::.
+
+   If you really want to hack the repository to rename or delete a
+directory in the repository, you can do it like this:
+
+  1. Inform everyone who has a checked out copy of the directory that
+     the directory will be renamed.  They should commit all their
+     changes in all their copies of the project containing the directory
+     to be removed, and remove all their working copies of said project,
+     before you take the steps below.
+
+  2. Rename the directory inside the repository.
+
+          $ cd $CVSROOT/PARENT-DIR
+          $ mv OLD-DIR NEW-DIR
+
+  3. Fix the CVS administrative files, if necessary (for instance if you
+     renamed an entire module).
+
+  4. Tell everyone that they can check out again and continue working.
+
+   If someone had a working copy the CVS commands will cease to work for
+him, until he removes the directory that disappeared inside the
+repository.
+
+   It is almost always better to move the files in the directory instead
+of moving the directory.  If you move the directory you are unlikely to
+be able to retrieve old releases correctly, since they probably depend
+on the name of the directories.
+
+8 History browsing
+******************
+
+Once you have used CVS to store a version control history--what files
+have changed when, how, and by whom, there are a variety of mechanisms
+for looking through the history.
+
+8.1 Log messages
+================
+
+Whenever you commit a file you specify a log message.
+
+   To look through the log messages which have been specified for every
+revision which has been committed, use the 'cvs log' command (*note
+log::).
+
+8.2 The history database
+========================
+
+You can use the history file (*note history file::) to log various CVS
+actions.  To retrieve the information from the history file, use the
+'cvs history' command (*note history::).
+
+   Note: you can control what is logged to this file by using the
+'LogHistory' keyword in the 'CVSROOT/config' file (*note config::).
+
+8.3 User-defined logging
+========================
+
+You can customize CVS to log various kinds of actions, in whatever
+manner you choose.  These mechanisms operate by executing a script at
+various times.  The script might append a message to a file listing the
+information and the programmer who created it, or send mail to a group
+of developers, or, perhaps, post a message to a particular newsgroup.
+To log commits, use the 'loginfo' file (*note loginfo::).  To log tags,
+use the 'taginfo' file (*note taginfo::).  To log checkouts, exports,
+and tags, respectively, you can also use the '-o', '-e', and '-t'
+options in the modules file.  For a more flexible way of giving
+notifications to various users, which requires less in the way of
+keeping centralized scripts up to date, use the 'cvs watch add' command
+(*note Getting Notified::); this command is useful even if you are not
+using 'cvs watch on'.
+
+9 Handling binary files
+***********************
+
+The most common use for CVS is to store text files.  With text files,
+CVS can merge revisions, display the differences between revisions in a
+human-visible fashion, and other such operations.  However, if you are
+willing to give up a few of these abilities, CVS can store binary files.
+For example, one might store a web site in CVS including both text files
+and binary images.
+
+9.1 The issues with binary files
+================================
+
+While the need to manage binary files may seem obvious if the files that
+you customarily work with are binary, putting them into version control
+does present some additional issues.
+
+   One basic function of version control is to show the differences
+between two revisions.  For example, if someone else checked in a new
+version of a file, you may wish to look at what they changed and
+determine whether their changes are good.  For text files, CVS provides
+this functionality via the 'cvs diff' command.  For binary files, it may
+be possible to extract the two revisions and then compare them with a
+tool external to CVS (for example, word processing software often has
+such a feature).  If there is no such tool, one must track changes via
+other mechanisms, such as urging people to write good log messages, and
+hoping that the changes they actually made were the changes that they
+intended to make.
+
+   Another ability of a version control system is the ability to merge
+two revisions.  For CVS this happens in two contexts.  The first is when
+users make changes in separate working directories (*note Multiple
+developers::).  The second is when one merges explicitly with the
+'update -j' command (*note Branching and merging::).
+
+   In the case of text files, CVS can merge changes made independently,
+and signal a conflict if the changes conflict.  With binary files, the
+best that CVS can do is present the two different copies of the file,
+and leave it to the user to resolve the conflict.  The user may choose
+one copy or the other, or may run an external merge tool which knows
+about that particular file format, if one exists.  Note that having the
+user merge relies primarily on the user to not accidentally omit some
+changes, and thus is potentially error prone.
+
+   If this process is thought to be undesirable, the best choice may be
+to avoid merging.  To avoid the merges that result from separate working
+directories, see the discussion of reserved checkouts (file locking) in
+*note Multiple developers::.  To avoid the merges resulting from
+branches, restrict use of branches.
+
+9.2 How to store binary files
+=============================
+
+There are two issues with using CVS to store binary files.  The first is
+that CVS by default converts line endings between the canonical form in
+which they are stored in the repository (linefeed only), and the form
+appropriate to the operating system in use on the client (for example,
+carriage return followed by line feed for Windows NT).
+
+   The second is that a binary file might happen to contain data which
+looks like a keyword (*note Keyword substitution::), so keyword
+expansion must be turned off.
+
+   The '-kb' option available with some CVS commands insures that
+neither line ending conversion nor keyword expansion will be done.
+
+   Here is an example of how you can create a new file using the '-kb'
+flag:
+
+     $ echo '$Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $' > kotest
+     $ cvs add -kb -m"A test file" kotest
+     $ cvs ci -m"First checkin; contains a keyword" kotest
+
+   If a file accidentally gets added without '-kb', one can use the 'cvs
+admin' command to recover.  For example:
+
+     $ echo '$Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $' > kotest
+     $ cvs add -m"A test file" kotest
+     $ cvs ci -m"First checkin; contains a keyword" kotest
+     $ cvs admin -kb kotest
+     $ cvs update -A kotest
+     # For non-unix systems:
+     # Copy in a good copy of the file from outside CVS
+     $ cvs commit -m "make it binary" kotest
+
+   When you check in the file 'kotest' the file is not preserved as a
+binary file, because you did not check it in as a binary file.  The 'cvs
+admin -kb' command sets the default keyword substitution method for this
+file, but it does not alter the working copy of the file that you have.
+If you need to cope with line endings (that is, you are using CVS on a
+non-unix system), then you need to check in a new copy of the file, as
+shown by the 'cvs commit' command above.  On unix, the 'cvs update -A'
+command suffices.  (Note that you can use 'cvs log' to determine the
+default keyword substitution method for a file and 'cvs status' to
+determine the keyword substitution method for a working copy.)
+
+   However, in using 'cvs admin -k' to change the keyword expansion, be
+aware that the keyword expansion mode is not version controlled.  This
+means that, for example, that if you have a text file in old releases,
+and a binary file with the same name in new releases, CVS provides no
+way to check out the file in text or binary mode depending on what
+version you are checking out.  There is no good workaround for this
+problem.
+
+   You can also set a default for whether 'cvs add' and 'cvs import'
+treat a file as binary based on its name; for example you could say that
+files who names end in '.exe' are binary.  *Note Wrappers::.  There is
+currently no way to have CVS detect whether a file is binary based on
+its contents.  The main difficulty with designing such a feature is that
+it is not clear how to distinguish between binary and non-binary files,
+and the rules to apply would vary considerably with the operating
+system.
+
+10 Multiple developers
+**********************
+
+When more than one person works on a software project things often get
+complicated.  Often, two people try to edit the same file
+simultaneously.  One solution, known as "file locking" or "reserved
+checkouts", is to allow only one person to edit each file at a time.
+This is the only solution with some version control systems, including
+RCS and SCCS.  Currently the usual way to get reserved checkouts with
+CVS is the 'cvs admin -l' command (*note admin options::).  This is not
+as nicely integrated into CVS as the watch features, described below,
+but it seems that most people with a need for reserved checkouts find it
+adequate.  It also may be possible to use the watches features described
+below, together with suitable procedures (not enforced by software), to
+avoid having two people edit at the same time.
+
+   The default model with CVS is known as "unreserved checkouts".  In
+this model, developers can edit their own "working copy" of a file
+simultaneously.  The first person that commits his changes has no
+automatic way of knowing that another has started to edit it.  Others
+will get an error message when they try to commit the file.  They must
+then use CVS commands to bring their working copy up to date with the
+repository revision.  This process is almost automatic.
+
+   CVS also supports mechanisms which facilitate various kinds of
+communication, without actually enforcing rules like reserved checkouts
+do.
+
+   The rest of this chapter describes how these various models work, and
+some of the issues involved in choosing between them.
+
+10.1 File status
+================
+
+Based on what operations you have performed on a checked out file, and
+what operations others have performed to that file in the repository,
+one can classify a file in a number of states.  The states, as reported
+by the 'status' command, are:
+
+Up-to-date
+     The file is identical with the latest revision in the repository
+     for the branch in use.
+
+Locally Modified
+     You have edited the file, and not yet committed your changes.
+
+Locally Added
+     You have added the file with 'add', and not yet committed your
+     changes.
+
+Locally Removed
+     You have removed the file with 'remove', and not yet committed your
+     changes.
+
+Needs Checkout
+     Someone else has committed a newer revision to the repository.  The
+     name is slightly misleading; you will ordinarily use 'update'
+     rather than 'checkout' to get that newer revision.
+
+Needs Patch
+     Like Needs Checkout, but the CVS server will send a patch rather
+     than the entire file.  Sending a patch or sending an entire file
+     accomplishes the same thing.
+
+Needs Merge
+     Someone else has committed a newer revision to the repository, and
+     you have also made modifications to the file.
+
+Unresolved Conflict
+     A file with the same name as this new file has been added to the
+     repository from a second workspace.  This file will need to be
+     moved out of the way to allow an 'update' to complete.
+
+File had conflicts on merge
+     This is like Locally Modified, except that a previous 'update'
+     command gave a conflict.  If you have not already done so, you need
+     to resolve the conflict as described in *note Conflicts example::.
+
+Unknown
+     CVS doesn't know anything about this file.  For example, you have
+     created a new file and have not run 'add'.
+
+   To help clarify the file status, 'status' also reports the 'Working
+revision' which is the revision that the file in the working directory
+derives from, and the 'Repository revision' which is the latest revision
+in the repository for the branch in use.
+
+   The options to 'status' are listed in *note Invoking CVS::.  For
+information on its 'Sticky tag' and 'Sticky date' output, see *note
+Sticky tags::.  For information on its 'Sticky options' output, see the
+'-k' option in *note update options::.
+
+   You can think of the 'status' and 'update' commands as somewhat
+complementary.  You use 'update' to bring your files up to date, and you
+can use 'status' to give you some idea of what an 'update' would do (of
+course, the state of the repository might change before you actually run
+'update').  In fact, if you want a command to display file status in a
+more brief format than is displayed by the 'status' command, you can
+invoke
+
+     $ cvs -n -q update
+
+   The '-n' option means to not actually do the update, but merely to
+display statuses; the '-q' option avoids printing the name of each
+directory.  For more information on the 'update' command, and these
+options, see *note Invoking CVS::.
+
+10.2 Bringing a file up to date
+===============================
+
+When you want to update or merge a file, use the 'cvs update -d'
+command.  For files that are not up to date this is roughly equivalent
+to a 'checkout' command: the newest revision of the file is extracted
+from the repository and put in your working directory.  The '-d' option,
+not necessary with 'checkout', tells CVS that you wish it to create
+directories added by other developers.
+
+   Your modifications to a file are never lost when you use 'update'.
+If no newer revision exists, running 'update' has no effect.  If you
+have edited the file, and a newer revision is available, CVS will merge
+all changes into your working copy.
+
+   For instance, imagine that you checked out revision 1.4 and started
+editing it.  In the meantime someone else committed revision 1.5, and
+shortly after that revision 1.6.  If you run 'update' on the file now,
+CVS will incorporate all changes between revision 1.4 and 1.6 into your
+file.
+
+   If any of the changes between 1.4 and 1.6 were made too close to any
+of the changes you have made, an "overlap" occurs.  In such cases a
+warning is printed, and the resulting file includes both versions of the
+lines that overlap, delimited by special markers.  *Note update::, for a
+complete description of the 'update' command.
+
+10.3 Conflicts example
+======================
+
+Suppose revision 1.4 of 'driver.c' contains this:
+
+     #include <stdio.h>
+
+     void main()
+     {
+         parse();
+         if (nerr == 0)
+             gencode();
+         else
+             fprintf(stderr, "No code generated.\n");
+         exit(nerr == 0 ? 0 : 1);
+     }
+
+Revision 1.6 of 'driver.c' contains this:
+
+     #include <stdio.h>
+
+     int main(int argc,
+              char **argv)
+     {
+         parse();
+         if (argc != 1)
+         {
+             fprintf(stderr, "tc: No args expected.\n");
+             exit(1);
+         }
+         if (nerr == 0)
+             gencode();
+         else
+             fprintf(stderr, "No code generated.\n");
+         exit(!!nerr);
+     }
+
+Your working copy of 'driver.c', based on revision 1.4, contains this
+before you run 'cvs update':
+
+     #include <stdlib.h>
+     #include <stdio.h>
+
+     void main()
+     {
+         init_scanner();
+         parse();
+         if (nerr == 0)
+             gencode();
+         else
+             fprintf(stderr, "No code generated.\n");
+         exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+     }
+
+You run 'cvs update':
+
+     $ cvs update driver.c
+     RCS file: /usr/local/cvsroot/yoyodyne/tc/driver.c,v
+     retrieving revision 1.4
+     retrieving revision 1.6
+     Merging differences between 1.4 and 1.6 into driver.c
+     rcsmerge warning: overlaps during merge
+     cvs update: conflicts found in driver.c
+     C driver.c
+
+CVS tells you that there were some conflicts.  Your original working
+file is saved unmodified in '.#driver.c.1.4'.  The new version of
+'driver.c' contains this:
+
+     #include <stdlib.h>
+     #include <stdio.h>
+
+     int main(int argc,
+              char **argv)
+     {
+         init_scanner();
+         parse();
+         if (argc != 1)
+         {
+             fprintf(stderr, "tc: No args expected.\n");
+             exit(1);
+         }
+         if (nerr == 0)
+             gencode();
+         else
+             fprintf(stderr, "No code generated.\n");
+     <<<<<<< driver.c
+         exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+     =======
+         exit(!!nerr);
+     >>>>>>> 1.6
+     }
+
+   Note how all non-overlapping modifications are incorporated in your
+working copy, and that the overlapping section is clearly marked with
+'<<<<<<<', '=======' and '>>>>>>>'.
+
+   You resolve the conflict by editing the file, removing the markers
+and the erroneous line.  Suppose you end up with this file:
+     #include <stdlib.h>
+     #include <stdio.h>
+
+     int main(int argc,
+              char **argv)
+     {
+         init_scanner();
+         parse();
+         if (argc != 1)
+         {
+             fprintf(stderr, "tc: No args expected.\n");
+             exit(1);
+         }
+         if (nerr == 0)
+             gencode();
+         else
+             fprintf(stderr, "No code generated.\n");
+         exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+     }
+
+You can now go ahead and commit this as revision 1.7.
+
+     $ cvs commit -m "Initialize scanner. Use symbolic exit values." driver.c
+     Checking in driver.c;
+     /usr/local/cvsroot/yoyodyne/tc/driver.c,v  <--  driver.c
+     new revision: 1.7; previous revision: 1.6
+     done
+
+   For your protection, CVS will refuse to check in a file if a conflict
+occurred and you have not resolved the conflict.  Currently to resolve a
+conflict, you must change the timestamp on the file.  In previous
+versions of CVS, you also needed to insure that the file contains no
+conflict markers.  Because your file may legitimately contain conflict
+markers (that is, occurrences of '>>>>>>> ' at the start of a line that
+don't mark a conflict), the current version of CVS will print a warning
+and proceed to check in the file.
+
+   If you use release 1.04 or later of pcl-cvs (a GNU Emacs front-end
+for CVS) you can use an Emacs package called emerge to help you resolve
+conflicts.  See the documentation for pcl-cvs.
+
+10.4 Informing others about commits
+===================================
+
+It is often useful to inform others when you commit a new revision of a
+file.  The 'loginfo' file can be used to automate this process.  *Note
+loginfo::.  You can use these features of CVS to, for instance, instruct
+CVS to mail a message to all developers, or post a message to a local
+newsgroup.
+
+10.5 Several developers simultaneously attempting to run CVS
+============================================================
+
+If several developers try to run CVS at the same time, one may get the
+following message:
+
+     [11:43:23] waiting for bach's lock in /usr/local/cvsroot/foo
+
+   CVS will try again every 30 seconds, and either continue with the
+operation or print the message again, if it still needs to wait.  If a
+lock seems to stick around for an undue amount of time, find the person
+holding the lock and ask them about the cvs command they are running.
+If they aren't running a cvs command, look in the repository directory
+mentioned in the message and remove files which they own whose names
+start with '#cvs.rfl', '#cvs.wfl', or '#cvs.lock'.
+
+   Note that these locks are to protect CVS's internal data structures
+and have no relationship to the word "lock" in the sense used by
+RCS--which refers to reserved checkouts (*note Multiple developers::).
+
+   Any number of people can be reading from a given repository at a
+time; only when someone is writing do the locks prevent other people
+from reading or writing.
+
+   One might hope for the following property:
+
+     If someone commits some changes in one cvs command, then an update
+     by someone else will either get all the changes, or none of them.
+
+but CVS does _not_ have this property.  For example, given the files
+
+     a/one.c
+     a/two.c
+     b/three.c
+     b/four.c
+
+if someone runs
+
+     cvs ci a/two.c b/three.c
+
+and someone else runs 'cvs update' at the same time, the person running
+'update' might get only the change to 'b/three.c' and not the change to
+'a/two.c'.
+
+10.6 Mechanisms to track who is editing files
+=============================================
+
+For many groups, use of CVS in its default mode is perfectly
+satisfactory.  Users may sometimes go to check in a modification only to
+find that another modification has intervened, but they deal with it and
+proceed with their check in.  Other groups prefer to be able to know who
+is editing what files, so that if two people try to edit the same file
+they can choose to talk about who is doing what when rather than be
+surprised at check in time.  The features in this section allow such
+coordination, while retaining the ability of two developers to edit the
+same file at the same time.
+
+   For maximum benefit developers should use 'cvs edit' (not 'chmod') to
+make files read-write to edit them, and 'cvs release' (not 'rm') to
+discard a working directory which is no longer in use, but CVS is not
+able to enforce this behavior.
+
+10.6.1 Telling CVS to watch certain files
+-----------------------------------------
+
+To enable the watch features, you first specify that certain files are
+to be watched.
+
+ -- Command: cvs watch on ['-lR'] [FILES]...
+
+     Specify that developers should run 'cvs edit' before editing FILES.
+     CVS will create working copies of FILES read-only, to remind
+     developers to run the 'cvs edit' command before working on them.
+
+     If FILES includes the name of a directory, CVS arranges to watch
+     all files added to the corresponding repository directory, and sets
+     a default for files added in the future; this allows the user to
+     set notification policies on a per-directory basis.  The contents
+     of the directory are processed recursively, unless the '-l' option
+     is given.  The '-R' option can be used to force recursion if the
+     '-l' option is set in '~/.cvsrc' (*note ~/.cvsrc::).
+
+     If FILES is omitted, it defaults to the current directory.
+
+ -- Command: cvs watch off ['-lR'] [FILES]...
+
+     Do not create FILES read-only on checkout; thus, developers will
+     not be reminded to use 'cvs edit' and 'cvs unedit'.
+
+     The FILES and options are processed as for 'cvs watch on'.
+
+10.6.2 Telling CVS to notify you
+--------------------------------
+
+You can tell CVS that you want to receive notifications about various
+actions taken on a file.  You can do this without using 'cvs watch on'
+for the file, but generally you will want to use 'cvs watch on', to
+remind developers to use the 'cvs edit' command.
+
+ -- Command: cvs watch add ['-lR'] ['-a' ACTION]... [FILES]...
+
+     Add the current user to the list of people to receive notification
+     of work done on FILES.
+
+     The '-a' option specifies what kinds of events CVS should notify
+     the user about.  ACTION is one of the following:
+
+     'edit'
+          Another user has applied the 'cvs edit' command (described
+          below) to a watched file.
+
+     'commit'
+          Another user has committed changes to one of the named FILES.
+
+     'unedit'
+          Another user has abandoned editing a file (other than by
+          committing changes).  They can do this in several ways, by:
+
+             * applying the 'cvs unedit' command (described below) to
+               the file
+
+             * applying the 'cvs release' command (*note release::) to
+               the file's parent directory (or recursively to a
+               directory more than one level up)
+
+             * deleting the file and allowing 'cvs update' to recreate
+               it
+
+     'all'
+          All of the above.
+
+     'none'
+          None of the above.  (This is useful with 'cvs edit', described
+          below.)
+
+     The '-a' option may appear more than once, or not at all.  If
+     omitted, the action defaults to 'all'.
+
+     The FILES and options are processed as for 'cvs watch on'.
+
+ -- Command: cvs watch remove ['-lR'] ['-a' ACTION]... [FILES]...
+
+     Remove a notification request established using 'cvs watch add';
+     the arguments are the same.  If the '-a' option is present, only
+     watches for the specified actions are removed.
+
+   When the conditions exist for notification, CVS calls the 'notify'
+administrative file.  Edit 'notify' as one edits the other
+administrative files (*note Intro administrative files::).  This file
+follows the usual conventions for administrative files (*note syntax::),
+where each line is a regular expression followed by a command to
+execute.  The command should contain a single occurrence of '%s' which
+will be replaced by the user to notify; the rest of the information
+regarding the notification will be supplied to the command on standard
+input.  The standard thing to put in the 'notify' file is the single
+line:
+
+     ALL mail %s -s "CVS notification"
+
+This causes users to be notified by electronic mail.
+
+   Note that if you set this up in the straightforward way, users
+receive notifications on the server machine.  One could of course write
+a 'notify' script which directed notifications elsewhere, but to make
+this easy, CVS allows you to associate a notification address for each
+user.  To do so create a file 'users' in 'CVSROOT' with a line for each
+user in the format USER:VALUE.  Then instead of passing the name of the
+user to be notified to 'notify', CVS will pass the VALUE (normally an
+email address on some other machine).
+
+   CVS does not notify you for your own changes.  Currently this check
+is done based on whether the user name of the person taking the action
+which triggers notification matches the user name of the person getting
+notification.  In fact, in general, the watches features only track one
+edit by each user.  It probably would be more useful if watches tracked
+each working directory separately, so this behavior might be worth
+changing.
+
+10.6.3 How to edit a file which is being watched
+------------------------------------------------
+
+Since a file which is being watched is checked out read-only, you cannot
+simply edit it.  To make it read-write, and inform others that you are
+planning to edit it, use the 'cvs edit' command.  Some systems call this
+a "checkout", but CVS uses that term for obtaining a copy of the sources
+(*note Getting the source::), an operation which those systems call a
+"get" or a "fetch".
+
+ -- Command: cvs edit ['-lR'] ['-a' ACTION]... [FILES]...
+
+     Prepare to edit the working files FILES.  CVS makes the FILES
+     read-write, and notifies users who have requested 'edit'
+     notification for any of FILES.
+
+     The 'cvs edit' command accepts the same options as the 'cvs watch
+     add' command, and establishes a temporary watch for the user on
+     FILES; CVS will remove the watch when FILES are 'unedit'ed or
+     'commit'ted.  If the user does not wish to receive notifications,
+     she should specify '-a none'.
+
+     The FILES and the options are processed as for the 'cvs watch'
+     commands.
+
+   Normally when you are done with a set of changes, you use the 'cvs
+commit' command, which checks in your changes and returns the watched
+files to their usual read-only state.  But if you instead decide to
+abandon your changes, or not to make any changes, you can use the 'cvs
+unedit' command.
+
+ -- Command: cvs unedit ['-lR'] [FILES]...
+
+     Abandon work on the working files FILES, and revert them to the
+     repository versions on which they are based.  CVS makes those FILES
+     read-only for which users have requested notification using 'cvs
+     watch on'.  CVS notifies users who have requested 'unedit'
+     notification for any of FILES.
+
+     The FILES and options are processed as for the 'cvs watch'
+     commands.
+
+     If watches are not in use, the 'unedit' command probably does not
+     work, and the way to revert to the repository version is with the
+     command 'cvs update -C file' (*note update::).  The meaning is not
+     precisely the same; the latter may also bring in some changes which
+     have been made in the repository since the last time you updated.
+
+   When using client/server CVS, you can use the 'cvs edit' and 'cvs
+unedit' commands even if CVS is unable to successfully communicate with
+the server; the notifications will be sent upon the next successful CVS
+command.
+
+10.6.4 Information about who is watching and editing
+----------------------------------------------------
+
+ -- Command: cvs watchers ['-lR'] [FILES]...
+
+     List the users currently watching changes to FILES.  The report
+     includes the files being watched, and the mail address of each
+     watcher.
+
+     The FILES and options are processed as for the 'cvs watch'
+     commands.
+
+ -- Command: cvs editors ['-lR'] [FILES]...
+
+     List the users currently working on FILES.  The report includes the
+     mail address of each user, the time when the user began working
+     with the file, and the host and path of the working directory
+     containing the file.
+
+     The FILES and options are processed as for the 'cvs watch'
+     commands.
+
+10.6.5 Using watches with old versions of CVS
+---------------------------------------------
+
+If you use the watch features on a repository, it creates 'CVS'
+directories in the repository and stores the information about watches
+in that directory.  If you attempt to use CVS 1.6 or earlier with the
+repository, you get an error message such as the following (all on one
+line):
+
+     cvs update: cannot open CVS/Entries for reading:
+     No such file or directory
+
+and your operation will likely be aborted.  To use the watch features,
+you must upgrade all copies of CVS which use that repository in local or
+server mode.  If you cannot upgrade, use the 'watch off' and 'watch
+remove' commands to remove all watches, and that will restore the
+repository to a state which CVS 1.6 can cope with.
+
+10.7 Choosing between reserved or unreserved checkouts
+======================================================
+
+Reserved and unreserved checkouts each have pros and cons.  Let it be
+said that a lot of this is a matter of opinion or what works given
+different groups' working styles, but here is a brief description of
+some of the issues.  There are many ways to organize a team of
+developers.  CVS does not try to enforce a certain organization.  It is
+a tool that can be used in several ways.
+
+   Reserved checkouts can be very counter-productive.  If two persons
+want to edit different parts of a file, there may be no reason to
+prevent either of them from doing so.  Also, it is common for someone to
+take out a lock on a file, because they are planning to edit it, but
+then forget to release the lock.
+
+   People, especially people who are familiar with reserved checkouts,
+often wonder how often conflicts occur if unreserved checkouts are used,
+and how difficult they are to resolve.  The experience with many groups
+is that they occur rarely and usually are relatively straightforward to
+resolve.
+
+   The rarity of serious conflicts may be surprising, until one realizes
+that they occur only when two developers disagree on the proper design
+for a given section of code; such a disagreement suggests that the team
+has not been communicating properly in the first place.  In order to
+collaborate under _any_ source management regimen, developers must agree
+on the general design of the system; given this agreement, overlapping
+changes are usually straightforward to merge.
+
+   In some cases unreserved checkouts are clearly inappropriate.  If no
+merge tool exists for the kind of file you are managing (for example
+word processor files or files edited by Computer Aided Design programs),
+and it is not desirable to change to a program which uses a mergeable
+data format, then resolving conflicts is going to be unpleasant enough
+that you generally will be better off to simply avoid the conflicts
+instead, by using reserved checkouts.
+
+   The watches features described above in *note Watches:: can be
+considered to be an intermediate model between reserved checkouts and
+unreserved checkouts.  When you go to edit a file, it is possible to
+find out who else is editing it.  And rather than having the system
+simply forbid both people editing the file, it can tell you what the
+situation is and let you figure out whether it is a problem in that
+particular case or not.  Therefore, for some groups it can be considered
+the best of both the reserved checkout and unreserved checkout worlds.
+
+11 Revision management
+**********************
+
+If you have read this far, you probably have a pretty good grasp on what
+CVS can do for you.  This chapter talks a little about things that you
+still have to decide.
+
+   If you are doing development on your own using CVS you could probably
+skip this chapter.  The questions this chapter takes up become more
+important when more than one person is working in a repository.
+
+11.1 When to commit?
+====================
+
+Your group should decide which policy to use regarding commits.  Several
+policies are possible, and as your experience with CVS grows you will
+probably find out what works for you.
+
+   If you commit files too quickly you might commit files that do not
+even compile.  If your partner updates his working sources to include
+your buggy file, he will be unable to compile the code.  On the other
+hand, other persons will not be able to benefit from the improvements
+you make to the code if you commit very seldom, and conflicts will
+probably be more common.
+
+   It is common to only commit files after making sure that they can be
+compiled.  Some sites require that the files pass a test suite.
+Policies like this can be enforced using the commitinfo file (*note
+commitinfo::), but you should think twice before you enforce such a
+convention.  By making the development environment too controlled it
+might become too regimented and thus counter-productive to the real
+goal, which is to get software written.
+
+12 Keyword substitution
+***********************
+
+As long as you edit source files inside a working directory you can
+always find out the state of your files via 'cvs status' and 'cvs log'.
+But as soon as you export the files from your development environment it
+becomes harder to identify which revisions they are.
+
+   CVS can use a mechanism known as "keyword substitution" (or "keyword
+expansion") to help identifying the files.  Embedded strings of the form
+'$KEYWORD$' and '$KEYWORD:...$' in a file are replaced with strings of
+the form '$KEYWORD:VALUE$' whenever you obtain a new revision of the
+file.
+
+12.1 Keyword List
+=================
+
+This is a list of the keywords:
+
+'$Author: ineiev $'
+     The login name of the user who checked in the revision.
+
+'$Date: 2015/12/28 15:57:44 $'
+     The date and time (UTC) the revision was checked in.
+
+'$Header: /web/trans-coord/trans-coord/manual/cvs/cvs.txt,v 1.1 2015/12/28 
15:57:44 ineiev Exp $'
+     A standard header containing the full pathname of the RCS file, the
+     revision number, the date (UTC), the author, the state, and the
+     locker (if locked).  Files will normally never be locked when you
+     use CVS.
+
+'$Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $'
+     Same as '$Header: /web/trans-coord/trans-coord/manual/cvs/cvs.txt,v 1.1 
2015/12/28 15:57:44 ineiev Exp $', except that the RCS filename is without a 
path.
+
+'$Name:  $'
+     Tag name used to check out this file.  The keyword is expanded only
+     if one checks out with an explicit tag name.  For example, when
+     running the command 'cvs co -r first', the keyword expands to
+     'Name: first'.
+
+'$Locker:  $'
+     The login name of the user who locked the revision (empty if not
+     locked, which is the normal case unless 'cvs admin -l' is in use).
+
+'$Log: cvs.txt,v $
+'Revision 1.1  2015/12/28 15:57:44  ineiev
+'Add cvs manual RT #1073518.
+''
+     The log message supplied during commit, preceded by a header
+     containing the RCS filename, the revision number, the author, and
+     the date (UTC). Existing log messages are _not_ replaced.  Instead,
+     the new log message is inserted after '$Log:...$'.  Each new line
+     is prefixed with the same string which precedes the '$Log' keyword.
+     For example, if the file contains:
+
+            /* Here is what people have been up to:
+             *
+             * $Log: cvs.txt,v $
+             * Revision 1.1  2015/12/28 15:57:44  ineiev
+             * Add cvs manual RT #1073518.
+             *
+             * Revision 1.1  1997/01/03 14:23:51  joe
+             * Add the superfrobnicate option
+             *
+             */
+
+     then additional lines which are added when expanding the '$Log'
+     keyword will be preceded by ' * '.  Unlike previous versions of CVS
+     and RCS, the "comment leader" from the RCS file is not used.  The
+     '$Log' keyword is useful for accumulating a complete change log in
+     a source file, but for several reasons it can be problematic.
+     *Note Log keyword::.
+
+'$RCSfile: cvs.txt,v $'
+     The name of the RCS file without a path.
+
+'$Revision: 1.1 $'
+     The revision number assigned to the revision.
+
+'$Source: /web/trans-coord/trans-coord/manual/cvs/cvs.txt,v $'
+     The full pathname of the RCS file.
+
+'$State: Exp $'
+     The state assigned to the revision.  States can be assigned with
+     'cvs admin -s'--see *note admin options::.
+
+12.2 Using keywords
+===================
+
+To include a keyword string you simply include the relevant text string,
+such as '$Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $', inside the 
file, and commit the file.  CVS will
+automatically (Or, more accurately, as part of the update run that
+automatically happens after a commit.)  expand the string as part of the
+commit operation.
+
+   It is common to embed the '$Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev 
Exp $' string in the source files so that
+it gets passed through to generated files.  For example, if you are
+managing computer program source code, you might include a variable
+which is initialized to contain that string.  Or some C compilers may
+provide a '#pragma ident' directive.  Or a document management system
+might provide a way to pass a string through to generated files.
+
+   The 'ident' command (which is part of the RCS package) can be used to
+extract keywords and their values from a file.  This can be handy for
+text files, but it is even more useful for extracting keywords from
+binary files.
+
+     $ ident samp.c
+     samp.c:
+          $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $
+     $ gcc samp.c
+     $ ident a.out
+     a.out:
+          $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $
+
+   SCCS is another popular revision control system.  It has a command,
+'what', which is very similar to 'ident' and used for the same purpose.
+Many sites without RCS have SCCS.  Since 'what' looks for the character
+sequence '@(#)' it is easy to include keywords that are detected by
+either command.  Simply prefix the keyword with the magic SCCS phrase,
+like this:
+
+     static char *id="@(#) $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp 
$";
+
+12.3 Avoiding substitution
+==========================
+
+Keyword substitution has its disadvantages.  Sometimes you might want
+the literal text string '$Author: ineiev $' to appear inside a file without CVS
+interpreting it as a keyword and expanding it into something like
+'$Author: ineiev $'.
+
+   There is unfortunately no way to selectively turn off keyword
+substitution.  You can use '-ko' (*note Substitution modes::) to turn
+off keyword substitution entirely.
+
+   In many cases you can avoid using keywords in the source, even though
+they appear in the final product.  For example, the source for this
+manual contains 'address@hidden' whenever the text '$Author: ineiev $' should
+appear.  In 'nroff' and 'troff' you can embed the null-character '\&'
+inside the keyword for a similar effect.
+
+12.4 Substitution modes
+=======================
+
+Each file has a stored default substitution mode, and each working
+directory copy of a file also has a substitution mode.  The former is
+set by the '-k' option to 'cvs add' and 'cvs admin'; the latter is set
+by the '-k' or '-A' options to 'cvs checkout' or 'cvs update'.  'cvs
+diff' and 'cvs rdiff' also have '-k' options.  For some examples, see
+*note Binary files::, and *note Merging and keywords::.
+
+   The modes available are:
+
+'-kkv'
+     Generate keyword strings using the default form, e.g.  '$Revision:
+     5.7 $' for the 'Revision' keyword.
+
+'-kkvl'
+     Like '-kkv', except that a locker's name is always inserted if the
+     given revision is currently locked.  The locker's name is only
+     relevant if 'cvs admin -l' is in use.
+
+'-kk'
+     Generate only keyword names in keyword strings; omit their values.
+     For example, for the 'Revision' keyword, generate the string
+     '$Revision: 1.1 $' instead of '$Revision: 1.1 $'.  This option is useful
+     to ignore differences due to keyword substitution when comparing
+     different revisions of a file (*note Merging and keywords::).
+
+'-ko'
+     Generate the old keyword string, present in the working file just
+     before it was checked in.  For example, for the 'Revision' keyword,
+     generate the string '$Revision: 1.1 $' instead of '$Revision: 5.7
+     $' if that is how the string appeared when the file was checked in.
+
+'-kb'
+     Like '-ko', but also inhibit conversion of line endings between the
+     canonical form in which they are stored in the repository (linefeed
+     only), and the form appropriate to the operating system in use on
+     the client.  For systems, like unix, which use linefeed only to
+     terminate lines, this is the same as '-ko'.  For more information
+     on binary files, see *note Binary files::.
+
+'-kv'
+     Generate only keyword values for keyword strings.  For example, for
+     the 'Revision' keyword, generate the string '5.7' instead of
+     '$Revision: 1.1 $'.  This can help generate files in programming
+     languages where it is hard to strip keyword delimiters like
+     '$Revision: 1.1 $' from a string.  However, further keyword
+     substitution cannot be performed once the keyword names are
+     removed, so this option should be used with care.
+
+     One often would like to use '-kv' with 'cvs export'--*note
+     export::.  But be aware that doesn't handle an export containing
+     binary files correctly.
+
+12.5 Problems with the $Log$ keyword.
+=====================================
+
+The '$Log: cvs.txt,v $
+The 'Revision 1.1  2015/12/28 15:57:44  ineiev
+The 'Add cvs manual RT #1073518.
+The '' keyword is somewhat controversial.  As long as you are
+working on your development system the information is easily accessible
+even if you do not use the '$Log$' keyword--just do a 'cvs log'.  Once
+you export the file the history information might be useless anyhow.
+
+   A more serious concern is that CVS is not good at handling '$Log$'
+entries when a branch is merged onto the main trunk.  Conflicts often
+result from the merging operation.
+
+   People also tend to "fix" the log entries in the file (correcting
+spelling mistakes and maybe even factual errors).  If that is done the
+information from 'cvs log' will not be consistent with the information
+inside the file.  This may or may not be a problem in real life.
+
+   It has been suggested that the '$Log$' keyword should be inserted
+_last_ in the file, and not in the files header, if it is to be used at
+all.  That way the long list of change messages will not interfere with
+everyday source file browsing.
+
+13 Tracking third-party sources
+*******************************
+
+If you modify a program to better fit your site, you probably want to
+include your modifications when the next release of the program arrives.
+CVS can help you with this task.
+
+   In the terminology used in CVS, the supplier of the program is called
+a "vendor".  The unmodified distribution from the vendor is checked in
+on its own branch, the "vendor branch".  CVS reserves branch 1.1.1 for
+this use.
+
+   When you modify the source and commit it, your revision will end up
+on the main trunk.  When a new release is made by the vendor, you commit
+it on the vendor branch and copy the modifications onto the main trunk.
+
+   Use the 'import' command to create and update the vendor branch.
+When you import a new file, the vendor branch is made the 'head'
+revision, so anyone that checks out a copy of the file gets that
+revision.  When a local modification is committed it is placed on the
+main trunk, and made the 'head' revision.
+
+13.1 Importing for the first time
+=================================
+
+Use the 'import' command to check in the sources for the first time.
+When you use the 'import' command to track third-party sources, the
+"vendor tag" and "release tags" are useful.  The "vendor tag" is a
+symbolic name for the branch (which is always 1.1.1, unless you use the
+'-b BRANCH' flag--see *note Multiple vendor branches::.).  The "release
+tags" are symbolic names for a particular release, such as 'FSF_0_04'.
+
+   Note that 'import' does _not_ change the directory in which you
+invoke it.  In particular, it does not set up that directory as a CVS
+working directory; if you want to work with the sources import them
+first and then check them out into a different directory (*note Getting
+the source::).
+
+   Suppose you have the sources to a program called 'wdiff' in a
+directory 'wdiff-0.04', and are going to make private modifications that
+you want to be able to use even when new releases are made in the
+future.  You start by importing the source to your repository:
+
+     $ cd wdiff-0.04
+     $ cvs import -m "Import of FSF v. 0.04" fsf/wdiff FSF_DIST WDIFF_0_04
+
+   The vendor tag is named 'FSF_DIST' in the above example, and the only
+release tag assigned is 'WDIFF_0_04'.
+
+13.2 Updating with the import command
+=====================================
+
+When a new release of the source arrives, you import it into the
+repository with the same 'import' command that you used to set up the
+repository in the first place.  The only difference is that you specify
+a different release tag this time:
+
+     $ tar xfz wdiff-0.05.tar.gz
+     $ cd wdiff-0.05
+     $ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
+
+   *WARNING: If you use a release tag that already exists in one of the
+repository archives, files removed by an import may not be detected.*
+
+   For files that have not been modified locally, the newly created
+revision becomes the head revision.  If you have made local changes,
+'import' will warn you that you must merge the changes into the main
+trunk, and tell you to use 'checkout -j' to do so:
+
+     $ cvs checkout -jFSF_DIST:yesterday -jFSF_DIST wdiff
+
+The above command will check out the latest revision of 'wdiff', merging
+the changes made on the vendor branch 'FSF_DIST' since yesterday into
+the working copy.  If any conflicts arise during the merge they should
+be resolved in the normal way (*note Conflicts example::).  Then, the
+modified files may be committed.
+
+   However, it is much better to use the two release tags rather than
+using a date on the branch as suggested above:
+
+     $ cvs checkout -jWDIFF_0_04 -jWDIFF_0_05 wdiff
+
+The reason this is better is that using a date, as suggested above,
+assumes that you do not import more than one release of a product per
+day.  More importantly, using the release tags allows CVS to detect
+files that were removed between the two vendor releases and mark them
+for removal.  Since 'import' has no way to detect removed files, you
+should do a merge like this even if 'import' doesn't tell you to.
+
+13.3 Reverting to the latest vendor release
+===========================================
+
+You can also revert local changes completely and return to the latest
+vendor release by changing the 'head' revision back to the vendor branch
+on all files.  For example, if you have a checked-out copy of the
+sources in '~/work.d/wdiff', and you want to revert to the vendor's
+version for all the files in that directory, you would type:
+
+     $ cd ~/work.d/wdiff
+     $ cvs admin -bFSF_DIST .
+
+You must specify the '-bFSF_DIST' without any space after the '-b'.
+*Note admin options::.
+
+13.4 How to handle binary files with cvs import
+===============================================
+
+Use the '-k' wrapper option to tell import which files are binary.
+*Note Wrappers::.
+
+13.5 How to handle keyword substitution with cvs import
+=======================================================
+
+The sources which you are importing may contain keywords (*note Keyword
+substitution::).  For example, the vendor may use CVS or some other
+system which uses similar keyword expansion syntax.  If you just import
+the files in the default fashion, then the keyword expansions supplied
+by the vendor will be replaced by keyword expansions supplied by your
+own copy of CVS.  It may be more convenient to maintain the expansions
+supplied by the vendor, so that this information can supply information
+about the sources that you imported from the vendor.
+
+   To maintain the keyword expansions supplied by the vendor, supply the
+'-ko' option to 'cvs import' the first time you import the file.  This
+will turn off keyword expansion for that file entirely, so if you want
+to be more selective you'll have to think about what you want and use
+the '-k' option to 'cvs update' or 'cvs admin' as appropriate.
+
+13.6 Multiple vendor branches
+=============================
+
+All the examples so far assume that there is only one vendor from which
+you are getting sources.  In some situations you might get sources from
+a variety of places.  For example, suppose that you are dealing with a
+project where many different people and teams are modifying the
+software.  There are a variety of ways to handle this, but in some cases
+you have a bunch of source trees lying around and what you want to do
+more than anything else is just to all put them in CVS so that you at
+least have them in one place.
+
+   For handling situations in which there may be more than one vendor,
+you may specify the '-b' option to 'cvs import'.  It takes as an
+argument the vendor branch to import to.  The default is '-b 1.1.1'.
+
+   For example, suppose that there are two teams, the red team and the
+blue team, that are sending you sources.  You want to import the red
+team's efforts to branch 1.1.1 and use the vendor tag RED. You want to
+import the blue team's efforts to branch 1.1.3 and use the vendor tag
+BLUE. So the commands you might use are:
+
+     $ cvs import dir RED RED_1-0
+     $ cvs import -b 1.1.3 dir BLUE BLUE_1-5
+
+   Note that if your vendor tag does not match your '-b' option, CVS
+will not detect this case!  For example,
+
+     $ cvs import -b 1.1.3 dir RED RED_1-0
+
+Be careful; this kind of mismatch is sure to sow confusion or worse.  I
+can't think of a useful purpose for the ability to specify a mismatch
+here, but if you discover such a use, don't.  CVS is likely to make this
+an error in some future release.
+
+14 How your build system interacts with CVS
+*******************************************
+
+As mentioned in the introduction, CVS does not contain software for
+building your software from source code.  This section describes how
+various aspects of your build system might interact with CVS.
+
+   One common question, especially from people who are accustomed to
+RCS, is how to make their build get an up to date copy of the sources.
+The answer to this with CVS is two-fold.  First of all, since CVS itself
+can recurse through directories, there is no need to modify your
+'Makefile' (or whatever configuration file your build tool uses) to make
+sure each file is up to date.  Instead, just use two commands, first
+'cvs -q update' and then 'make' or whatever the command is to invoke
+your build tool.  Secondly, you do not necessarily _want_ to get a copy
+of a change someone else made until you have finished your own work.
+One suggested approach is to first update your sources, then implement,
+build and test the change you were thinking of, and then commit your
+sources (updating first if necessary).  By periodically (in between
+changes, using the approach just described) updating your entire tree,
+you ensure that your sources are sufficiently up to date.
+
+   One common need is to record which versions of which source files
+went into a particular build.  This kind of functionality is sometimes
+called "bill of materials" or something similar.  The best way to do
+this with CVS is to use the 'tag' command to record which versions went
+into a given build (*note Tags::).
+
+   Using CVS in the most straightforward manner possible, each developer
+will have a copy of the entire source tree which is used in a particular
+build.  If the source tree is small, or if developers are geographically
+dispersed, this is the preferred solution.  In fact one approach for
+larger projects is to break a project down into smaller
+separately-compiled subsystems, and arrange a way of releasing them
+internally so that each developer need check out only those subsystems
+which they are actively working on.
+
+   Another approach is to set up a structure which allows developers to
+have their own copies of some files, and for other files to access
+source files from a central location.  Many people have come up with
+some such a system using features such as the symbolic link feature
+found in many operating systems, or the 'VPATH' feature found in many
+versions of 'make'.  One build tool which is designed to help with this
+kind of thing is Odin (see
+'ftp://ftp.cs.colorado.edu/pub/distribs/odin').
+
+15 Special Files
+****************
+
+In normal circumstances, CVS works only with regular files.  Every file
+in a project is assumed to be persistent; it must be possible to open,
+read and close them; and so on.  CVS also ignores file permissions and
+ownerships, leaving such issues to be resolved by the developer at
+installation time.  In other words, it is not possible to "check in" a
+device into a repository; if the device file cannot be opened, CVS will
+refuse to handle it.  Files also lose their ownerships and permissions
+during repository transactions.
+
+Appendix A Guide to CVS commands
+********************************
+
+This appendix describes the overall structure of CVS commands, and
+describes some commands in detail (others are described elsewhere; for a
+quick reference to CVS commands, *note Invoking CVS::).
+
+A.1 Overall structure of CVS commands
+=====================================
+
+The overall format of all CVS commands is:
+
+     cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ]
+
+'cvs'
+     The name of the CVS program.
+
+'cvs_options'
+     Some options that affect all sub-commands of CVS.  These are
+     described below.
+
+'cvs_command'
+     One of several different sub-commands.  Some of the commands have
+     aliases that can be used instead; those aliases are noted in the
+     reference manual for that command.  There are only two situations
+     where you may omit 'cvs_command': 'cvs -H' elicits a list of
+     available commands, and 'cvs -v' displays version information on
+     CVS itself.
+
+'command_options'
+     Options that are specific for the command.
+
+'command_args'
+     Arguments to the commands.
+
+   There is unfortunately some confusion between 'cvs_options' and
+'command_options'.  When given as a 'cvs_option', some options only
+affect some of the commands.  When given as a 'command_option' it may
+have a different meaning, and be accepted by more commands.  In other
+words, do not take the above categorization too seriously.  Look at the
+documentation instead.
+
+A.2 CVS's exit status
+=====================
+
+CVS can indicate to the calling environment whether it succeeded or
+failed by setting its "exit status".  The exact way of testing the exit
+status will vary from one operating system to another.  For example in a
+unix shell script the '$?' variable will be 0 if the last command
+returned a successful exit status, or greater than 0 if the exit status
+indicated failure.
+
+   If CVS is successful, it returns a successful status; if there is an
+error, it prints an error message and returns a failure status.  The one
+exception to this is the 'cvs diff' command.  It will return a
+successful status if it found no differences, or a failure status if
+there were differences or if there was an error.  Because this behavior
+provides no good way to detect errors, in the future it is possible that
+'cvs diff' will be changed to behave like the other CVS commands.
+
+A.3 Default options and the ~/.cvsrc file
+=========================================
+
+There are some 'command_options' that are used so often that you might
+have set up an alias or some other means to make sure you always specify
+that option.  One example (the one that drove the implementation of the
+'.cvsrc' support, actually) is that many people find the default output
+of the 'diff' command to be very hard to read, and that either context
+diffs or unidiffs are much easier to understand.
+
+   The '~/.cvsrc' file is a way that you can add default options to
+'cvs_commands' within cvs, instead of relying on aliases or other shell
+scripts.
+
+   The format of the '~/.cvsrc' file is simple.  The file is searched
+for a line that begins with the same name as the 'cvs_command' being
+executed.  If a match is found, then the remainder of the line is split
+up (at whitespace characters) into separate options and added to the
+command arguments _before_ any options from the command line.
+
+   If a command has two names (e.g., 'checkout' and 'co'), the official
+name, not necessarily the one used on the command line, will be used to
+match against the file.  So if this is the contents of the user's
+'~/.cvsrc' file:
+
+     log -N
+     diff -uN
+     rdiff -u
+     update -Pd
+     checkout -P
+     release -d
+
+the command 'cvs checkout foo' would have the '-P' option added to the
+arguments, as well as 'cvs co foo'.
+
+   With the example file above, the output from 'cvs diff foobar' will
+be in unidiff format.  'cvs diff -c foobar' will provide context diffs,
+as usual.  Getting "old" format diffs would be slightly more
+complicated, because 'diff' doesn't have an option to specify use of the
+"old" format, so you would need 'cvs -f diff foobar'.
+
+   In place of the command name you can use 'cvs' to specify global
+options (*note Global options::).  For example the following line in
+'.cvsrc'
+
+     cvs -z6
+
+causes CVS to use compression level 6.
+
+A.4 Global options
+==================
+
+The available 'cvs_options' (that are given to the left of
+'cvs_command') are:
+
+'--allow-root=ROOTDIR'
+     Specify legal CVSROOT directory.  See *note Password authentication
+     server::.
+
+'-a'
+     Authenticate all communication between the client and the server.
+     Only has an effect on the CVS client.  As of this writing, this is
+     only implemented when using a GSSAPI connection (*note GSSAPI
+     authenticated::).  Authentication prevents certain sorts of attacks
+     involving hijacking the active TCP connection.  Enabling
+     authentication does not enable encryption.
+
+'-b BINDIR'
+     In CVS 1.9.18 and older, this specified that RCS programs are in
+     the BINDIR directory.  Current versions of CVS do not run RCS
+     programs; for compatibility this option is accepted, but it does
+     nothing.
+
+'-T TEMPDIR'
+     Use TEMPDIR as the directory where temporary files are located.
+     Overrides the setting of the '$TMPDIR' environment variable and any
+     precompiled directory.  This parameter should be specified as an
+     absolute pathname.  (When running client/server, '-T' affects only
+     the local process; specifying '-T' for the client has no effect on
+     the server and vice versa.)
+
+'-d CVS_ROOT_DIRECTORY'
+     Use CVS_ROOT_DIRECTORY as the root directory pathname of the
+     repository.  Overrides the setting of the '$CVSROOT' environment
+     variable.  See *note Repository::.
+
+'-e EDITOR'
+     Use EDITOR to enter revision log information.  Overrides the
+     setting of the '$CVSEDITOR' and '$EDITOR' environment variables.
+     For more information, see *note Committing your changes::.
+
+'-f'
+     Do not read the '~/.cvsrc' file.  This option is most often used
+     because of the non-orthogonality of the CVS option set.  For
+     example, the 'cvs log' option '-N' (turn off display of tag names)
+     does not have a corresponding option to turn the display on.  So if
+     you have '-N' in the '~/.cvsrc' entry for 'log', you may need to
+     use '-f' to show the tag names.
+
+'-H'
+'--help'
+     Display usage information about the specified 'cvs_command' (but do
+     not actually execute the command).  If you don't specify a command
+     name, 'cvs -H' displays overall help for CVS, including a list of
+     other help options.
+
+'-n'
+     Do not change any files.  Attempt to execute the 'cvs_command', but
+     only to issue reports; do not remove, update, or merge any existing
+     files, or create any new files.
+
+     Note that CVS will not necessarily produce exactly the same output
+     as without '-n'.  In some cases the output will be the same, but in
+     other cases CVS will skip some of the processing that would have
+     been required to produce the exact same output.
+
+'-Q'
+     Cause the command to be really quiet; the command will only
+     generate output for serious problems.
+
+'-q'
+     Cause the command to be somewhat quiet; informational messages,
+     such as reports of recursion through subdirectories, are
+     suppressed.
+
+'-r'
+     Make new working files read-only.  Same effect as if the '$CVSREAD'
+     environment variable is set (*note Environment variables::).  The
+     default is to make working files writable, unless watches are on
+     (*note Watches::).
+
+'-s VARIABLE=VALUE'
+     Set a user variable (*note Variables::).
+
+'-t'
+     Trace program execution; display messages showing the steps of CVS
+     activity.  Particularly useful with '-n' to explore the potential
+     impact of an unfamiliar command.
+
+'-v'
+'--version'
+     Display version and copyright information for CVS.
+
+'-w'
+     Make new working files read-write.  Overrides the setting of the
+     '$CVSREAD' environment variable.  Files are created read-write by
+     default, unless '$CVSREAD' is set or '-r' is given.
+
+'-x'
+     Encrypt all communication between the client and the server.  Only
+     has an effect on the CVS client.  As of this writing, this is only
+     implemented when using a GSSAPI connection (*note GSSAPI
+     authenticated::) or a Kerberos connection (*note Kerberos
+     authenticated::).  Enabling encryption implies that message traffic
+     is also authenticated.  Encryption support is not available by
+     default; it must be enabled using a special configure option,
+     '--enable-encryption', when you build CVS.
+
+'-z GZIP-LEVEL'
+     Set the compression level.  Valid levels are 1 (high speed, low
+     compression) to 9 (low speed, high compression), or 0 to disable
+     compression (the default).  Only has an effect on the CVS client.
+
+A.5 Common command options
+==========================
+
+This section describes the 'command_options' that are available across
+several CVS commands.  These options are always given to the right of
+'cvs_command'.  Not all commands support all of these options; each
+option is only supported for commands where it makes sense.  However,
+when a command has one of these options you can almost always count on
+the same behavior of the option as in other commands.  (Other command
+options, which are listed with the individual commands, may have
+different behavior from one CVS command to the other).
+
+   *The 'history' command is an exception; it supports many options that
+conflict even with these standard options.*
+
+'-D DATE_SPEC'
+     Use the most recent revision no later than DATE_SPEC.  DATE_SPEC is
+     a single argument, a date description specifying a date in the
+     past.
+
+     The specification is "sticky" when you use it to make a private
+     copy of a source file; that is, when you get a working file using
+     '-D', CVS records the date you specified, so that further updates
+     in the same directory will use the same date (for more information
+     on sticky tags/dates, *note Sticky tags::).
+
+     '-D' is available with the 'annotate', 'checkout', 'diff',
+     'export', 'history', 'rdiff', 'rtag', and 'update' commands.  (The
+     'history' command uses this option in a slightly different way;
+     *note history options::).
+
+     A wide variety of date formats are supported by CVS.  The most
+     standard ones are ISO8601 (from the International Standards
+     Organization) and the Internet e-mail standard (specified in RFC822
+     as amended by RFC1123).
+
+     ISO8601 dates have many variants but a few examples are:
+
+          1972-09-24
+          1972-09-24 20:05
+
+     There are a lot more ISO8601 date formats, and CVS accepts many of
+     them, but you probably don't want to hear the _whole_ long story
+     :-).
+
+     In addition to the dates allowed in Internet e-mail itself, CVS
+     also allows some of the fields to be omitted.  For example:
+
+          24 Sep 1972 20:05
+          24 Sep
+
+     The date is interpreted as being in the local timezone, unless a
+     specific timezone is specified.
+
+     These two date formats are preferred.  However, CVS currently
+     accepts a wide variety of other date formats.  They are
+     intentionally not documented here in any detail, and future
+     versions of CVS might not accept all of them.
+
+     One such format is 'MONTH/DAY/YEAR'.  This may confuse people who
+     are accustomed to having the month and day in the other order;
+     '1/4/96' is January 4, not April 1.
+
+     Remember to quote the argument to the '-D' flag so that your shell
+     doesn't interpret spaces as argument separators.  A command using
+     the '-D' flag can look like this:
+
+          $ cvs diff -D "1 hour ago" cvs.texinfo
+
+'-f'
+     When you specify a particular date or tag to CVS commands, they
+     normally ignore files that do not contain the tag (or did not exist
+     prior to the date) that you specified.  Use the '-f' option if you
+     want files retrieved even when there is no match for the tag or
+     date.  (The most recent revision of the file will be used).
+
+     Note that even with '-f', a tag that you specify must exist (that
+     is, in some file, not necessary in every file).  This is so that
+     CVS will continue to give an error if you mistype a tag name.
+
+     '-f' is available with these commands: 'annotate', 'checkout',
+     'export', 'rdiff', 'rtag', and 'update'.
+
+     *WARNING: The 'commit' and 'remove' commands also have a '-f'
+     option, but it has a different behavior for those commands.  See
+     *note commit options::, and *note Removing files::.*
+
+'-k KFLAG'
+     Alter the default processing of keywords.  See *note Keyword
+     substitution::, for the meaning of KFLAG.  Your KFLAG specification
+     is "sticky" when you use it to create a private copy of a source
+     file; that is, when you use this option with the 'checkout' or
+     'update' commands, CVS associates your selected KFLAG with the
+     file, and continues to use it with future update commands on the
+     same file until you specify otherwise.
+
+     The '-k' option is available with the 'add', 'checkout', 'diff',
+     'rdiff', 'import' and 'update' commands.
+
+'-l'
+     Local; run only in current working directory, rather than recursing
+     through subdirectories.
+
+     Available with the following commands: 'annotate', 'checkout',
+     'commit', 'diff', 'edit', 'editors', 'export', 'log', 'rdiff',
+     'remove', 'rtag', 'status', 'tag', 'unedit', 'update', 'watch', and
+     'watchers'.
+
+'-m MESSAGE'
+     Use MESSAGE as log information, instead of invoking an editor.
+
+     Available with the following commands: 'add', 'commit' and
+     'import'.
+
+'-n'
+     Do not run any tag program.  (A program can be specified to run in
+     the modules database (*note modules::); this option bypasses it).
+
+     *This is not the same as the 'cvs -n' program option, which you can
+     specify to the left of a cvs command!*
+
+     Available with the 'checkout', 'export', and 'rtag' commands.
+
+'-P'
+     Prune empty directories.  See *note Removing directories::.
+
+'-p'
+     Pipe the files retrieved from the repository to standard output,
+     rather than writing them in the current directory.  Available with
+     the 'checkout' and 'update' commands.
+
+'-R'
+     Process directories recursively.  This is on by default.
+
+     Available with the following commands: 'annotate', 'checkout',
+     'commit', 'diff', 'edit', 'editors', 'export', 'rdiff', 'remove',
+     'rtag', 'status', 'tag', 'unedit', 'update', 'watch', and
+     'watchers'.
+
+'-r TAG'
+     Use the revision specified by the TAG argument instead of the
+     default "head" revision.  As well as arbitrary tags defined with
+     the 'tag' or 'rtag' command, two special tags are always available:
+     'HEAD' refers to the most recent version available in the
+     repository, and 'BASE' refers to the revision you last checked out
+     into the current working directory.
+
+     The tag specification is sticky when you use this with 'checkout'
+     or 'update' to make your own copy of a file: CVS remembers the tag
+     and continues to use it on future update commands, until you
+     specify otherwise (for more information on sticky tags/dates, *note
+     Sticky tags::).
+
+     The tag can be either a symbolic or numeric tag, as described in
+     *note Tags::, or the name of a branch, as described in *note
+     Branching and merging::.  When a command expects a specific
+     revision, the name of a branch is interpreted as the most recent
+     revision on that branch.
+
+     Specifying the '-q' global option along with the '-r' command
+     option is often useful, to suppress the warning messages when the
+     RCS file does not contain the specified tag.
+
+     *This is not the same as the overall 'cvs -r' option, which you can
+     specify to the left of a CVS command!*
+
+     '-r' is available with the 'annotate', 'checkout', 'commit',
+     'diff', 'history', 'export', 'rdiff', 'rtag', and 'update'
+     commands.
+
+'-W'
+     Specify file names that should be filtered.  You can use this
+     option repeatedly.  The spec can be a file name pattern of the same
+     type that you can specify in the '.cvswrappers' file.  Available
+     with the following commands: 'import', and 'update'.
+
+A.6 add--Add files and directories to the repository
+====================================================
+
+   * Synopsis: add [-k rcs-kflag] [-m message] files...
+   * Requires: repository, working directory.
+   * Changes: repository, working directory.
+
+   The 'add' command is used to present new files and directories for
+addition into the CVS repository.  When 'add' is used on a directory, a
+new directory is created in the repository immediately.  When used on a
+file, only the working directory is updated.  Changes to the repository
+are not made until the 'commit' command is used on the newly added file.
+
+   The 'add' command also resurrects files that have been previously
+removed.  This can be done before or after the 'commit' command is used
+to finalize the removal of files.  Resurrected files are restored into
+the working directory at the time the 'add' command is executed.
+
+A.6.1 add options
+-----------------
+
+These standard options are supported by 'add' (*note Common options::,
+for a complete description of them):
+
+'-k KFLAG'
+     Process keywords according to KFLAG.  See *note Keyword
+     substitution::.  This option is sticky; future updates of this file
+     in this working directory will use the same KFLAG.  The 'status'
+     command can be viewed to see the sticky options.  For more
+     information on the 'status' command, *Note Invoking CVS::.
+
+'-m MESSAGE'
+     Use MESSAGE as the log message, instead of invoking an editor.
+
+A.6.2 add examples
+------------------
+
+A.6.2.1 Adding a directory
+..........................
+
+     $ mkdir doc
+     $ cvs add doc
+     Directory /path/to/repository/doc added to the repository
+
+A.6.2.2 Adding a file
+.....................
+
+
+     $ >TODO
+     $ cvs add TODO
+     cvs add: scheduling file `TODO' for addition
+     cvs add: use 'cvs commit' to add this file permanently
+
+A.6.2.3 Undoing a 'remove' command
+..................................
+
+     $ rm -f makefile
+     $ cvs remove makefile
+     cvs remove: scheduling `makefile' for removal
+     cvs remove: use 'cvs commit' to remove this file permanently
+     $ cvs add makefile
+     U makefile
+     cvs add: makefile, version 1.2, resurrected
+
+A.7 admin--Administration
+=========================
+
+   * Requires: repository, working directory.
+   * Changes: repository.
+   * Synonym: rcs
+
+   This is the CVS interface to assorted administrative facilities.
+Some of them have questionable usefulness for CVS but exist for
+historical purposes.  Some of the questionable options are likely to
+disappear in the future.  This command _does_ work recursively, so
+extreme care should be used.
+
+   On unix, if there is a group named 'cvsadmin', only members of that
+group can run 'cvs admin' (except for the 'cvs admin -k' command, which
+can be run by anybody).  This group should exist on the server, or any
+system running the non-client/server CVS.  To disallow 'cvs admin' for
+all users, create a group with no users in it.  On NT, the 'cvsadmin'
+feature does not exist and all users can run 'cvs admin'.
+
+A.7.1 admin options
+-------------------
+
+Some of these options have questionable usefulness for CVS but exist for
+historical purposes.  Some even make it impossible to use CVS until you
+undo the effect!
+
+'-AOLDFILE'
+     Might not work together with CVS.  Append the access list of
+     OLDFILE to the access list of the RCS file.
+
+'-aLOGINS'
+     Might not work together with CVS.  Append the login names appearing
+     in the comma-separated list LOGINS to the access list of the RCS
+     file.
+
+'-b[REV]'
+     Set the default branch to REV.  In CVS, you normally do not
+     manipulate default branches; sticky tags (*note Sticky tags::) are
+     a better way to decide which branch you want to work on.  There is
+     one reason to run 'cvs admin -b': to revert to the vendor's version
+     when using vendor branches (*note Reverting local changes::).
+     There can be no space between '-b' and its argument.
+
+'-cSTRING'
+     Sets the comment leader to STRING.  The comment leader is not used
+     by current versions of CVS or RCS 5.7.  Therefore, you can almost
+     surely not worry about it.  See *note Keyword substitution::.
+
+'-e[LOGINS]'
+     Might not work together with CVS.  Erase the login names appearing
+     in the comma-separated list LOGINS from the access list of the RCS
+     file.  If LOGINS is omitted, erase the entire access list.  There
+     can be no space between '-e' and its argument.
+
+'-I'
+     Run interactively, even if the standard input is not a terminal.
+     This option does not work with the client/server CVS and is likely
+     to disappear in a future release of CVS.
+
+'-i'
+     Useless with CVS.  This creates and initializes a new RCS file,
+     without depositing a revision.  With CVS, add files with the 'cvs
+     add' command (*note Adding files::).
+
+'-kSUBST'
+     Set the default keyword substitution to SUBST.  See *note Keyword
+     substitution::.  Giving an explicit '-k' option to 'cvs update',
+     'cvs export', or 'cvs checkout' overrides this default.
+
+'-l[REV]'
+     Lock the revision with number REV.  If a branch is given, lock the
+     latest revision on that branch.  If REV is omitted, lock the latest
+     revision on the default branch.  There can be no space between '-l'
+     and its argument.
+
+     This can be used in conjunction with the 'rcslock.pl' script in the
+     'contrib' directory of the CVS source distribution to provide
+     reserved checkouts (where only one user can be editing a given file
+     at a time).  See the comments in that file for details (and see the
+     'README' file in that directory for disclaimers about the
+     unsupported nature of contrib).  According to comments in that
+     file, locking must set to strict (which is the default).
+
+'-L'
+     Set locking to strict.  Strict locking means that the owner of an
+     RCS file is not exempt from locking for checkin.  For use with CVS,
+     strict locking must be set; see the discussion under the '-l'
+     option above.
+
+'-mREV:MSG'
+     Replace the log message of revision REV with MSG.
+
+'-NNAME[:[REV]]'
+     Act like '-n', except override any previous assignment of NAME.
+     For use with magic branches, see *note Magic branch numbers::.
+
+'-nNAME[:[REV]]'
+     Associate the symbolic name NAME with the branch or revision REV.
+     It is normally better to use 'cvs tag' or 'cvs rtag' instead.
+     Delete the symbolic name if both ':' and REV are omitted;
+     otherwise, print an error message if NAME is already associated
+     with another number.  If REV is symbolic, it is expanded before
+     association.  A REV consisting of a branch number followed by a '.'
+     stands for the current latest revision in the branch.  A ':' with
+     an empty REV stands for the current latest revision on the default
+     branch, normally the trunk.  For example, 'cvs admin -nNAME:'
+     associates NAME with the current latest revision of all the RCS
+     files; this contrasts with 'cvs admin -nNAME:$' which associates
+     NAME with the revision numbers extracted from keyword strings in
+     the corresponding working files.
+
+'-oRANGE'
+     Deletes ("outdates") the revisions given by RANGE.
+
+     Note that this command can be quite dangerous unless you know
+     _exactly_ what you are doing (for example see the warnings below
+     about how the REV1:REV2 syntax is confusing).
+
+     If you are short on disc this option might help you.  But think
+     twice before using it--there is no way short of restoring the
+     latest backup to undo this command!  If you delete different
+     revisions than you planned, either due to carelessness or (heaven
+     forbid) a CVS bug, there is no opportunity to correct the error
+     before the revisions are deleted.  It probably would be a good idea
+     to experiment on a copy of the repository first.
+
+     Specify RANGE in one of the following ways:
+
+     'REV1::REV2'
+          Collapse all revisions between rev1 and rev2, so that CVS only
+          stores the differences associated with going from rev1 to
+          rev2, not intermediate steps.  For example, after '-o
+          1.3::1.5' one can retrieve revision 1.3, revision 1.5, or the
+          differences to get from 1.3 to 1.5, but not the revision 1.4,
+          or the differences between 1.3 and 1.4.  Other examples: '-o
+          1.3::1.4' and '-o 1.3::1.3' have no effect, because there are
+          no intermediate revisions to remove.
+
+     '::REV'
+          Collapse revisions between the beginning of the branch
+          containing REV and REV itself.  The branchpoint and REV are
+          left intact.  For example, '-o ::1.3.2.6' deletes revision
+          1.3.2.1, revision 1.3.2.5, and everything in between, but
+          leaves 1.3 and 1.3.2.6 intact.
+
+     'REV::'
+          Collapse revisions between REV and the end of the branch
+          containing REV.  Revision REV is left intact but the head
+          revision is deleted.
+
+     'REV'
+          Delete the revision REV.  For example, '-o 1.3' is equivalent
+          to '-o 1.2::1.4'.
+
+     'REV1:REV2'
+          Delete the revisions from REV1 to REV2, inclusive, on the same
+          branch.  One will not be able to retrieve REV1 or REV2 or any
+          of the revisions in between.  For example, the command 'cvs
+          admin -oR_1_01:R_1_02 .' is rarely useful.  It means to delete
+          revisions up to, and including, the tag R_1_02.  But beware!
+          If there are files that have not changed between R_1_02 and
+          R_1_03 the file will have _the same_ numerical revision number
+          assigned to the tags R_1_02 and R_1_03.  So not only will it
+          be impossible to retrieve R_1_02; R_1_03 will also have to be
+          restored from the tapes!  In most cases you want to specify
+          REV1::REV2 instead.
+
+     ':REV'
+          Delete revisions from the beginning of the branch containing
+          REV up to and including REV.
+
+     'REV:'
+          Delete revisions from revision REV, including REV itself, to
+          the end of the branch containing REV.
+
+     None of the revisions to be deleted may have branches or locks.
+
+     If any of the revisions to be deleted have symbolic names, and one
+     specifies one of the '::' syntaxes, then CVS will give an error and
+     not delete any revisions.  If you really want to delete both the
+     symbolic names and the revisions, first delete the symbolic names
+     with 'cvs tag -d', then run 'cvs admin -o'.  If one specifies the
+     non-'::' syntaxes, then CVS will delete the revisions but leave the
+     symbolic names pointing to nonexistent revisions.  This behavior is
+     preserved for compatibility with previous versions of CVS, but
+     because it isn't very useful, in the future it may change to be
+     like the '::' case.
+
+     Due to the way CVS handles branches REV cannot be specified
+     symbolically if it is a branch.  See *note Magic branch numbers::
+     for an explanation.
+
+     Make sure that no-one has checked out a copy of the revision you
+     outdate.  Strange things will happen if he starts to edit it and
+     tries to check it back in.  For this reason, this option is not a
+     good way to take back a bogus commit; commit a new revision undoing
+     the bogus change instead (*note Merging two revisions::).
+
+'-q'
+     Run quietly; do not print diagnostics.
+
+'-sSTATE[:REV]'
+     Useful with CVS.  Set the state attribute of the revision REV to
+     STATE.  If REV is a branch number, assume the latest revision on
+     that branch.  If REV is omitted, assume the latest revision on the
+     default branch.  Any identifier is acceptable for STATE.  A useful
+     set of states is 'Exp' (for experimental), 'Stab' (for stable), and
+     'Rel' (for released).  By default, the state of a new revision is
+     set to 'Exp' when it is created.  The state is visible in the
+     output from CVS LOG (*note log::), and in the '$Log$' and '$State: Exp $'
+     keywords (*note Keyword substitution::).  Note that CVS uses the
+     'dead' state for its own purposes (*note Attic::); to take a file
+     to or from the 'dead' state use commands like 'cvs remove' and 'cvs
+     add' (*note Adding and removing::), not 'cvs admin -s'.
+
+'-t[FILE]'
+     Useful with CVS.  Write descriptive text from the contents of the
+     named FILE into the RCS file, deleting the existing text.  The FILE
+     pathname may not begin with '-'.  The descriptive text can be seen
+     in the output from 'cvs log' (*note log::).  There can be no space
+     between '-t' and its argument.
+
+     If FILE is omitted, obtain the text from standard input, terminated
+     by end-of-file or by a line containing '.' by itself.  Prompt for
+     the text if interaction is possible; see '-I'.
+
+'-t-STRING'
+     Similar to '-tFILE'.  Write descriptive text from the STRING into
+     the RCS file, deleting the existing text.  There can be no space
+     between '-t' and its argument.
+
+'-U'
+     Set locking to non-strict.  Non-strict locking means that the owner
+     of a file need not lock a revision for checkin.  For use with CVS,
+     strict locking must be set; see the discussion under the '-l'
+     option above.
+
+'-u[REV]'
+     See the option '-l' above, for a discussion of using this option
+     with CVS.  Unlock the revision with number REV.  If a branch is
+     given, unlock the latest revision on that branch.  If REV is
+     omitted, remove the latest lock held by the caller.  Normally, only
+     the locker of a revision may unlock it; somebody else unlocking a
+     revision breaks the lock.  This causes the original locker to be
+     sent a 'commit' notification (*note Getting Notified::).  There can
+     be no space between '-u' and its argument.
+
+'-VN'
+     In previous versions of CVS, this option meant to write an RCS file
+     which would be acceptable to RCS version N, but it is now obsolete
+     and specifying it will produce an error.
+
+'-xSUFFIXES'
+     In previous versions of CVS, this was documented as a way of
+     specifying the names of the RCS files.  However, CVS has always
+     required that the RCS files used by CVS end in ',v', so this option
+     has never done anything useful.
+
+A.8 annotate--What revision modified each line of a file?
+=========================================================
+
+   * Synopsis: annotate [options] files...
+   * Requires: repository.
+   * Synonym: blame
+   * Changes: nothing.
+
+   For each file in FILES, print the head revision of the trunk,
+together with information on the last modification for each line.
+
+A.8.1 annotate options
+----------------------
+
+These standard options are supported by 'annotate' (*note Common
+options:: for a complete description of them):
+
+'-l'
+     Local directory only, no recursion.
+
+'-R'
+     Process directories recursively.
+
+'-f'
+     Use head revision if tag/date not found.
+
+'-F'
+     Annotate binary files.
+
+'-r REVISION'
+     Annotate file as of specified revision/tag.
+
+'-D DATE'
+     Annotate file as of specified date.
+
+A.8.2 annotate example
+----------------------
+
+For example:
+
+     $ cvs annotate ssfile
+     Annotations for ssfile
+     ***************
+     1.1          (mary     27-Mar-96): ssfile line 1
+     1.2          (joe      28-Mar-96): ssfile line 2
+
+   The file 'ssfile' currently contains two lines.  The 'ssfile line 1'
+line was checked in by 'mary' on March 27.  Then, on March 28, 'joe'
+added a line 'ssfile line 2', without modifying the 'ssfile line 1'
+line.  This report doesn't tell you anything about lines which have been
+deleted or replaced; you need to use 'cvs diff' for that (*note diff::).
+
+   The options to 'cvs annotate' are listed in *note Invoking CVS::, and
+can be used to select the files and revisions to annotate.  The options
+are described in more detail there and in *note Common options::.
+
+A.9 checkout--Check out sources for editing
+===========================================
+
+   * Synopsis: checkout [options] modules...
+   * Requires: repository.
+   * Changes: working directory.
+   * Synonyms: co, get
+
+   Create or update a working directory containing copies of the source
+files specified by MODULES.  You must execute 'checkout' before using
+most of the other CVS commands, since most of them operate on your
+working directory.
+
+   The MODULES are either symbolic names for some collection of source
+directories and files, or paths to directories or files in the
+repository.  The symbolic names are defined in the 'modules' file.  See
+*note modules::.
+
+   Depending on the modules you specify, 'checkout' may recursively
+create directories and populate them with the appropriate source files.
+You can then edit these source files at any time (regardless of whether
+other software developers are editing their own copies of the sources);
+update them to include new changes applied by others to the source
+repository; or commit your work as a permanent change to the source
+repository.
+
+   Note that 'checkout' is used to create directories.  The top-level
+directory created is always added to the directory where 'checkout' is
+invoked, and usually has the same name as the specified module.  In the
+case of a module alias, the created sub-directory may have a different
+name, but you can be sure that it will be a sub-directory, and that
+'checkout' will show the relative path leading to each file as it is
+extracted into your private work area (unless you specify the '-Q'
+global option).
+
+   The files created by 'checkout' are created read-write, unless the
+'-r' option to CVS (*note Global options::) is specified, the 'CVSREAD'
+environment variable is specified (*note Environment variables::), or a
+watch is in effect for that file (*note Watches::).
+
+   Note that running 'checkout' on a directory that was already built by
+a prior 'checkout' is also permitted.  This is similar to specifying the
+'-d' option to the 'update' command in the sense that new directories
+that have been created in the repository will appear in your work area.
+However, 'checkout' takes a module name whereas 'update' takes a
+directory name.  Also to use 'checkout' this way it must be run from the
+top level directory (where you originally ran 'checkout' from), so
+before you run 'checkout' to update an existing directory, don't forget
+to change your directory to the top level directory.
+
+   For the output produced by the 'checkout' command, *Note update
+output::.
+
+A.9.1 checkout options
+----------------------
+
+These standard options are supported by 'checkout' (*note Common
+options:: for a complete description of them):
+
+'-D DATE'
+     Use the most recent revision no later than DATE.  This option is
+     sticky, and implies '-P'.  See *note Sticky tags:: for more
+     information on sticky tags/dates.
+
+'-f'
+     Only useful with the '-D DATE' or '-r TAG' flags.  If no matching
+     revision is found, retrieve the most recent revision (instead of
+     ignoring the file).
+
+'-k KFLAG'
+     Process keywords according to KFLAG.  See *note Keyword
+     substitution::.  This option is sticky; future updates of this file
+     in this working directory will use the same KFLAG.  The 'status'
+     command can be viewed to see the sticky options.  See *note
+     Invoking CVS:: for more information on the 'status' command.
+
+'-l'
+     Local; run only in current working directory.
+
+'-n'
+     Do not run any checkout program (as specified with the '-o' option
+     in the modules file; *note modules::).
+
+'-P'
+     Prune empty directories.  See *note Moving directories::.
+
+'-p'
+     Pipe files to the standard output.
+
+'-R'
+     Checkout directories recursively.  This option is on by default.
+
+'-r TAG'
+     Use revision TAG.  This option is sticky, and implies '-P'.  See
+     *note Sticky tags::, for more information on sticky tags/dates.
+
+   In addition to those, you can use these special command options with
+'checkout':
+
+'-A'
+     Reset any sticky tags, dates, or '-k' options.  Does not reset
+     sticky '-k' options on modified files.  See *note Sticky tags:: for
+     more information on sticky tags/dates.
+
+'-c'
+     Copy the module file, sorted, to the standard output, instead of
+     creating or modifying any files or directories in your working
+     directory.
+
+'-d DIR'
+     Create a directory called DIR for the working files, instead of
+     using the module name.  In general, using this flag is equivalent
+     to using 'mkdir DIR; cd DIR' followed by the checkout command
+     without the '-d' flag.
+
+     There is an important exception, however.  It is very convenient
+     when checking out a single item to have the output appear in a
+     directory that doesn't contain empty intermediate directories.  In
+     this case _only_, CVS tries to "shorten" pathnames to avoid those
+     empty directories.
+
+     For example, given a module 'foo' that contains the file 'bar.c',
+     the command 'cvs co -d dir foo' will create directory 'dir' and
+     place 'bar.c' inside.  Similarly, given a module 'bar' which has
+     subdirectory 'baz' wherein there is a file 'quux.c', the command
+     'cvs co -d dir bar/baz' will create directory 'dir' and place
+     'quux.c' inside.
+
+     Using the '-N' flag will defeat this behavior.  Given the same
+     module definitions above, 'cvs co -N -d dir foo' will create
+     directories 'dir/foo' and place 'bar.c' inside, while 'cvs co -N -d
+     dir bar/baz' will create directories 'dir/bar/baz' and place
+     'quux.c' inside.
+
+'-j TAG'
+     With two '-j' options, merge changes from the revision specified
+     with the first '-j' option to the revision specified with the
+     second 'j' option, into the working directory.
+
+     With one '-j' option, merge changes from the ancestor revision to
+     the revision specified with the '-j' option, into the working
+     directory.  The ancestor revision is the common ancestor of the
+     revision which the working directory is based on, and the revision
+     specified in the '-j' option.
+
+     In addition, each -j option can contain an optional date
+     specification which, when used with branches, can limit the chosen
+     revision to one within a specific date.  An optional date is
+     specified by adding a colon (:) to the tag:
+     '-jSYMBOLIC_TAG:DATE_SPECIFIER'.
+
+     See *note Branching and merging::.
+
+'-N'
+     Only useful together with '-d DIR'.  With this option, CVS will not
+     "shorten" module paths in your working directory when you check out
+     a single module.  See the '-d' flag for examples and a discussion.
+
+'-s'
+     Like '-c', but include the status of all modules, and sort it by
+     the status string.  See *note modules::, for info about the '-s'
+     option that is used inside the modules file to set the module
+     status.
+
+A.9.2 checkout examples
+-----------------------
+
+Get a copy of the module 'tc':
+
+     $ cvs checkout tc
+
+   Get a copy of the module 'tc' as it looked one day ago:
+
+     $ cvs checkout -D yesterday tc
+
+A.10 commit--Check files into the repository
+============================================
+
+   * Synopsis: commit [-lRf] [-m 'log_message' | -F file] [-r revision]
+     [files...]
+   * Requires: working directory, repository.
+   * Changes: repository.
+   * Synonym: ci
+
+   Use 'commit' when you want to incorporate changes from your working
+source files into the source repository.
+
+   If you don't specify particular files to commit, all of the files in
+your working current directory are examined.  'commit' is careful to
+change in the repository only those files that you have really changed.
+By default (or if you explicitly specify the '-R' option), files in
+subdirectories are also examined and committed if they have changed; you
+can use the '-l' option to limit 'commit' to the current directory only.
+
+   'commit' verifies that the selected files are up to date with the
+current revisions in the source repository; it will notify you, and exit
+without committing, if any of the specified files must be made current
+first with 'update' (*note update::).  'commit' does not call the
+'update' command for you, but rather leaves that for you to do when the
+time is right.
+
+   When all is well, an editor is invoked to allow you to enter a log
+message that will be written to one or more logging programs (*note
+modules::, and *note loginfo::) and placed in the RCS file inside the
+repository.  This log message can be retrieved with the 'log' command;
+*Note log::.  You can specify the log message on the command line with
+the '-m MESSAGE' option, and thus avoid the editor invocation, or use
+the '-F FILE' option to specify that the argument file contains the log
+message.
+
+A.10.1 commit options
+---------------------
+
+These standard options are supported by 'commit' (*note Common options::
+for a complete description of them):
+
+'-l'
+     Local; run only in current working directory.
+
+'-R'
+     Commit directories recursively.  This is on by default.
+
+'-r REVISION'
+     Commit to REVISION.  REVISION must be either a branch, or a
+     revision on the main trunk that is higher than any existing
+     revision number (*note Assigning revisions::).  You cannot commit
+     to a specific revision on a branch.
+
+   'commit' also supports these options:
+
+'-F FILE'
+     Read the log message from FILE, instead of invoking an editor.
+
+'-f'
+     Note that this is not the standard behavior of the '-f' option as
+     defined in *note Common options::.
+
+     Force CVS to commit a new revision even if you haven't made any
+     changes to the file.  If the current revision of FILE is 1.7, then
+     the following two commands are equivalent:
+
+          $ cvs commit -f FILE
+          $ cvs commit -r 1.8 FILE
+
+     The '-f' option disables recursion (i.e., it implies '-l').  To
+     force CVS to commit a new revision for all files in all
+     subdirectories, you must use '-f -R'.
+
+'-m MESSAGE'
+     Use MESSAGE as the log message, instead of invoking an editor.
+
+A.10.2 commit examples
+----------------------
+
+A.10.2.1 Committing to a branch
+...............................
+
+You can commit to a branch revision (one that has an even number of
+dots) with the '-r' option.  To create a branch revision, use the '-b'
+option of the 'rtag' or 'tag' commands (*note Branching and merging::).
+Then, either 'checkout' or 'update' can be used to base your sources on
+the newly created branch.  From that point on, all 'commit' changes made
+within these working sources will be automatically added to a branch
+revision, thereby not disturbing main-line development in any way.  For
+example, if you had to create a patch to the 1.2 version of the product,
+even though the 2.0 version is already under development, you might do:
+
+     $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
+     $ cvs checkout -r FCS1_2_Patch product_module
+     $ cd product_module
+     [[ hack away ]]
+     $ cvs commit
+
+This works automatically since the '-r' option is sticky.
+
+A.10.2.2 Creating the branch after editing
+..........................................
+
+Say you have been working on some extremely experimental software, based
+on whatever revision you happened to checkout last week.  If others in
+your group would like to work on this software with you, but without
+disturbing main-line development, you could commit your change to a new
+branch.  Others can then checkout your experimental stuff and utilize
+the full benefit of CVS conflict resolution.  The scenario might look
+like:
+
+     [[ hacked sources are present ]]
+     $ cvs tag -b EXPR1
+     $ cvs update -r EXPR1
+     $ cvs commit
+
+   The 'update' command will make the '-r EXPR1' option sticky on all
+files.  Note that your changes to the files will never be removed by the
+'update' command.  The 'commit' will automatically commit to the correct
+branch, because the '-r' is sticky.  You could also do like this:
+
+     [[ hacked sources are present ]]
+     $ cvs tag -b EXPR1
+     $ cvs commit -r EXPR1
+
+but then, only those files that were changed by you will have the '-r
+EXPR1' sticky flag.  If you hack away, and commit without specifying the
+'-r EXPR1' flag, some files may accidentally end up on the main trunk.
+
+   To work with you on the experimental change, others would simply do
+
+     $ cvs checkout -r EXPR1 whatever_module
+
+A.11 diff--Show differences between revisions
+=============================================
+
+   * Synopsis: diff [-lR] [-k kflag] [format_options] [[-r rev1 | -D
+     date1] [-r rev2 | -D date2]] [files...]
+   * Requires: working directory, repository.
+   * Changes: nothing.
+
+   The 'diff' command is used to compare different revisions of files.
+The default action is to compare your working files with the revisions
+they were based on, and report any differences that are found.
+
+   If any file names are given, only those files are compared.  If any
+directories are given, all files under them will be compared.
+
+   The exit status for diff is different than for other CVS commands;
+for details *Note Exit status::.
+
+A.11.1 diff options
+-------------------
+
+These standard options are supported by 'diff' (*note Common options::
+for a complete description of them):
+
+'-D DATE'
+     Use the most recent revision no later than DATE.  See '-r' for how
+     this affects the comparison.
+
+'-k KFLAG'
+     Process keywords according to KFLAG.  See *note Keyword
+     substitution::.
+
+'-l'
+     Local; run only in current working directory.
+
+'-R'
+     Examine directories recursively.  This option is on by default.
+
+'-r TAG'
+     Compare with revision TAG.  Zero, one or two '-r' options can be
+     present.  With no '-r' option, the working file will be compared
+     with the revision it was based on.  With one '-r', that revision
+     will be compared to your current working file.  With two '-r'
+     options those two revisions will be compared (and your working file
+     will not affect the outcome in any way).
+
+     One or both '-r' options can be replaced by a '-D DATE' option,
+     described above.
+
+   The following options specify the format of the output.  They have
+the same meaning as in GNU diff.  Most options have two equivalent
+names, one of which is a single letter preceded by '-', and the other of
+which is a long name preceded by '--'.
+
+'-LINES'
+     Show LINES (an integer) lines of context.  This option does not
+     specify an output format by itself; it has no effect unless it is
+     combined with '-c' or '-u'.  This option is obsolete.  For proper
+     operation, 'patch' typically needs at least two lines of context.
+
+'-a'
+     Treat all files as text and compare them line-by-line, even if they
+     do not seem to be text.
+
+'-b'
+     Ignore trailing white space and consider all other sequences of one
+     or more white space characters to be equivalent.
+
+'-B'
+     Ignore changes that just insert or delete blank lines.
+
+'--binary'
+     Read and write data in binary mode.
+
+'--brief'
+     Report only whether the files differ, not the details of the
+     differences.
+
+'-c'
+     Use the context output format.
+
+'-C LINES'
+'--context[=LINES]'
+     Use the context output format, showing LINES (an integer) lines of
+     context, or three if LINES is not given.  For proper operation,
+     'patch' typically needs at least two lines of context.
+
+'--changed-group-format=FORMAT'
+     Use FORMAT to output a line group containing differing lines from
+     both files in if-then-else format.  See *note Line group formats::.
+
+'-d'
+     Change the algorithm to perhaps find a smaller set of changes.
+     This makes 'diff' slower (sometimes much slower).
+
+'-e'
+'--ed'
+     Make output that is a valid 'ed' script.
+
+'--expand-tabs'
+     Expand tabs to spaces in the output, to preserve the alignment of
+     tabs in the input files.
+
+'-f'
+     Make output that looks vaguely like an 'ed' script but has changes
+     in the order they appear in the file.
+
+'-F REGEXP'
+     In context and unified format, for each hunk of differences, show
+     some of the last preceding line that matches REGEXP.
+
+'--forward-ed'
+     Make output that looks vaguely like an 'ed' script but has changes
+     in the order they appear in the file.
+
+'-H'
+     Use heuristics to speed handling of large files that have numerous
+     scattered small changes.
+
+'--horizon-lines=LINES'
+     Do not discard the last LINES lines of the common prefix and the
+     first LINES lines of the common suffix.
+
+'-i'
+     Ignore changes in case; consider upper- and lower-case letters
+     equivalent.
+
+'-I REGEXP'
+     Ignore changes that just insert or delete lines that match REGEXP.
+
+'--ifdef=NAME'
+     Make merged if-then-else output using NAME.
+
+'--ignore-all-space'
+     Ignore white space when comparing lines.
+
+'--ignore-blank-lines'
+     Ignore changes that just insert or delete blank lines.
+
+'--ignore-case'
+     Ignore changes in case; consider upper- and lower-case to be the
+     same.
+
+'--ignore-matching-lines=REGEXP'
+     Ignore changes that just insert or delete lines that match REGEXP.
+
+'--ignore-space-change'
+     Ignore trailing white space and consider all other sequences of one
+     or more white space characters to be equivalent.
+
+'--initial-tab'
+     Output a tab rather than a space before the text of a line in
+     normal or context format.  This causes the alignment of tabs in the
+     line to look normal.
+
+'-L LABEL'
+     Use LABEL instead of the file name in the context format and
+     unified format headers.
+
+'--label=LABEL'
+     Use LABEL instead of the file name in the context format and
+     unified format headers.
+
+'--left-column'
+     Print only the left column of two common lines in side by side
+     format.
+
+'--line-format=FORMAT'
+     Use FORMAT to output all input lines in if-then-else format.  See
+     *note Line formats::.
+
+'--minimal'
+     Change the algorithm to perhaps find a smaller set of changes.
+     This makes 'diff' slower (sometimes much slower).
+
+'-n'
+     Output RCS-format diffs; like '-f' except that each command
+     specifies the number of lines affected.
+
+'-N'
+'--new-file'
+     In directory comparison, if a file is found in only one directory,
+     treat it as present but empty in the other directory.
+
+'--new-group-format=FORMAT'
+     Use FORMAT to output a group of lines taken from just the second
+     file in if-then-else format.  See *note Line group formats::.
+
+'--new-line-format=FORMAT'
+     Use FORMAT to output a line taken from just the second file in
+     if-then-else format.  See *note Line formats::.
+
+'--old-group-format=FORMAT'
+     Use FORMAT to output a group of lines taken from just the first
+     file in if-then-else format.  See *note Line group formats::.
+
+'--old-line-format=FORMAT'
+     Use FORMAT to output a line taken from just the first file in
+     if-then-else format.  See *note Line formats::.
+
+'-p'
+     Show which C function each change is in.
+
+'--rcs'
+     Output RCS-format diffs; like '-f' except that each command
+     specifies the number of lines affected.
+
+'--report-identical-files'
+'-s'
+     Report when two files are the same.
+
+'--show-c-function'
+     Show which C function each change is in.
+
+'--show-function-line=REGEXP'
+     In context and unified format, for each hunk of differences, show
+     some of the last preceding line that matches REGEXP.
+
+'--side-by-side'
+     Use the side by side output format.
+
+'--speed-large-files'
+     Use heuristics to speed handling of large files that have numerous
+     scattered small changes.
+
+'--suppress-common-lines'
+     Do not print common lines in side by side format.
+
+'-t'
+     Expand tabs to spaces in the output, to preserve the alignment of
+     tabs in the input files.
+
+'-T'
+     Output a tab rather than a space before the text of a line in
+     normal or context format.  This causes the alignment of tabs in the
+     line to look normal.
+
+'--text'
+     Treat all files as text and compare them line-by-line, even if they
+     do not appear to be text.
+
+'-u'
+     Use the unified output format.
+
+'--unchanged-group-format=FORMAT'
+     Use FORMAT to output a group of common lines taken from both files
+     in if-then-else format.  *Note Line group formats::.
+
+'--unchanged-line-format=FORMAT'
+     Use FORMAT to output a line common to both files in if-then-else
+     format.  *Note Line formats::.
+
+'-U LINES'
+'--unified[=LINES]'
+     Use the unified output format, showing LINES (an integer) lines of
+     context, or three if LINES is not given.  For proper operation,
+     'patch' typically needs at least two lines of context.
+
+'-w'
+     Ignore white space when comparing lines.
+
+'-W COLUMNS'
+'--width=COLUMNS'
+     Use an output width of COLUMNS in side by side format.
+
+'-y'
+     Use the side by side output format.
+
+A.11.1.1 Line group formats
+...........................
+
+Line group formats let you specify formats suitable for many
+applications that allow if-then-else input, including programming
+languages and text formatting languages.  A line group format specifies
+the output format for a contiguous group of similar lines.
+
+   For example, the following command compares the TeX file 'myfile'
+with the original version from the repository, and outputs a merged file
+in which old regions are surrounded by '\begin{em}'-'\end{em}' lines,
+and new regions are surrounded by '\begin{bf}'-'\end{bf}' lines.
+
+     cvs diff \
+        --old-group-format='\begin{em}
+     %<\end{em}
+     ' \
+        --new-group-format='\begin{bf}
+     %>\end{bf}
+     ' \
+        myfile
+
+   The following command is equivalent to the above example, but it is a
+little more verbose, because it spells out the default line group
+formats.
+
+     cvs diff \
+        --old-group-format='\begin{em}
+     %<\end{em}
+     ' \
+        --new-group-format='\begin{bf}
+     %>\end{bf}
+     ' \
+        --unchanged-group-format='%=' \
+        --changed-group-format='\begin{em}
+     %<\end{em}
+     \begin{bf}
+     %>\end{bf}
+     ' \
+        myfile
+
+   Here is a more advanced example, which outputs a diff listing with
+headers containing line numbers in a "plain English" style.
+
+     cvs diff \
+        --unchanged-group-format='' \
+        --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
+     %<' \
+        --new-group-format='-------- %dN line%(N=1?:s) added after %de:
+     %>' \
+        --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
+     %<-------- to:
+     %>' \
+        myfile
+
+   To specify a line group format, use one of the options listed below.
+You can specify up to four line group formats, one for each kind of line
+group.  You should quote FORMAT, because it typically contains shell
+metacharacters.
+
+'--old-group-format=FORMAT'
+     These line groups are hunks containing only lines from the first
+     file.  The default old group format is the same as the changed
+     group format if it is specified; otherwise it is a format that
+     outputs the line group as-is.
+
+'--new-group-format=FORMAT'
+     These line groups are hunks containing only lines from the second
+     file.  The default new group format is same as the changed group
+     format if it is specified; otherwise it is a format that outputs
+     the line group as-is.
+
+'--changed-group-format=FORMAT'
+     These line groups are hunks containing lines from both files.  The
+     default changed group format is the concatenation of the old and
+     new group formats.
+
+'--unchanged-group-format=FORMAT'
+     These line groups contain lines common to both files.  The default
+     unchanged group format is a format that outputs the line group
+     as-is.
+
+   In a line group format, ordinary characters represent themselves;
+conversion specifications start with '%' and have one of the following
+forms.
+
+'%<'
+     stands for the lines from the first file, including the trailing
+     newline.  Each line is formatted according to the old line format
+     (*note Line formats::).
+
+'%>'
+     stands for the lines from the second file, including the trailing
+     newline.  Each line is formatted according to the new line format.
+
+'%='
+     stands for the lines common to both files, including the trailing
+     newline.  Each line is formatted according to the unchanged line
+     format.
+
+'%%'
+     stands for '%'.
+
+'%c'C''
+     where C is a single character, stands for C.  C may not be a
+     backslash or an apostrophe.  For example, '%c':'' stands for a
+     colon, even inside the then-part of an if-then-else format, which a
+     colon would normally terminate.
+
+'%c'\O''
+     where O is a string of 1, 2, or 3 octal digits, stands for the
+     character with octal code O.  For example, '%c'\0'' stands for a
+     null character.
+
+'FN'
+     where F is a 'printf' conversion specification and N is one of the
+     following letters, stands for N's value formatted with F.
+
+     'e'
+          The line number of the line just before the group in the old
+          file.
+
+     'f'
+          The line number of the first line in the group in the old
+          file; equals E + 1.
+
+     'l'
+          The line number of the last line in the group in the old file.
+
+     'm'
+          The line number of the line just after the group in the old
+          file; equals L + 1.
+
+     'n'
+          The number of lines in the group in the old file; equals L - F
+          + 1.
+
+     'E, F, L, M, N'
+          Likewise, for lines in the new file.
+
+     The 'printf' conversion specification can be '%d', '%o', '%x', or
+     '%X', specifying decimal, octal, lower case hexadecimal, or upper
+     case hexadecimal output respectively.  After the '%' the following
+     options can appear in sequence: a '-' specifying
+     left-justification; an integer specifying the minimum field width;
+     and a period followed by an optional integer specifying the minimum
+     number of digits.  For example, '%5dN' prints the number of new
+     lines in the group in a field of width 5 characters, using the
+     'printf' format '"%5d"'.
+
+'(A=B?T:E)'
+     If A equals B then T else E.  A and B are each either a decimal
+     constant or a single letter interpreted as above.  This format spec
+     is equivalent to T if A's value equals B's; otherwise it is
+     equivalent to E.
+
+     For example, '%(N=0?no:%dN) line%(N=1?:s)' is equivalent to 'no
+     lines' if N (the number of lines in the group in the new file) is
+     0, to '1 line' if N is 1, and to '%dN lines' otherwise.
+
+A.11.1.2 Line formats
+.....................
+
+Line formats control how each line taken from an input file is output as
+part of a line group in if-then-else format.
+
+   For example, the following command outputs text with a one-column
+change indicator to the left of the text.  The first column of output is
+'-' for deleted lines, '|' for added lines, and a space for unchanged
+lines.  The formats contain newline characters where newlines are
+desired on output.
+
+     cvs diff \
+        --old-line-format='-%l
+     ' \
+        --new-line-format='|%l
+     ' \
+        --unchanged-line-format=' %l
+     ' \
+        myfile
+
+   To specify a line format, use one of the following options.  You
+should quote FORMAT, since it often contains shell metacharacters.
+
+'--old-line-format=FORMAT'
+     formats lines just from the first file.
+
+'--new-line-format=FORMAT'
+     formats lines just from the second file.
+
+'--unchanged-line-format=FORMAT'
+     formats lines common to both files.
+
+'--line-format=FORMAT'
+     formats all lines; in effect, it sets all three above options
+     simultaneously.
+
+   In a line format, ordinary characters represent themselves;
+conversion specifications start with '%' and have one of the following
+forms.
+
+'%l'
+     stands for the contents of the line, not counting its trailing
+     newline (if any).  This format ignores whether the line is
+     incomplete.
+
+'%L'
+     stands for the contents of the line, including its trailing newline
+     (if any).  If a line is incomplete, this format preserves its
+     incompleteness.
+
+'%%'
+     stands for '%'.
+
+'%c'C''
+     where C is a single character, stands for C.  C may not be a
+     backslash or an apostrophe.  For example, '%c':'' stands for a
+     colon.
+
+'%c'\O''
+     where O is a string of 1, 2, or 3 octal digits, stands for the
+     character with octal code O.  For example, '%c'\0'' stands for a
+     null character.
+
+'Fn'
+     where F is a 'printf' conversion specification, stands for the line
+     number formatted with F.  For example, '%.5dn' prints the line
+     number using the 'printf' format '"%.5d"'.  *Note Line group
+     formats::, for more about printf conversion specifications.
+
+   The default line format is '%l' followed by a newline character.
+
+   If the input contains tab characters and it is important that they
+line up on output, you should ensure that '%l' or '%L' in a line format
+is just after a tab stop (e.g. by preceding '%l' or '%L' with a tab
+character), or you should use the '-t' or '--expand-tabs' option.
+
+   Taken together, the line and line group formats let you specify many
+different formats.  For example, the following command uses a format
+similar to 'diff''s normal format.  You can tailor this command to get
+fine control over 'diff''s output.
+
+     cvs diff \
+        --old-line-format='< %l
+     ' \
+        --new-line-format='> %l
+     ' \
+        --old-group-format='%df%(f=l?:,%dl)d%dE
+     %<' \
+        --new-group-format='%dea%dF%(F=L?:,%dL)
+     %>' \
+        --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
+     %<---
+     %>' \
+        --unchanged-group-format='' \
+        myfile
+
+A.11.2 diff examples
+--------------------
+
+The following line produces a Unidiff ('-u' flag) between revision 1.14
+and 1.19 of 'backend.c'.  Due to the '-kk' flag no keywords are
+substituted, so differences that only depend on keyword substitution are
+ignored.
+
+     $ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
+
+   Suppose the experimental branch EXPR1 was based on a set of files
+tagged RELEASE_1_0.  To see what has happened on that branch, the
+following can be used:
+
+     $ cvs diff -r RELEASE_1_0 -r EXPR1
+
+   A command like this can be used to produce a context diff between two
+releases:
+
+     $ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
+
+   If you are maintaining ChangeLogs, a command like the following just
+before you commit your changes may help you write the ChangeLog entry.
+All local modifications that have not yet been committed will be
+printed.
+
+     $ cvs diff -u | less
+
+A.12 export--Export sources from CVS, similar to checkout
+=========================================================
+
+   * Synopsis: export [-flNnR] [-r rev|-D date] [-k subst] [-d dir]
+     module...
+   * Requires: repository.
+   * Changes: current directory.
+
+   This command is a variant of 'checkout'; use it when you want a copy
+of the source for module without the CVS administrative directories.
+For example, you might use 'export' to prepare source for shipment
+off-site.  This command requires that you specify a date or tag (with
+'-D' or '-r'), so that you can count on reproducing the source you ship
+to others (and thus it always prunes empty directories).
+
+   One often would like to use '-kv' with 'cvs export'.  This causes any
+keywords to be expanded such that an import done at some other site will
+not lose the keyword revision information.  But be aware that doesn't
+handle an export containing binary files correctly.  Also be aware that
+after having used '-kv', one can no longer use the 'ident' command
+(which is part of the RCS suite--see ident(1)) which looks for keyword
+strings.  If you want to be able to use 'ident' you must not use '-kv'.
+
+A.12.1 export options
+---------------------
+
+These standard options are supported by 'export' (*note Common
+options::, for a complete description of them):
+
+'-D DATE'
+     Use the most recent revision no later than DATE.
+
+'-f'
+     If no matching revision is found, retrieve the most recent revision
+     (instead of ignoring the file).
+
+'-l'
+     Local; run only in current working directory.
+
+'-n'
+     Do not run any checkout program.
+
+'-R'
+     Export directories recursively.  This is on by default.
+
+'-r TAG'
+     Use revision TAG.
+
+   In addition, these options (that are common to 'checkout' and
+'export') are also supported:
+
+'-d DIR'
+     Create a directory called DIR for the working files, instead of
+     using the module name.  See *note checkout options:: for complete
+     details on how CVS handles this flag.
+
+'-k SUBST'
+     Set keyword expansion mode (*note Substitution modes::).
+
+'-N'
+     Only useful together with '-d DIR'.  See *note checkout options::
+     for complete details on how CVS handles this flag.
+
+A.13 history--Show status of files and users
+============================================
+
+   * Synopsis: history [-report] [-flags] [-options args] [files...]
+   * Requires: the file '$CVSROOT/CVSROOT/history'
+   * Changes: nothing.
+
+   CVS can keep a history file that tracks each use of the 'checkout',
+'commit', 'rtag', 'update', and 'release' commands.  You can use
+'history' to display this information in various formats.
+
+   Logging must be enabled by creating the file
+'$CVSROOT/CVSROOT/history'.
+
+   *'history' uses '-f', '-l', '-n', and '-p' in ways that conflict with
+the normal use inside CVS (*note Common options::).*
+
+A.13.1 history options
+----------------------
+
+Several options (shown above as '-report') control what kind of report
+is generated:
+
+'-c'
+     Report on each time commit was used (i.e., each time the repository
+     was modified).
+
+'-e'
+     Everything (all record types).  Equivalent to specifying '-x' with
+     all record types.  Of course, '-e' will also include record types
+     which are added in a future version of CVS; if you are writing a
+     script which can only handle certain record types, you'll want to
+     specify '-x'.
+
+'-m MODULE'
+     Report on a particular module.  (You can meaningfully use '-m' more
+     than once on the command line.)
+
+'-o'
+     Report on checked-out modules.  This is the default report type.
+
+'-T'
+     Report on all tags.
+
+'-x TYPE'
+     Extract a particular set of record types TYPE from the CVS history.
+     The types are indicated by single letters, which you may specify in
+     combination.
+
+     Certain commands have a single record type:
+
+     'F'
+          release
+     'O'
+          checkout
+     'E'
+          export
+     'T'
+          rtag
+
+     One of five record types may result from an update:
+
+     'C'
+          A merge was necessary but collisions were detected (requiring
+          manual merging).
+     'G'
+          A merge was necessary and it succeeded.
+     'U'
+          A working file was copied from the repository.
+     'P'
+          A working file was patched to match the repository.
+     'W'
+          The working copy of a file was deleted during update (because
+          it was gone from the repository).
+
+     One of three record types results from commit:
+
+     'A'
+          A file was added for the first time.
+     'M'
+          A file was modified.
+     'R'
+          A file was removed.
+
+   The options shown as '-flags' constrain or expand the report without
+requiring option arguments:
+
+'-a'
+     Show data for all users (the default is to show data only for the
+     user executing 'history').
+
+'-l'
+     Show last modification only.
+
+'-w'
+     Show only the records for modifications done from the same working
+     directory where 'history' is executing.
+
+   The options shown as '-options ARGS' constrain the report based on an
+argument:
+
+'-b STR'
+     Show data back to a record containing the string STR in either the
+     module name, the file name, or the repository path.
+
+'-D DATE'
+     Show data since DATE.  This is slightly different from the normal
+     use of '-D DATE', which selects the newest revision older than
+     DATE.
+
+'-f FILE'
+     Show data for a particular file (you can specify several '-f'
+     options on the same command line).  This is equivalent to
+     specifying the file on the command line.
+
+'-n MODULE'
+     Show data for a particular module (you can specify several '-n'
+     options on the same command line).
+
+'-p REPOSITORY'
+     Show data for a particular source repository (you can specify
+     several '-p' options on the same command line).
+
+'-r REV'
+     Show records referring to revisions since the revision or tag named
+     REV appears in individual RCS files.  Each RCS file is searched for
+     the revision or tag.
+
+'-t TAG'
+     Show records since tag TAG was last added to the history file.
+     This differs from the '-r' flag above in that it reads only the
+     history file, not the RCS files, and is much faster.
+
+'-u NAME'
+     Show records for user NAME.
+
+'-z TIMEZONE'
+     Show times in the selected records using the specified time zone
+     instead of UTC.
+
+A.14 import--Import sources into CVS, using vendor branches
+===========================================================
+
+   * Synopsis: import [-options] repository vendortag releasetag...
+   * Requires: Repository, source distribution directory.
+   * Changes: repository.
+
+   Use 'import' to incorporate an entire source distribution from an
+outside source (e.g., a source vendor) into your source repository
+directory.  You can use this command both for initial creation of a
+repository, and for wholesale updates to the module from the outside
+source.  See *note Tracking sources:: for a discussion on this subject.
+
+   The REPOSITORY argument gives a directory name (or a path to a
+directory) under the CVS root directory for repositories; if the
+directory did not exist, import creates it.
+
+   When you use import for updates to source that has been modified in
+your source repository (since a prior import), it will notify you of any
+files that conflict in the two branches of development; use 'checkout
+-j' to reconcile the differences, as import instructs you to do.
+
+   If CVS decides a file should be ignored (*note cvsignore::), it does
+not import it and prints 'I ' followed by the filename (*note import
+output:: for a complete description of the output).
+
+   If the file '$CVSROOT/CVSROOT/cvswrappers' exists, any file whose
+names match the specifications in that file will be treated as packages
+and the appropriate filtering will be performed on the file/directory
+before being imported.  See *note Wrappers::.
+
+   The outside source is saved in a first-level branch, by default
+1.1.1.  Updates are leaves of this branch; for example, files from the
+first imported collection of source will be revision 1.1.1.1, then files
+from the first imported update will be revision 1.1.1.2, and so on.
+
+   At least three arguments are required.  REPOSITORY is needed to
+identify the collection of source.  VENDORTAG is a tag for the entire
+branch (e.g., for 1.1.1).  You must also specify at least one RELEASETAG
+to uniquely identify the files at the leaves created each time you
+execute 'import'.  The RELEASETAG should be new, not previously existing
+in the repository file, and uniquely identify the imported release,
+
+   Note that 'import' does _not_ change the directory in which you
+invoke it.  In particular, it does not set up that directory as a CVS
+working directory; if you want to work with the sources import them
+first and then check them out into a different directory (*note Getting
+the source::).
+
+A.14.1 import options
+---------------------
+
+This standard option is supported by 'import' (*note Common options::
+for a complete description):
+
+'-m MESSAGE'
+     Use MESSAGE as log information, instead of invoking an editor.
+
+   There are the following additional special options.
+
+'-b BRANCH'
+     See *note Multiple vendor branches::.
+
+'-d'
+     Use each file's modification time as the time of import rather than
+     the current time.
+
+'-k SUBST'
+     Indicate the keyword expansion mode desired.  This setting will
+     apply to all files created during the import, but not to any files
+     that previously existed in the repository.  See *note Substitution
+     modes:: for a list of valid '-k' settings.
+
+'-I NAME'
+     Specify file names that should be ignored during import.  You can
+     use this option repeatedly.  To avoid ignoring any files at all
+     (even those ignored by default), specify '-I !'.
+
+     NAME can be a file name pattern of the same type that you can
+     specify in the '.cvsignore' file.  See *note cvsignore::.
+
+'-W SPEC'
+     Specify file names that should be filtered during import.  You can
+     use this option repeatedly.
+
+     SPEC can be a file name pattern of the same type that you can
+     specify in the '.cvswrappers' file.  *Note Wrappers::.
+
+A.14.2 import output
+--------------------
+
+'import' keeps you informed of its progress by printing a line for each
+file, preceded by one character indicating the status of the file:
+
+'U FILE'
+     The file already exists in the repository and has not been locally
+     modified; a new revision has been created (if necessary).
+
+'N FILE'
+     The file is a new file which has been added to the repository.
+
+'C FILE'
+     The file already exists in the repository but has been locally
+     modified; you will have to merge the changes.
+
+'I FILE'
+     The file is being ignored (*note cvsignore::).
+
+'L FILE'
+     The file is a symbolic link; 'cvs import' ignores symbolic links.
+     People periodically suggest that this behavior should be changed,
+     but if there is a consensus on what it should be changed to, it
+     doesn't seem to be apparent.  (Various options in the 'modules'
+     file can be used to recreate symbolic links on checkout, update,
+     etc.; *note modules::.)
+
+A.14.3 import examples
+----------------------
+
+See *note Tracking sources::, and *note From files::.
+
+A.15 log--Print out log information for files
+=============================================
+
+   * Synopsis: log [options] [files...]
+   * Requires: repository, working directory.
+   * Changes: nothing.
+
+   Display log information for files.  'log' used to call the RCS
+utility 'rlog'.  Although this is no longer true in the current sources,
+this history determines the format of the output and the options, which
+are not quite in the style of the other CVS commands.
+
+   The output includes the location of the RCS file, the "head" revision
+(the latest revision on the trunk), all symbolic names (tags) and some
+other things.  For each revision, the revision number, the author, the
+number of lines added/deleted and the log message are printed.  All
+times are displayed in Coordinated Universal Time (UTC). (Other parts of
+CVS print times in the local timezone).
+
+   *'log' uses '-R' in a way that conflicts with the normal use inside
+CVS (*note Common options::).*
+
+A.15.1 log options
+------------------
+
+By default, 'log' prints all information that is available.  All other
+options restrict the output.  Note that the revision selection options
+('-b', '-d', '-r', '-s', and '-w') have no effect, other than possibly
+causing a search for files in Attic directories, when used in
+conjunction with the options that restrict the output to only 'log'
+header fields ('-h', '-R', and '-t') unless the '-S' option is also
+specified.
+
+'-b'
+     Print information about the revisions on the default branch,
+     normally the highest branch on the trunk.
+
+'-d DATES'
+     Print information about revisions with a checkin date/time in the
+     range given by the semicolon-separated list of dates.  The date
+     formats accepted are those accepted by the '-D' option to many
+     other CVS commands (*note Common options::).  Dates can be combined
+     into ranges as follows:
+
+     'D1<D2'
+     'D2>D1'
+          Select the revisions that were deposited between D1 and D2.
+
+     '<D'
+     'D>'
+          Select all revisions dated D or earlier.
+
+     'D<'
+     '>D'
+          Select all revisions dated D or later.
+
+     'D'
+          Select the single, latest revision dated D or earlier.
+
+     The '>' or '<' characters may be followed by '=' to indicate an
+     inclusive range rather than an exclusive one.
+
+     Note that the separator is a semicolon (;).
+
+'-h'
+     Print only the name of the RCS file, name of the file in the
+     working directory, head, default branch, access list, locks,
+     symbolic names, and suffix.
+
+'-l'
+     Local; run only in current working directory.  (Default is to run
+     recursively).
+
+'-N'
+     Do not print the list of tags for this file.  This option can be
+     very useful when your site uses a lot of tags, so rather than
+     "more"'ing over 3 pages of tag information, the log information is
+     presented without tags at all.
+
+'-n'
+     Print the list of tags for this file.  This option can be very
+     useful when your '.cvsrc' file has a 'log -N' entry as a way to get
+     a full list of all of the tags.
+
+'-R'
+     Print only the name of the RCS file.
+
+'-rREVISIONS'
+     Print information about revisions given in the comma-separated list
+     REVISIONS of revisions and ranges.  The following table explains
+     the available range formats:
+
+     'REV1:REV2'
+          Revisions REV1 to REV2 (which must be on the same branch).
+
+     'REV1::REV2'
+          The same, but excluding REV1.
+
+     ':REV'
+     '::REV'
+          Revisions from the beginning of the branch up to and including
+          REV.
+
+     'REV:'
+          Revisions starting with REV to the end of the branch
+          containing REV.
+
+     'REV::'
+          Revisions starting just after REV to the end of the branch
+          containing REV.
+
+     'BRANCH'
+          An argument that is a branch means all revisions on that
+          branch.
+
+     'BRANCH1:BRANCH2'
+     'BRANCH1::BRANCH2'
+          A range of branches means all revisions on the branches in
+          that range.
+
+     'BRANCH.'
+          The latest revision in BRANCH.
+
+     A bare '-r' with no revisions means the latest revision on the
+     default branch, normally the trunk.  There can be no space between
+     the '-r' option and its argument.
+
+'-S'
+     Suppress the header if no revisions are selected.
+
+'-s STATES'
+     Print information about revisions whose state attributes match one
+     of the states given in the comma-separated list STATES.  Individual
+     states may be any text string, though CVS commonly only uses two
+     states, 'Exp' and 'dead'.  See *note admin options:: for more
+     information.
+
+'-t'
+     Print the same as '-h', plus the descriptive text.
+
+'-wLOGINS'
+     Print information about revisions checked in by users with login
+     names appearing in the comma-separated list LOGINS.  If LOGINS is
+     omitted, the user's login is assumed.  There can be no space
+     between the '-w' option and its argument.
+
+   'log' prints the intersection of the revisions selected with the
+options '-d', '-s', and '-w', intersected with the union of the
+revisions selected by '-b' and '-r'.
+
+A.15.2 log examples
+-------------------
+
+Contributed examples are gratefully accepted.
+
+A.16 rdiff--'patch' format diffs between releases
+=================================================
+
+   * rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules...
+   * Requires: repository.
+   * Changes: nothing.
+   * Synonym: patch
+
+   Builds a Larry Wall format patch(1) file between two releases, that
+can be fed directly into the 'patch' program to bring an old release
+up-to-date with the new release.  (This is one of the few CVS commands
+that operates directly from the repository, and doesn't require a prior
+checkout.)  The diff output is sent to the standard output device.
+
+   You can specify (using the standard '-r' and '-D' options) any
+combination of one or two revisions or dates.  If only one revision or
+date is specified, the patch file reflects differences between that
+revision or date and the current head revisions in the RCS file.
+
+   Note that if the software release affected is contained in more than
+one directory, then it may be necessary to specify the '-p' option to
+the 'patch' command when patching the old sources, so that 'patch' is
+able to find the files that are located in other directories.
+
+A.16.1 rdiff options
+--------------------
+
+These standard options are supported by 'rdiff' (*note Common options::
+for a complete description of them):
+
+'-D DATE'
+     Use the most recent revision no later than DATE.
+
+'-f'
+     If no matching revision is found, retrieve the most recent revision
+     (instead of ignoring the file).
+
+'-k KFLAG'
+     Process keywords according to KFLAG.  See *note Keyword
+     substitution::.
+
+'-l'
+     Local; don't descend subdirectories.
+
+'-R'
+     Examine directories recursively.  This option is on by default.
+
+'-r TAG'
+     Use revision TAG.
+
+   In addition to the above, these options are available:
+
+'-c'
+     Use the context diff format.  This is the default format.
+
+'-s'
+     Create a summary change report instead of a patch.  The summary
+     includes information about files that were changed or added between
+     the releases.  It is sent to the standard output device.  This is
+     useful for finding out, for example, which files have changed
+     between two dates or revisions.
+
+'-t'
+     A diff of the top two revisions is sent to the standard output
+     device.  This is most useful for seeing what the last change to a
+     file was.
+
+'-u'
+     Use the unidiff format for the context diffs.  Remember that old
+     versions of the 'patch' program can't handle the unidiff format, so
+     if you plan to post this patch to the net you should probably not
+     use '-u'.
+
+'-V VN'
+     Expand keywords according to the rules current in RCS version VN
+     (the expansion format changed with RCS version 5).  Note that this
+     option is no longer accepted.  CVS will always expand keywords the
+     way that RCS version 5 does.
+
+A.16.2 rdiff examples
+---------------------
+
+Suppose you receive mail from address@hidden asking for an update from
+release 1.2 to 1.4 of the tc compiler.  You have no such patches on
+hand, but with CVS that can easily be fixed with a command such as this:
+
+     $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \
+     > Mail -s 'The patches you asked for' address@hidden
+
+   Suppose you have made release 1.3, and forked a branch called
+'R_1_3fix' for bug fixes.  'R_1_3_1' corresponds to release 1.3.1, which
+was made some time ago.  Now, you want to see how much development has
+been done on the branch.  This command can be used:
+
+     $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
+     cvs rdiff: Diffing module-name
+     File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
+     File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
+     File bar.h,v changed from revision 1.29.2.1 to 1.2
+
+A.17 release--Indicate that a Module is no longer in use
+========================================================
+
+   * release [-d] directories...
+   * Requires: Working directory.
+   * Changes: Working directory, history log.
+
+   This command is meant to safely cancel the effect of 'cvs checkout'.
+Since CVS doesn't lock files, it isn't strictly necessary to use this
+command.  You can always simply delete your working directory, if you
+like; but you risk losing changes you may have forgotten, and you leave
+no trace in the CVS history file (*note history file::) that you've
+abandoned your checkout.
+
+   Use 'cvs release' to avoid these problems.  This command checks that
+no uncommitted changes are present; that you are executing it from
+immediately above a CVS working directory; and that the repository
+recorded for your files is the same as the repository defined in the
+module database.
+
+   If all these conditions are true, 'cvs release' leaves a record of
+its execution (attesting to your intentionally abandoning your checkout)
+in the CVS history log.
+
+A.17.1 release options
+----------------------
+
+The 'release' command supports one command option:
+
+'-d'
+     Delete your working copy of the file if the release succeeds.  If
+     this flag is not given your files will remain in your working
+     directory.
+
+     *WARNING: The 'release' command deletes all directories and files
+     recursively.  This has the very serious side-effect that any
+     directory created inside checked-out sources, and not added to the
+     repository (using the 'add' command; *note Adding files::) will be
+     silently deleted--even if it is non-empty!*
+
+A.17.2 release output
+---------------------
+
+Before 'release' releases your sources it will print a one-line message
+for any file that is not up-to-date.
+
+'U FILE'
+'P FILE'
+     There exists a newer revision of this file in the repository, and
+     you have not modified your local copy of the file ('U' and 'P' mean
+     the same thing).
+
+'A FILE'
+     The file has been added to your private copy of the sources, but
+     has not yet been committed to the repository.  If you delete your
+     copy of the sources this file will be lost.
+
+'R FILE'
+     The file has been removed from your private copy of the sources,
+     but has not yet been removed from the repository, since you have
+     not yet committed the removal.  See *note commit::.
+
+'M FILE'
+     The file is modified in your working directory.  There might also
+     be a newer revision inside the repository.
+
+'? FILE'
+     FILE is in your working directory, but does not correspond to
+     anything in the source repository, and is not in the list of files
+     for CVS to ignore (see the description of the '-I' option, and
+     *note cvsignore::).  If you remove your working sources, this file
+     will be lost.
+
+A.17.3 release examples
+-----------------------
+
+Release the 'tc' directory, and delete your local working copy of the
+files.
+
+     $ cd ..         # You must stand immediately above the
+                     # sources when you issue 'cvs release'.
+     $ cvs release -d tc
+     You have [0] altered files in this repository.
+     Are you sure you want to release (and delete) directory `tc': y
+     $
+
+A.18 remove--Remove files from active use
+=========================================
+
+   * Synopsis: remove [-flR] [files...]
+   * Requires: repository, working directory.
+   * Changes: working directory.
+
+   The 'remove' command is used to remove unwanted files from active
+use.  The user normally deletes the files from the working directory
+prior to invocation of the 'remove' command.  Only the working directory
+is updated.  Changes to the repository are not made until the 'commit'
+command is run.
+
+   The 'remove' command does not delete files from from the repository.
+CVS keeps all historical data in the repository so that it is possible
+to reconstruct previous states of the projects under revision control.
+
+   To undo CVS 'remove' or to resurrect files that were previously
+removed, *Note add::.
+
+A.18.1 remove options
+---------------------
+
+These standard options are supported by 'remove' (*note Common options::
+for a complete description of them):
+
+'-l'
+     Local; run only in current working directory.  See *note Recursive
+     behavior::.
+
+'-R'
+     Process directories recursively.  See *note Recursive behavior::.
+
+   In addition, these options are also supported:
+
+'-f'
+     Note that this is not the standard behavior of the '-f' option as
+     defined in *note Common options::.
+
+     Delete files before removing them.
+
+     Entire directory hierarchies are easily removed using '-f', but
+     take note that it is not as easy to resurrect directory hierarchies
+     as it is to remove them.
+
+A.18.2 remove examples
+----------------------
+
+A.18.2.1 Removing a file
+........................
+
+     $ cvs remove remove.me
+     cvs remove: file `remove.me' still in working directory
+     cvs remove: 1 file exists; remove it first
+     $ rm -f remove.me
+     $ cvs remove remove.me
+     cvs remove: scheduling `remove.me' for removal
+     cvs remove: use 'cvs commit' to remove this file permanently
+
+     $ ls remove.it
+     remove.it
+     $ cvs remove -f remove.it
+     cvs remove: scheduling `remove.it' for removal
+     cvs remove: use 'cvs commit' to remove this file permanently
+
+A.18.2.2 Removing entire directories
+....................................
+
+     $ tree -d a
+     a
+     |-- CVS
+     `-- b
+         `-- CVS
+
+     3 directories
+     $ cvs remove -f a
+     cvs remove: Removing a
+     cvs remove: Removing a/b
+     cvs remove: scheduling `a/b/c' for removal
+     cvs remove: use 'cvs commit' to remove this file permanently
+
+A.19 update--Bring work tree in sync with repository
+====================================================
+
+   * update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r
+     tag|-D date] [-W spec] files...
+   * Requires: repository, working directory.
+   * Changes: working directory.
+
+   After you've run checkout to create your private copy of source from
+the common repository, other developers will continue changing the
+central source.  From time to time, when it is convenient in your
+development process, you can use the 'update' command from within your
+working directory to reconcile your work with any revisions applied to
+the source repository since your last checkout or update.
+
+A.19.1 update options
+---------------------
+
+These standard options are available with 'update' (*note Common
+options:: for a complete description of them):
+
+'-D date'
+     Use the most recent revision no later than DATE.  This option is
+     sticky, and implies '-P'.  See *note Sticky tags:: for more
+     information on sticky tags/dates.
+
+'-f'
+     Only useful with the '-D DATE' or '-r TAG' flags.  If no matching
+     revision is found, retrieve the most recent revision (instead of
+     ignoring the file).
+
+'-k KFLAG'
+     Process keywords according to KFLAG.  See *note Keyword
+     substitution::.  This option is sticky; future updates of this file
+     in this working directory will use the same KFLAG.  The 'status'
+     command can be viewed to see the sticky options.  See *note
+     Invoking CVS:: for more information on the 'status' command.
+
+'-l'
+     Local; run only in current working directory.  See *note Recursive
+     behavior::.
+
+'-P'
+     Prune empty directories.  See *note Moving directories::.
+
+'-p'
+     Pipe files to the standard output.
+
+'-R'
+     Update directories recursively (default).  See *note Recursive
+     behavior::.
+
+'-r rev'
+     Retrieve revision/tag REV.  This option is sticky, and implies
+     '-P'.  See *note Sticky tags::, for more information on sticky
+     tags/dates.
+
+   These special options are also available with 'update'.
+
+'-A'
+     Reset any sticky tags, dates, or '-k' options.  Does not reset
+     sticky '-k' options on modified files.  See *note Sticky tags:: for
+     more information on sticky tags/dates.
+
+'-C'
+     Overwrite locally modified files with clean copies from the
+     repository (the modified file is saved in '.#FILE.REVISION',
+     however).
+
+'-d'
+     Create any directories that exist in the repository if they're
+     missing from the working directory.  Normally, 'update' acts only
+     on directories and files that were already enrolled in your working
+     directory.
+
+     This is useful for updating directories that were created in the
+     repository since the initial checkout; but it has an unfortunate
+     side effect.  If you deliberately avoided certain directories in
+     the repository when you created your working directory (either
+     through use of a module name or by listing explicitly the files and
+     directories you wanted on the command line), then updating with
+     '-d' will create those directories, which may not be what you want.
+
+'-I NAME'
+     Ignore files whose names match NAME (in your working directory)
+     during the update.  You can specify '-I' more than once on the
+     command line to specify several files to ignore.  Use '-I !' to
+     avoid ignoring any files at all.  See *note cvsignore:: for other
+     ways to make CVS ignore some files.
+
+'-WSPEC'
+     Specify file names that should be filtered during update.  You can
+     use this option repeatedly.
+
+     SPEC can be a file name pattern of the same type that you can
+     specify in the '.cvswrappers' file.  See *note Wrappers::.
+
+'-jREVISION'
+     With two '-j' options, merge changes from the revision specified
+     with the first '-j' option to the revision specified with the
+     second 'j' option, into the working directory.
+
+     With one '-j' option, merge changes from the ancestor revision to
+     the revision specified with the '-j' option, into the working
+     directory.  The ancestor revision is the common ancestor of the
+     revision which the working directory is based on, and the revision
+     specified in the '-j' option.
+
+     Note that using a single '-j TAGNAME' option rather than '-j
+     BRANCHNAME' to merge changes from a branch will often not remove
+     files which were removed on the branch.  See *note Merging adds and
+     removals:: for more information.
+
+     In addition, each '-j' option can contain an optional date
+     specification which, when used with branches, can limit the chosen
+     revision to one within a specific date.  An optional date is
+     specified by adding a colon (:) to the tag:
+     '-jSYMBOLIC_TAG:DATE_SPECIFIER'.
+
+     See *note Branching and merging::.
+
+A.19.2 update output
+--------------------
+
+'update' and 'checkout' keep you informed of their progress by printing
+a line for each file, preceded by one character indicating the status of
+the file:
+
+'U FILE'
+     The file was brought up to date with respect to the repository.
+     This is done for any file that exists in the repository but not in
+     your working directory, and for files that you haven't changed but
+     are not the most recent versions available in the repository.
+
+'P FILE'
+     Like 'U', but the CVS server sends a patch instead of an entire
+     file.  This accomplishes the same thing as 'U' using less
+     bandwidth.
+
+'A FILE'
+     The file has been added to your private copy of the sources, and
+     will be added to the source repository when you run 'commit' on the
+     file.  This is a reminder to you that the file needs to be
+     committed.
+
+'R FILE'
+     The file has been removed from your private copy of the sources,
+     and will be removed from the source repository when you run
+     'commit' on the file.  This is a reminder to you that the file
+     needs to be committed.
+
+'M FILE'
+     The file is modified in your working directory.
+
+     'M' can indicate one of two states for a file you're working on:
+     either there were no modifications to the same file in the
+     repository, so that your file remains as you last saw it; or there
+     were modifications in the repository as well as in your copy, but
+     they were merged successfully, without conflict, in your working
+     directory.
+
+     CVS will print some messages if it merges your work, and a backup
+     copy of your working file (as it looked before you ran 'update')
+     will be made.  The exact name of that file is printed while
+     'update' runs.
+
+'C FILE'
+     A conflict was detected while trying to merge your changes to FILE
+     with changes from the source repository.  FILE (the copy in your
+     working directory) is now the result of attempting to merge the two
+     revisions; an unmodified copy of your file is also in your working
+     directory, with the name '.#FILE.REVISION' where REVISION is the
+     revision that your modified file started from.  Resolve the
+     conflict as described in *note Conflicts example::.  (Note that
+     some systems automatically purge files that begin with '.#' if they
+     have not been accessed for a few days.  If you intend to keep a
+     copy of your original file, it is a very good idea to rename it.)
+     Under VMS, the file name starts with '__' rather than '.#'.
+
+'? FILE'
+     FILE is in your working directory, but does not correspond to
+     anything in the source repository, and is not in the list of files
+     for CVS to ignore (see the description of the '-I' option, and
+     *note cvsignore::).
+
+Appendix B Quick reference to CVS commands
+******************************************
+
+This appendix describes how to invoke CVS, with references to where each
+command or feature is described in detail.  For other references run the
+'cvs --help' command, or see *note Index::.
+
+   A CVS command looks like:
+
+     cvs [ GLOBAL_OPTIONS ] COMMAND [ COMMAND_OPTIONS ] [ COMMAND_ARGS ]
+
+   Global options:
+
+'--allow-root=ROOTDIR'
+     Specify legal CVSROOT directory (server only) (not in CVS 1.9 and
+     older).  See *note Password authentication server::.
+
+'-a'
+     Authenticate all communication (client only) (not in CVS 1.9 and
+     older).  See *note Global options::.
+
+'-b'
+     Specify RCS location (CVS 1.9 and older).  See *note Global
+     options::.
+
+'-d ROOT'
+     Specify the CVSROOT.  See *note Repository::.
+
+'-e EDITOR'
+     Edit messages with EDITOR.  See *note Committing your changes::.
+
+'-f'
+     Do not read the '~/.cvsrc' file.  See *note Global options::.
+
+'-H'
+'--help'
+     Print a help message.  See *note Global options::.
+
+'-n'
+     Do not change any files.  See *note Global options::.
+
+'-Q'
+     Be really quiet.  See *note Global options::.
+
+'-q'
+     Be somewhat quiet.  See *note Global options::.
+
+'-r'
+     Make new working files read-only.  See *note Global options::.
+
+'-s VARIABLE=VALUE'
+     Set a user variable.  See *note Variables::.
+
+'-T TEMPDIR'
+     Put temporary files in TEMPDIR.  See *note Global options::.
+
+'-t'
+     Trace CVS execution.  See *note Global options::.
+
+'-v'
+'--version'
+     Display version and copyright information for CVS.
+
+'-w'
+     Make new working files read-write.  See *note Global options::.
+
+'-x'
+     Encrypt all communication (client only).  See *note Global
+     options::.
+
+'-z GZIP-LEVEL'
+     Set the compression level (client only).  See *note Global
+     options::.
+
+   Keyword expansion modes (*note Substitution modes::):
+
+     -kkv  $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $
+     -kkvl $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $
+     -kk   $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $
+     -kv   file1,v 1.1 1993/12/09 03:21:13 joe Exp
+     -ko   no expansion
+     -kb   no expansion, file is binary
+
+   Keywords (*note Keyword list::):
+
+     $Author: ineiev $
+     $Date: 2015/12/28 15:57:44 $
+     $Header: /web/trans-coord/trans-coord/manual/cvs/cvs.txt,v 1.1 2015/12/28 
15:57:44 ineiev Exp $
+     $Id: cvs.txt,v 1.1 2015/12/28 15:57:44 ineiev Exp $
+     $Locker:  $
+     $Name:  $
+     $RCSfile: cvs.txt,v $
+     $Revision: 1.1 $
+     $Source: /web/trans-coord/trans-coord/manual/cvs/cvs.txt,v $
+     $State: Exp $
+     $Log: cvs.txt,v $
+     Revision 1.1  2015/12/28 15:57:44  ineiev
+     Add cvs manual RT #1073518.
+
+     Revision 1.1  1993/12/09 03:30:17  joe
+     Initial revision
+
+
+   Commands, command options, and command arguments:
+
+'add [OPTIONS] [FILES...]'
+     Add a new file/directory.  See *note Adding files::.
+
+     '-k KFLAG'
+          Set keyword expansion.
+
+     '-m MSG'
+          Set file description.
+
+'admin [OPTIONS] [FILES...]'
+     Administration of history files in the repository.  See *note
+     admin::.
+
+     '-b[REV]'
+          Set default branch.  See *note Reverting local changes::.
+
+     '-cSTRING'
+          Set comment leader.
+
+     '-kSUBST'
+          Set keyword substitution.  See *note Keyword substitution::.
+
+     '-l[REV]'
+          Lock revision REV, or latest revision.
+
+     '-mREV:MSG'
+          Replace the log message of revision REV with MSG.
+
+     '-oRANGE'
+          Delete revisions from the repository.  See *note admin
+          options::.
+
+     '-q'
+          Run quietly; do not print diagnostics.
+
+     '-sSTATE[:REV]'
+          Set the state.  See *note admin options:: for more information
+          on possible states.
+
+     '-t'
+          Set file description from standard input.
+
+     '-tFILE'
+          Set file description from FILE.
+
+     '-t-STRING'
+          Set file description to STRING.
+
+     '-u[REV]'
+          Unlock revision REV, or latest revision.
+
+'annotate [OPTIONS] [FILES...]'
+     Show last revision where each line was modified.  See *note
+     annotate::.
+
+     '-D DATE'
+          Annotate the most recent revision no later than DATE.  See
+          *note Common options::.
+
+     '-F'
+          Force annotation of binary files.  (Without this option,
+          binary files are skipped with a message.)
+
+     '-f'
+          Use head revision if tag/date not found.  See *note Common
+          options::.
+
+     '-l'
+          Local; run only in current working directory.  *Note Recursive
+          behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r TAG'
+          Annotate revision TAG.  See *note Common options::.
+
+'checkout [OPTIONS] MODULES...'
+     Get a copy of the sources.  See *note checkout::.
+
+     '-A'
+          Reset any sticky tags/date/options.  See *note Sticky tags::
+          and *note Keyword substitution::.
+
+     '-c'
+          Output the module database.  See *note checkout options::.
+
+     '-D DATE'
+          Check out revisions as of DATE (is sticky).  See *note Common
+          options::.
+
+     '-d DIR'
+          Check out into DIR.  See *note checkout options::.
+
+     '-f'
+          Use head revision if tag/date not found.  See *note Common
+          options::.
+
+     '-j REV'
+          Merge in changes.  See *note checkout options::.
+
+     '-k KFLAG'
+          Use KFLAG keyword expansion.  See *note Substitution modes::.
+
+     '-l'
+          Local; run only in current working directory.  *Note Recursive
+          behavior::.
+
+     '-N'
+          Don't "shorten" module paths if -d specified.  See *note
+          checkout options::.
+
+     '-n'
+          Do not run module program (if any).  See *note checkout
+          options::.
+
+     '-P'
+          Prune empty directories.  See *note Moving directories::.
+
+     '-p'
+          Check out files to standard output (avoids stickiness).  See
+          *note checkout options::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r TAG'
+          Checkout revision TAG (is sticky).  See *note Common
+          options::.
+
+     '-s'
+          Like -c, but include module status.  See *note checkout
+          options::.
+
+'commit [OPTIONS] [FILES...]'
+     Check changes into the repository.  See *note commit::.
+
+     '-F FILE'
+          Read log message from FILE.  See *note commit options::.
+
+     '-f'
+          Force the file to be committed; disables recursion.  See *note
+          commit options::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-m MSG'
+          Use MSG as log message.  See *note commit options::.
+
+     '-n'
+          Do not run module program (if any).  See *note commit
+          options::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r REV'
+          Commit to REV.  See *note commit options::.
+
+'diff [OPTIONS] [FILES...]'
+     Show differences between revisions.  See *note diff::.  In addition
+     to the options shown below, accepts a wide variety of options to
+     control output style, for example '-c' for context diffs.
+
+     '-D DATE1'
+          Diff revision for date against working file.  See *note diff
+          options::.
+
+     '-D DATE2'
+          Diff REV1/DATE1 against DATE2.  See *note diff options::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-N'
+          Include diffs for added and removed files.  See *note diff
+          options::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r REV1'
+          Diff revision for REV1 against working file.  See *note diff
+          options::.
+
+     '-r REV2'
+          Diff REV1/DATE1 against REV2.  See *note diff options::.
+
+'edit [OPTIONS] [FILES...]'
+     Get ready to edit a watched file.  See *note Editing files::.
+
+     '-a ACTIONS'
+          Specify actions for temporary watch, where ACTIONS is 'edit',
+          'unedit', 'commit', 'all', or 'none'.  See *note Editing
+          files::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+'editors [OPTIONS] [FILES...]'
+     See who is editing a watched file.  See *note Watch information::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+'export [OPTIONS] MODULES...'
+     Export files from CVS.  See *note export::.
+
+     '-D DATE'
+          Check out revisions as of DATE.  See *note Common options::.
+
+     '-d DIR'
+          Check out into DIR.  See *note export options::.
+
+     '-f'
+          Use head revision if tag/date not found.  See *note Common
+          options::.
+
+     '-k KFLAG'
+          Use KFLAG keyword expansion.  See *note Substitution modes::.
+
+     '-l'
+          Local; run only in current working directory.  *Note Recursive
+          behavior::.
+
+     '-N'
+          Don't "shorten" module paths if -d specified.  See *note
+          export options::.
+
+     '-n'
+          Do not run module program (if any).  See *note export
+          options::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r TAG'
+          Checkout revision TAG.  See *note Common options::.
+
+'history [OPTIONS] [FILES...]'
+     Show repository access history.  See *note history::.
+
+     '-a'
+          All users (default is self).  See *note history options::.
+
+     '-b STR'
+          Back to record with STR in module/file/repos field.  See *note
+          history options::.
+
+     '-c'
+          Report on committed (modified) files.  See *note history
+          options::.
+
+     '-D DATE'
+          Since DATE.  See *note history options::.
+
+     '-e'
+          Report on all record types.  See *note history options::.
+
+     '-l'
+          Last modified (committed or modified report).  See *note
+          history options::.
+
+     '-m MODULE'
+          Report on MODULE (repeatable).  See *note history options::.
+
+     '-n MODULE'
+          In MODULE.  See *note history options::.
+
+     '-o'
+          Report on checked out modules.  See *note history options::.
+
+     '-p REPOSITORY'
+          In REPOSITORY.  See *note history options::.
+
+     '-r REV'
+          Since revision REV.  See *note history options::.
+
+     '-T'
+          Produce report on all TAGs.  See *note history options::.
+
+     '-t TAG'
+          Since tag record placed in history file (by anyone).  See
+          *note history options::.
+
+     '-u USER'
+          For user USER (repeatable).  See *note history options::.
+
+     '-w'
+          Working directory must match.  See *note history options::.
+
+     '-x TYPES'
+          Report on TYPES, one or more of 'TOEFWUPCGMAR'.  See *note
+          history options::.
+
+     '-z ZONE'
+          Output for time zone ZONE.  See *note history options::.
+
+'import [OPTIONS] REPOSITORY VENDOR-TAG RELEASE-TAGS...'
+     Import files into CVS, using vendor branches.  See *note import::.
+
+     '-b BRA'
+          Import to vendor branch BRA.  See *note Multiple vendor
+          branches::.
+
+     '-d'
+          Use the file's modification time as the time of import.  See
+          *note import options::.
+
+     '-k KFLAG'
+          Set default keyword substitution mode.  See *note import
+          options::.
+
+     '-m MSG'
+          Use MSG for log message.  See *note import options::.
+
+     '-I IGN'
+          More files to ignore (!  to reset).  See *note import
+          options::.
+
+     '-W SPEC'
+          More wrappers.  See *note import options::.
+
+'init'
+     Create a CVS repository if it doesn't exist.  See *note Creating a
+     repository::.
+
+'kserver'
+     Kerberos authenticated server.  See *note Kerberos authenticated::.
+
+'log [OPTIONS] [FILES...]'
+     Print out history information for files.  See *note log::.
+
+     '-b'
+          Only list revisions on the default branch.  See *note log
+          options::.
+
+     '-d DATES'
+          Specify dates (D1<D2 for range, D for latest before).  See
+          *note log options::.
+
+     '-h'
+          Only print header.  See *note log options::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-N'
+          Do not list tags.  See *note log options::.
+
+     '-R'
+          Only print name of RCS file.  See *note log options::.
+
+     '-rREVS'
+          Only list revisions REVS.  See *note log options::.
+
+     '-s STATES'
+          Only list revisions with specified states.  See *note log
+          options::.
+
+     '-t'
+          Only print header and descriptive text.  See *note log
+          options::.
+
+     '-wLOGINS'
+          Only list revisions checked in by specified logins.  See *note
+          log options::.
+
+'login'
+     Prompt for password for authenticating server.  See *note Password
+     authentication client::.
+
+'logout'
+     Remove stored password for authenticating server.  See *note
+     Password authentication client::.
+
+'pserver'
+     Password authenticated server.  See *note Password authentication
+     server::.
+
+'rannotate [OPTIONS] [MODULES...]'
+     Show last revision where each line was modified.  See *note
+     annotate::.
+
+     '-D DATE'
+          Annotate the most recent revision no later than DATE.  See
+          *note Common options::.
+
+     '-F'
+          Force annotation of binary files.  (Without this option,
+          binary files are skipped with a message.)
+
+     '-f'
+          Use head revision if tag/date not found.  See *note Common
+          options::.
+
+     '-l'
+          Local; run only in current working directory.  *Note Recursive
+          behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r TAG'
+          Annotate revision TAG.  See *note Common options::.
+
+'rdiff [OPTIONS] MODULES...'
+     Show differences between releases.  See *note rdiff::.
+
+     '-c'
+          Context diff output format (default).  See *note rdiff
+          options::.
+
+     '-D DATE'
+          Select revisions based on DATE.  See *note Common options::.
+
+     '-f'
+          Use head revision if tag/date not found.  See *note Common
+          options::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r REV'
+          Select revisions based on REV.  See *note Common options::.
+
+     '-s'
+          Short patch - one liner per file.  See *note rdiff options::.
+
+     '-t'
+          Top two diffs - last change made to the file.  See *note diff
+          options::.
+
+     '-u'
+          Unidiff output format.  See *note rdiff options::.
+
+     '-V VERS'
+          Use RCS Version VERS for keyword expansion (obsolete).  See
+          *note rdiff options::.
+
+'release [OPTIONS] DIRECTORY'
+     Indicate that a directory is no longer in use.  See *note
+     release::.
+
+     '-d'
+          Delete the given directory.  See *note release options::.
+
+'remove [OPTIONS] [FILES...]'
+     Remove an entry from the repository.  See *note Removing files::.
+
+     '-f'
+          Delete the file before removing it.  See *note Removing
+          files::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+'rlog [OPTIONS] [FILES...]'
+     Print out history information for modules.  See *note log::.
+
+     '-b'
+          Only list revisions on the default branch.  See *note log
+          options::.
+
+     '-d DATES'
+          Specify dates (D1<D2 for range, D for latest before).  See
+          *note log options::.
+
+     '-h'
+          Only print header.  See *note log options::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-N'
+          Do not list tags.  See *note log options::.
+
+     '-R'
+          Only print name of RCS file.  See *note log options::.
+
+     '-rREVS'
+          Only list revisions REVS.  See *note log options::.
+
+     '-s STATES'
+          Only list revisions with specified states.  See *note log
+          options::.
+
+     '-t'
+          Only print header and descriptive text.  See *note log
+          options::.
+
+     '-wLOGINS'
+          Only list revisions checked in by specified logins.  See *note
+          log options::.
+
+'rtag [OPTIONS] TAG MODULES...'
+     Add a symbolic tag to a module.  See *note Revisions:: and *note
+     Branching and merging::.
+
+     '-a'
+          Clear tag from removed files that would not otherwise be
+          tagged.  See *note Tagging add/remove::.
+
+     '-b'
+          Create a branch named TAG.  See *note Branching and merging::.
+
+     '-B'
+          Used in conjunction with -F or -d, enables movement and
+          deletion of branch tags.  Use with extreme caution.
+
+     '-D DATE'
+          Tag revisions as of DATE.  See *note Tagging by date/tag::.
+
+     '-d'
+          Delete TAG.  See *note Modifying tags::.
+
+     '-F'
+          Move TAG if it already exists.  See *note Modifying tags::.
+
+     '-f'
+          Force a head revision match if tag/date not found.  See *note
+          Tagging by date/tag::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-n'
+          No execution of tag program.  See *note Common options::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r REV'
+          Tag existing tag REV.  See *note Tagging by date/tag::.
+
+'server'
+     Rsh server.  See *note Connecting via rsh::.
+
+'status [OPTIONS] FILES...'
+     Display status information in a working directory.  See *note File
+     status::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-v'
+          Include tag information for file.  See *note Tags::.
+
+'tag [OPTIONS] TAG [FILES...]'
+     Add a symbolic tag to checked out version of files.  See *note
+     Revisions:: and *note Branching and merging::.
+
+     '-b'
+          Create a branch named TAG.  See *note Branching and merging::.
+
+     '-c'
+          Check that working files are unmodified.  See *note Tagging
+          the working directory::.
+
+     '-D DATE'
+          Tag revisions as of DATE.  See *note Tagging by date/tag::.
+
+     '-d'
+          Delete TAG.  See *note Modifying tags::.
+
+     '-F'
+          Move TAG if it already exists.  See *note Modifying tags::.
+
+     '-f'
+          Force a head revision match if tag/date not found.  See *note
+          Tagging by date/tag::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r REV'
+          Tag existing tag REV.  See *note Tagging by date/tag::.
+
+'unedit [OPTIONS] [FILES...]'
+     Undo an edit command.  See *note Editing files::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+'update [OPTIONS] [FILES...]'
+     Bring work tree in sync with repository.  See *note update::.
+
+     '-A'
+          Reset any sticky tags/date/options.  See *note Sticky tags::
+          and *note Keyword substitution::.
+
+     '-C'
+          Overwrite locally modified files with clean copies from the
+          repository (the modified file is saved in '.#FILE.REVISION',
+          however).
+
+     '-D DATE'
+          Check out revisions as of DATE (is sticky).  See *note Common
+          options::.
+
+     '-d'
+          Create directories.  See *note update options::.
+
+     '-f'
+          Use head revision if tag/date not found.  See *note Common
+          options::.
+
+     '-I IGN'
+          More files to ignore (!  to reset).  See *note import
+          options::.
+
+     '-j REV'
+          Merge in changes.  See *note update options::.
+
+     '-k KFLAG'
+          Use KFLAG keyword expansion.  See *note Substitution modes::.
+
+     '-l'
+          Local; run only in current working directory.  *Note Recursive
+          behavior::.
+
+     '-P'
+          Prune empty directories.  See *note Moving directories::.
+
+     '-p'
+          Check out files to standard output (avoids stickiness).  See
+          *note update options::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+     '-r TAG'
+          Checkout revision TAG (is sticky).  See *note Common
+          options::.
+
+     '-W SPEC'
+          More wrappers.  See *note import options::.
+
+'version'
+
+     Display the version of CVS being used.  If the repository is
+     remote, display both the client and server versions.
+
+'watch [on|off|add|remove] [OPTIONS] [FILES...]'
+
+     on/off: turn on/off read-only checkouts of files.  See *note
+     Setting a watch::.
+
+     add/remove: add or remove notification on actions.  See *note
+     Getting Notified::.
+
+     '-a ACTIONS'
+          Specify actions for temporary watch, where ACTIONS is 'edit',
+          'unedit', 'commit', 'all', or 'none'.  See *note Editing
+          files::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+'watchers [OPTIONS] [FILES...]'
+     See who is watching a file.  See *note Watch information::.
+
+     '-l'
+          Local; run only in current working directory.  See *note
+          Recursive behavior::.
+
+     '-R'
+          Operate recursively (default).  *Note Recursive behavior::.
+
+Appendix C Reference manual for Administrative files
+****************************************************
+
+Inside the repository, in the directory '$CVSROOT/CVSROOT', there are a
+number of supportive files for CVS.  You can use CVS in a limited
+fashion without any of them, but if they are set up properly they can
+help make life easier.  For a discussion of how to edit them, see *note
+Intro administrative files::.
+
+   The most important of these files is the 'modules' file, which
+defines the modules inside the repository.
+
+C.1 The modules file
+====================
+
+The 'modules' file records your definitions of names for collections of
+source code.  CVS will use these definitions if you use CVS to update
+the modules file (use normal commands like 'add', 'commit', etc).
+
+   The 'modules' file may contain blank lines and comments (lines
+beginning with '#') as well as module definitions.  Long lines can be
+continued on the next line by specifying a backslash ('\') as the last
+character on the line.
+
+   There are three basic types of modules: alias modules, regular
+modules, and ampersand modules.  The difference between them is the way
+that they map files in the repository to files in the working directory.
+In all of the following examples, the top-level repository contains a
+directory called 'first-dir', which contains two files, 'file1' and
+'file2', and a directory 'sdir'.  'first-dir/sdir' contains a file
+'sfile'.
+
+C.1.1 Alias modules
+-------------------
+
+Alias modules are the simplest kind of module:
+
+'MNAME -a ALIASES...'
+     This represents the simplest way of defining a module MNAME.  The
+     '-a' flags the definition as a simple alias: CVS will treat any use
+     of MNAME (as a command argument) as if the list of names ALIASES
+     had been specified instead.  ALIASES may contain either other
+     module names or paths.  When you use paths in aliases, 'checkout'
+     creates all intermediate directories in the working directory, just
+     as if the path had been specified explicitly in the CVS arguments.
+
+   For example, if the modules file contains:
+
+     amodule -a first-dir
+
+then the following two commands are equivalent:
+
+     $ cvs co amodule
+     $ cvs co first-dir
+
+and they each would provide output such as:
+
+     cvs checkout: Updating first-dir
+     U first-dir/file1
+     U first-dir/file2
+     cvs checkout: Updating first-dir/sdir
+     U first-dir/sdir/sfile
+
+C.1.2 Regular modules
+---------------------
+
+'MNAME [ options ] DIR [ FILES... ]'
+     In the simplest case, this form of module definition reduces to
+     'MNAME DIR'.  This defines all the files in directory DIR as module
+     mname.  DIR is a relative path (from '$CVSROOT') to a directory of
+     source in the source repository.  In this case, on checkout, a
+     single directory called MNAME is created as a working directory; no
+     intermediate directory levels are used by default, even if DIR was
+     a path involving several directory levels.
+
+   For example, if a module is defined by:
+
+     regmodule first-dir
+
+then regmodule will contain the files from first-dir:
+
+     $ cvs co regmodule
+     cvs checkout: Updating regmodule
+     U regmodule/file1
+     U regmodule/file2
+     cvs checkout: Updating regmodule/sdir
+     U regmodule/sdir/sfile
+     $
+
+   By explicitly specifying files in the module definition after DIR,
+you can select particular files from directory DIR.  Here is an example:
+
+     regfiles first-dir/sdir sfile
+
+With this definition, getting the regfiles module will create a single
+working directory 'regfiles' containing the file listed, which comes
+from a directory deeper in the CVS source repository:
+
+     $ cvs co regfiles
+     U regfiles/sfile
+     $
+
+C.1.3 Ampersand modules
+-----------------------
+
+A module definition can refer to other modules by including '&MODULE' in
+its definition.
+     MNAME [ options ] &MODULE...
+
+   Then getting the module creates a subdirectory for each such module,
+in the directory containing the module.  For example, if modules
+contains
+
+     ampermod &first-dir
+
+then a checkout will create an 'ampermod' directory which contains a
+directory called 'first-dir', which in turns contains all the
+directories and files which live there.  For example, the command
+
+     $ cvs co ampermod
+
+will create the following files:
+
+     ampermod/first-dir/file1
+     ampermod/first-dir/file2
+     ampermod/first-dir/sdir/sfile
+
+   There is one quirk/bug: the messages that CVS prints omit the
+'ampermod', and thus do not correctly display the location to which it
+is checking out the files:
+
+     $ cvs co ampermod
+     cvs checkout: Updating first-dir
+     U first-dir/file1
+     U first-dir/file2
+     cvs checkout: Updating first-dir/sdir
+     U first-dir/sdir/sfile
+     $
+
+   Do not rely on this buggy behavior; it may get fixed in a future
+release of CVS.
+
+C.1.4 Excluding directories
+---------------------------
+
+An alias module may exclude particular directories from other modules by
+using an exclamation mark ('!') before the name of each directory to be
+excluded.
+
+   For example, if the modules file contains:
+
+     exmodule -a !first-dir/sdir first-dir
+
+then checking out the module 'exmodule' will check out everything in
+'first-dir' except any files in the subdirectory 'first-dir/sdir'.
+
+C.1.5 Module options
+--------------------
+
+Either regular modules or ampersand modules can contain options, which
+supply additional information concerning the module.
+
+'-d NAME'
+     Name the working directory something other than the module name.
+
+'-e PROG'
+     Specify a program PROG to run whenever files in a module are
+     exported.  PROG runs with a single argument, the module name.
+
+'-o PROG'
+     Specify a program PROG to run whenever files in a module are
+     checked out.  PROG runs with a single argument, the module name.
+     See *note Module program options:: for information on how PROG is
+     called.
+
+'-s STATUS'
+     Assign a status to the module.  When the module file is printed
+     with 'cvs checkout -s' the modules are sorted according to
+     primarily module status, and secondarily according to the module
+     name.  This option has no other meaning.  You can use this option
+     for several things besides status: for instance, list the person
+     that is responsible for this module.
+
+'-t PROG'
+     Specify a program PROG to run whenever files in a module are tagged
+     with 'rtag'.  PROG runs with two arguments: the module name and the
+     symbolic tag specified to 'rtag'.  It is not run when 'tag' is
+     executed.  Generally you will find that the 'taginfo' file is a
+     better solution (*note taginfo::).
+
+   You should also see *note Module program options:: about how the
+"program options" programs are run.
+
+C.1.6 How the modules file "program options" programs are run
+-------------------------------------------------------------
+
+For checkout, rtag, and export, the program is server-based, and as such
+the following applies:-
+
+   If using remote access methods (pserver, ext, etc.), CVS will execute
+this program on the server from a temporary directory.  The path is
+searched for this program.
+
+   If using "local access" (on a local or remote NFS file system, i.e.,
+repository set just to a path), the program will be executed from the
+newly checked-out tree, if found there, or alternatively searched for in
+the path if not.
+
+   The programs are all run after the operation has effectively
+completed.
+
+C.2 The cvswrappers file
+========================
+
+Wrappers refers to a CVS feature which lets you control certain settings
+based on the name of the file which is being operated on.  The settings
+are '-k' for binary files, and '-m' for nonmergeable text files.
+
+   The '-m' option specifies the merge methodology that should be used
+when a non-binary file is updated.  'MERGE' means the usual CVS
+behavior: try to merge the files.  'COPY' means that 'cvs update' will
+refuse to merge files, as it also does for files specified as binary
+with '-kb' (but if the file is specified as binary, there is no need to
+specify '-m 'COPY'').  CVS will provide the user with the two versions
+of the files, and require the user using mechanisms outside CVS, to
+insert any necessary changes.
+
+   *WARNING: Do not use 'COPY' with CVS 1.9 or earlier - such versions
+of CVS will copy one version of your file over the other, wiping out the
+previous contents.*  The '-m' wrapper option only affects behavior when
+merging is done on update; it does not affect how files are stored.  See
+*note Binary files::, for more on binary files.
+
+   The basic format of the file 'cvswrappers' is:
+
+     wildcard     [option value][option value]...
+
+     where option is one of
+     -m           update methodology      value: MERGE or COPY
+     -k           keyword expansion       value: expansion mode
+
+     and value is a single-quote delimited value.
+
+   For example, the following command imports a directory, treating
+files whose name ends in '.exe' as binary:
+
+     cvs import -I ! -W "*.exe -k 'b'" first-dir vendortag reltag
+
+C.3 The Trigger Scripts
+=======================
+
+Several of the administrative files support triggers, or the launching
+external scripts or programs at specific times before or after
+particular events.  The individual files are discussed in the later
+sections, *note commit files:: and *note taginfo::, but some of the
+common elements are discussed here.
+
+   All the trigger scripts are launched in a copy of the user sandbox
+being committed, on the server, in client-server mode.  In local mode,
+the scripts are actually launched directly from the user sandbox
+directory being committed.  For most intents and purposes, the same
+scripts can be run in both locations without alteration.
+
+C.3.1 The common syntax
+-----------------------
+
+The administrative files such as 'commitinfo', 'loginfo', 'rcsinfo',
+'verifymsg', etc., all have a common format.  The purpose of the files
+are described later on.  The common syntax is described here.
+
+   Each line contains the following:
+   * A regular expression.  This is a basic regular expression in the
+     syntax used by GNU emacs.
+
+   * A whitespace separator--one or more spaces and/or tabs.
+
+   * A file name or command-line template.
+
+Blank lines are ignored.  Lines that start with the character '#' are
+treated as comments.  Long lines unfortunately can _not_ be broken in
+two parts in any way.
+
+   The first regular expression that matches the current directory name
+in the repository is used.  The rest of the line is used as a file name
+or command-line as appropriate.
+
+C.3.2 Security and the Trigger Scripts
+--------------------------------------
+
+Security is a huge subject, and implementing a secure system is a
+non-trivial task.  This section will barely touch on all the issues
+involved, but it is well to note that, as with any script you will be
+allowing an untrusted user to run on your server, there are measures you
+can take to help prevent your trigger scripts from being abused.
+
+   For instance, since the CVS trigger scripts all run in a copy of the
+user's sandbox on the server, a naively coded Perl trigger script which
+attempts to use a Perl module that is not installed on the system can be
+hijacked by any user with commit access who is checking in a file with
+the correct name.  Other scripting languages may be vulnerable to
+similar hacks.
+
+   One way to make a script more secure, at least with Perl, is to use
+scripts which invoke the '-T', or "taint-check" switch on their '#!'
+line.  In the most basic terms, this causes Perl to avoid running code
+that may have come from an external source.  Please run the 'perldoc
+perlsec' command for more on Perl security.  Again, other languages may
+implement other security verification hooks which look more or less like
+Perl's "taint-check" mechanism.
+
+C.4 The commit support files
+============================
+
+There are three kinds of trigger scripts (*note Trigger Scripts::) that
+can be run at various times during a commit.  They are specified in
+files in the repository, as described below.  The following table
+summarizes the file names and the purpose of the corresponding programs.
+
+'commitinfo'
+     The program is responsible for checking that the commit is allowed.
+     If it exits with a non-zero exit status the commit will be aborted.
+
+'verifymsg'
+     The specified program is used to evaluate the log message, and
+     possibly verify that it contains all required fields.  This is most
+     useful in combination with the 'rcsinfo' file, which can hold a log
+     message template (*note rcsinfo::).
+
+'editinfo'
+     The specified program is used to edit the log message, and possibly
+     verify that it contains all required fields.  This is most useful
+     in combination with the 'rcsinfo' file, which can hold a log
+     message template (*note rcsinfo::).  (obsolete)
+
+'loginfo'
+     The specified program is called when the commit is complete.  It
+     receives the log message and some additional information and can
+     store the log message in a file, or mail it to appropriate persons,
+     or maybe post it to a local newsgroup, or... Your imagination is
+     the limit!
+
+C.4.1 Commitinfo
+----------------
+
+The 'commitinfo' file defines programs to execute whenever 'cvs commit'
+is about to execute.  These programs are used for pre-commit checking to
+verify that the modified, added and removed files are really ready to be
+committed.  This could be used, for instance, to verify that the changed
+files conform to to your site's standards for coding practice.
+
+   As mentioned earlier, each line in the 'commitinfo' file consists of
+a regular expression and a command-line template.  The template can
+include a program name and any number of arguments you wish to supply to
+it.  The full path to the current source repository is appended to the
+template, followed by the file names of any files involved in the commit
+(added, removed, and modified files).
+
+   The first line with a regular expression matching the directory
+within the repository will be used.  If the command returns a non-zero
+exit status the commit will be aborted.
+
+   If the repository name does not match any of the regular expressions
+in this file, the 'DEFAULT' line is used, if it is specified.
+
+   All occurrences of the name 'ALL' appearing as a regular expression
+are used in addition to the first matching regular expression or the
+name 'DEFAULT'.
+
+   The command will be run in the root of the workspace containing the
+new versions of any files the user would like to modify (commit), _or in
+a copy of the workspace on the server (*note Remote repositories::)_.
+If a file is being removed, there will be no copy of the file under the
+current directory.  If a file is being added, there will be no
+corresponding archive file in the repository unless the file is being
+resurrected.
+
+   Note that both the repository directory and the corresponding Attic
+(*note Attic::) directory may need to be checked to locate the archive
+file corresponding to any given file being committed.  Much of the
+information about the specific commit request being made, including the
+destination branch, commit message, and command line options specified,
+is not available to the command.
+
+C.4.2 Verifying log messages
+----------------------------
+
+Once you have entered a log message, you can evaluate that message to
+check for specific content, such as a bug ID. Use the 'verifymsg' file
+to specify a program that is used to verify the log message.  This
+program could be a simple script that checks that the entered message
+contains the required fields.
+
+   The 'verifymsg' file is often most useful together with the 'rcsinfo'
+file, which can be used to specify a log message template.
+
+   Each line in the 'verifymsg' file consists of a regular expression
+and a command-line template.  The template must include a program name,
+and can include any number of arguments.  The full path to the current
+log message template file is appended to the template.
+
+   One thing that should be noted is that the 'ALL' keyword is not
+supported.  If more than one matching line is found, the first one is
+used.  This can be useful for specifying a default verification script
+in a directory, and then overriding it in a subdirectory.
+
+   If the repository name does not match any of the regular expressions
+in this file, the 'DEFAULT' line is used, if it is specified.
+
+   If the verification script exits with a non-zero exit status, the
+commit is aborted.
+
+   In the default configuration, CVS allows the verification script to
+change the log message.  This is controlled via the RereadLogAfterVerify
+CVSROOT/config option.
+
+   When 'RereadLogAfterVerify=always' or 'RereadLogAfterVerify=stat',
+the log message will either always be reread after the verification
+script is run or reread only if the log message file status has changed.
+
+   *Note config::, for more on CVSROOT/config options.
+
+   It is NOT a good idea for a 'verifymsg' script to interact directly
+with the user in the various client/server methods.  For the 'pserver'
+method, there is no protocol support for communicating between
+'verifymsg' and the client on the remote end.  For the 'ext' and
+'server' methods, it is possible for CVS to become confused by the
+characters going along the same channel as the CVS protocol messages.
+See *note Remote repositories::, for more information on client/server
+setups.  In addition, at the time the 'verifymsg' script runs, the CVS
+server has locks in place in the repository.  If control is returned to
+the user here then other users may be stuck waiting for access to the
+repository.
+
+   This option can be useful if you find yourself using an rcstemplate
+that needs to be modified to remove empty elements or to fill in default
+values.  It can also be useful if the rcstemplate has changed in the
+repository and the CVS/Template was not updated, but is able to be
+adapted to the new format by the verification script that is run by
+'verifymsg'.
+
+   An example of an update might be to change all occurrences of
+'BugId:' to be 'DefectId:' (which can be useful if the rcstemplate has
+recently been changed and there are still checked-out user trees with
+cached copies in the CVS/Template file of the older version).
+
+   Another example of an update might be to delete a line that contains
+'BugID: none' from the log message after validation of that value as
+being allowed is made.
+
+   The following is a little silly example of a 'verifymsg' file,
+together with the corresponding 'rcsinfo' file, the log message template
+and an verification script.  We begin with the log message template.  We
+want to always record a bug-id number on the first line of the log
+message.  The rest of log message is free text.  The following template
+is found in the file '/usr/cvssupport/tc.template'.
+
+     BugId:
+
+   The script '/usr/cvssupport/bugid.verify' is used to evaluate the log
+message.
+
+     #!/bin/sh
+     #
+     #       bugid.verify filename
+     #
+     #  Verify that the log message contains a valid bugid
+     #  on the first line.
+     #
+     if sed 1q < $1 | grep '^BugId:[ ]*[0-9][0-9]*$' > /dev/null; then
+         exit 0
+     elif sed 1q < $1 | grep '^BugId:[ ]*none$' > /dev/null; then
+         # It is okay to allow commits with 'BugId: none',
+         # but do not put that text into the real log message.
+         grep -v '^BugId:[ ]*none$' > $1.rewrite
+         mv $1.rewrite $1
+         exit 0
+     else
+         echo "No BugId found."
+         exit 1
+     fi
+
+   The 'verifymsg' file contains this line:
+
+     ^tc     /usr/cvssupport/bugid.verify
+
+   The 'rcsinfo' file contains this line:
+
+     ^tc     /usr/cvssupport/tc.template
+
+   The 'config' file contains this line:
+
+     RereadLogAfterVerify=always
+
+C.4.3 Editinfo
+--------------
+
+*The 'editinfo' feature has been rendered obsolete.  To set a default
+editor for log messages use the 'CVSEDITOR', 'EDITOR' environment
+variables (*note Environment variables::) or the '-e' global option
+(*note Global options::).  See *note verifymsg::, for information on the
+use of the 'verifymsg' feature for evaluating log messages.*
+
+   If you want to make sure that all log messages look the same way, you
+can use the 'editinfo' file to specify a program that is used to edit
+the log message.  This program could be a custom-made editor that always
+enforces a certain style of the log message, or maybe a simple shell
+script that calls an editor, and checks that the entered message
+contains the required fields.
+
+   If no matching line is found in the 'editinfo' file, the editor
+specified in the environment variable '$CVSEDITOR' is used instead.  If
+that variable is not set, then the environment variable '$EDITOR' is
+used instead.  If that variable is not set a default will be used.  See
+*note Committing your changes::.
+
+   The 'editinfo' file is often most useful together with the 'rcsinfo'
+file, which can be used to specify a log message template.
+
+   Each line in the 'editinfo' file consists of a regular expression and
+a command-line template.  The template must include a program name, and
+can include any number of arguments.  The full path to the current log
+message template file is appended to the template.
+
+   One thing that should be noted is that the 'ALL' keyword is not
+supported.  If more than one matching line is found, the first one is
+used.  This can be useful for specifying a default edit script in a
+module, and then overriding it in a subdirectory.
+
+   If the repository name does not match any of the regular expressions
+in this file, the 'DEFAULT' line is used, if it is specified.
+
+   If the edit script exits with a non-zero exit status, the commit is
+aborted.
+
+   Note: when CVS is accessing a remote repository, or when the '-m' or
+'-F' options to 'cvs commit' are used, 'editinfo' will not be consulted.
+There is no good workaround for this; use 'verifymsg' instead.
+
+C.4.3.1 Editinfo example
+........................
+
+The following is a little silly example of a 'editinfo' file, together
+with the corresponding 'rcsinfo' file, the log message template and an
+editor script.  We begin with the log message template.  We want to
+always record a bug-id number on the first line of the log message.  The
+rest of log message is free text.  The following template is found in
+the file '/usr/cvssupport/tc.template'.
+
+     BugId:
+
+   The script '/usr/cvssupport/bugid.edit' is used to edit the log
+message.
+
+     #!/bin/sh
+     #
+     #       bugid.edit filename
+     #
+     #  Call $EDITOR on FILENAME, and verify that the
+     #  resulting file contains a valid bugid on the first
+     #  line.
+     if [ "x$EDITOR" = "x" ]; then EDITOR=vi; fi
+     if [ "x$CVSEDITOR" = "x" ]; then CVSEDITOR=$EDITOR; fi
+     $CVSEDITOR $1
+     until head -1|grep '^BugId:[ ]*[0-9][0-9]*$' < $1
+     do  echo -n  "No BugId found.  Edit again? ([y]/n)"
+         read ans
+         case ${ans} in
+             n*) exit 1;;
+         esac
+         $CVSEDITOR $1
+     done
+
+   The 'editinfo' file contains this line:
+
+     ^tc     /usr/cvssupport/bugid.edit
+
+   The 'rcsinfo' file contains this line:
+
+     ^tc     /usr/cvssupport/tc.template
+
+C.4.4 Loginfo
+-------------
+
+The 'loginfo' file is used to control where 'cvs commit' log information
+is sent.  The first entry on a line is a regular expression which is
+tested against the directory that the change is being made to, relative
+to the '$CVSROOT'.  If a match is found, then the remainder of the line
+is a filter program that should expect log information on its standard
+input.  Note that the filter program *must* read *all* of the log
+information or CVS may fail with a broken pipe signal.
+
+   If the repository name does not match any of the regular expressions
+in this file, the 'DEFAULT' line is used, if it is specified.
+
+   All occurrences of the name 'ALL' appearing as a regular expression
+are used in addition to the first matching regular expression or
+'DEFAULT'.
+
+   The first matching regular expression is used.
+
+   *Note commit files::, for a description of the syntax of the
+'loginfo' file.
+
+   The user may specify a format string as part of the filter.  The
+string is composed of a '%' followed by a space, or followed by a single
+format character, or followed by a set of format characters surrounded
+by '{' and '}' as separators.  The format characters are:
+
+s
+     file name
+V
+     old version number (pre-checkin)
+v
+     new version number (post-checkin)
+
+   All other characters that appear in a format string expand to an
+empty field (commas separating fields are still provided).
+
+   For example, some valid format strings are '%', '%s', '%{s}', and
+'%{sVv}'.
+
+   The output will be a space separated string of tokens enclosed in
+quotation marks (").  Any embedded dollar signs ($), backticks (`),
+backslashes (\), or quotation marks will be preceded by a backslash
+(this allows the shell to correctly parse it as a single string,
+reguardless of the characters it contains).  For backwards
+compatibility, the first token will be the repository subdirectory.  The
+rest of the tokens will be comma-delimited lists of the information
+requested in the format string.  For example, if
+'/u/src/master/yoyodyne/tc' is the repository, '%{sVv}' is the format
+string, and three files (ChangeLog, Makefile, foo.c) were modified, the
+output might be:
+
+     "yoyodyne/tc ChangeLog,1.1,1.2 Makefile,1.3,1.4 foo.c,1.12,1.13"
+
+   As another example, '%{}' means that only the name of the repository
+will be generated.
+
+   Note: when CVS is accessing a remote repository, 'loginfo' will be
+run on the _remote_ (i.e., server) side, not the client side (*note
+Remote repositories::).
+
+C.4.4.1 Loginfo example
+.......................
+
+The following 'loginfo' file, together with the tiny shell-script below,
+appends all log messages to the file '$CVSROOT/CVSROOT/commitlog', and
+any commits to the administrative files (inside the 'CVSROOT' directory)
+are also logged in '/usr/adm/cvsroot-log'.  Commits to the 'prog1'
+directory are mailed to ceder.
+
+     ALL             /usr/local/bin/cvs-log $CVSROOT/CVSROOT/commitlog $USER
+     ^CVSROOT        /usr/local/bin/cvs-log /usr/adm/cvsroot-log
+     ^prog1          Mail -s %s ceder
+
+   The shell-script '/usr/local/bin/cvs-log' looks like this:
+
+     #!/bin/sh
+     (echo "------------------------------------------------------";
+      echo -n $2"  ";
+      date;
+      echo;
+      cat) >> $1
+
+C.4.4.2 Keeping a checked out copy
+..................................
+
+It is often useful to maintain a directory tree which contains files
+which correspond to the latest version in the repository.  For example,
+other developers might want to refer to the latest sources without
+having to check them out, or you might be maintaining a web site with
+CVS and want every checkin to cause the files used by the web server to
+be updated.
+
+   The way to do this is by having loginfo invoke 'cvs update'.  Doing
+so in the naive way will cause a problem with locks, so the 'cvs update'
+must be run in the background.  Here is an example for unix (this should
+all be on one line):
+
+     ^cyclic-pages             (date; cat; (sleep 2; cd /u/www/local-docs;
+      cvs -q update -d) &) >> $CVSROOT/CVSROOT/updatelog 2>&1
+
+   This will cause checkins to repository directories starting with
+'cyclic-pages' to update the checked out tree in '/u/www/local-docs'.
+
+C.5 Rcsinfo
+===========
+
+The 'rcsinfo' file can be used to specify a form to edit when filling
+out the commit log.  The 'rcsinfo' file has a syntax similar to the
+'verifymsg', 'commitinfo' and 'loginfo' files.  *Note syntax::.  Unlike
+the other files the second part is _not_ a command-line template.
+Instead, the part after the regular expression should be a full pathname
+to a file containing the log message template.
+
+   If the repository name does not match any of the regular expressions
+in this file, the 'DEFAULT' line is used, if it is specified.
+
+   All occurrences of the name 'ALL' appearing as a regular expression
+are used in addition to the first matching regular expression or
+'DEFAULT'.
+
+   The log message template will be used as a default log message.  If
+you specify a log message with 'cvs commit -m MESSAGE' or 'cvs commit -f
+FILE' that log message will override the template.
+
+   *Note verifymsg::, for an example 'rcsinfo' file.
+
+   When CVS is accessing a remote repository, the contents of 'rcsinfo'
+at the time a directory is first checked out will specify a template
+which does not then change.  If you edit 'rcsinfo' or its templates, you
+may need to check out a new working directory.
+
+C.6 Taginfo
+===========
+
+The 'taginfo' file defines programs to execute when someone executes a
+'tag' or 'rtag' command.  The 'taginfo' file has the standard form for
+trigger scripts (*note Trigger Scripts::), where each line is a regular
+expression followed by a command to execute (*note syntax::).  The
+arguments passed to the command are, in order, the TAGNAME, OPERATION
+('add' for 'tag', 'mov' for 'tag -F', and 'del' for 'tag -d'),
+REPOSITORY, and any remaining are pairs of FILENAME REVISION.  A
+non-zero exit of the filter program will cause the tag to be aborted.
+
+   Here is an example of using the 'taginfo' file to log 'tag' and
+'rtag' commands.  In the 'taginfo' file put:
+
+     ALL /usr/local/cvsroot/CVSROOT/loggit
+
+Where '/usr/local/cvsroot/CVSROOT/loggit' contains the following script:
+
+     #!/bin/sh
+     echo "$@" >>/home/kingdon/cvsroot/CVSROOT/taglog
+
+C.7 Ignoring files via cvsignore
+================================
+
+There are certain file names that frequently occur inside your working
+copy, but that you don't want to put under CVS control.  Examples are
+all the object files that you get while you compile your sources.
+Normally, when you run 'cvs update', it prints a line for each file it
+encounters that it doesn't know about (*note update output::).
+
+   CVS has a list of files (or sh(1) file name patterns) that it should
+ignore while running 'update', 'import' and 'release'.  This list is
+constructed in the following way.
+
+   * The list is initialized to include certain file name patterns:
+     names associated with CVS administration, or with other common
+     source control systems; common names for patch files, object files,
+     archive files, and editor backup files; and other names that are
+     usually artifacts of assorted utilities.  Currently, the default
+     list of ignored file name patterns is:
+
+              RCS     SCCS    CVS     CVS.adm
+              RCSLOG  cvslog.*
+              tags    TAGS
+              .make.state     .nse_depinfo
+              *~      #*      .#*     ,*      _$*     *$
+              *.old   *.bak   *.BAK   *.orig  *.rej   .del-*
+              *.a     *.olb   *.o     *.obj   *.so    *.exe
+              *.Z     *.elc   *.ln
+              core
+
+   * The per-repository list in '$CVSROOT/CVSROOT/cvsignore' is appended
+     to the list, if that file exists.
+
+   * The per-user list in '.cvsignore' in your home directory is
+     appended to the list, if it exists.
+
+   * Any entries in the environment variable '$CVSIGNORE' is appended to
+     the list.
+
+   * Any '-I' options given to CVS is appended.
+
+   * As CVS traverses through your directories, the contents of any
+     '.cvsignore' will be appended to the list.  The patterns found in
+     '.cvsignore' are only valid for the directory that contains them,
+     not for any sub-directories.
+
+   In any of the 5 places listed above, a single exclamation mark ('!')
+clears the ignore list.  This can be used if you want to store any file
+which normally is ignored by CVS.
+
+   Specifying '-I !' to 'cvs import' will import everything, which is
+generally what you want to do if you are importing files from a pristine
+distribution or any other source which is known to not contain any
+extraneous files.  However, looking at the rules above you will see
+there is a fly in the ointment; if the distribution contains any
+'.cvsignore' files, then the patterns from those files will be processed
+even if '-I !' is specified.  The only workaround is to remove the
+'.cvsignore' files in order to do the import.  Because this is awkward,
+in the future '-I !' might be modified to override '.cvsignore' files in
+each directory.
+
+   Note that the syntax of the ignore files consists of a series of
+lines, each of which contains a space separated list of filenames.  This
+offers no clean way to specify filenames which contain spaces, but you
+can use a workaround like 'foo?bar' to match a file named 'foo bar' (it
+also matches 'fooxbar' and the like).  Also note that there is currently
+no way to specify comments.
+
+C.8 The checkoutlist file
+=========================
+
+It may be helpful to use CVS to maintain your own files in the 'CVSROOT'
+directory.  For example, suppose that you have a script 'logcommit.pl'
+which you run by including the following line in the 'commitinfo'
+administrative file:
+
+     ALL   $CVSROOT/CVSROOT/logcommit.pl
+
+   To maintain 'logcommit.pl' with CVS you would add the following line
+to the 'checkoutlist' administrative file:
+
+     logcommit.pl
+
+   The format of 'checkoutlist' is one line for each file that you want
+to maintain using CVS, giving the name of the file, followed optionally
+by more whitespace and any error message that should print if the file
+cannot be checked out into CVSROOT after a commit:
+
+     logcommit.pl      Could not update CVSROOT/logcommit.pl.
+
+   After setting up 'checkoutlist' in this fashion, the files listed
+there will function just like CVS's built-in administrative files.  For
+example, when checking in one of the files you should get a message such
+as:
+
+     cvs commit: Rebuilding administrative file database
+
+and the checked out copy in the 'CVSROOT' directory should be updated.
+
+   Note that listing 'passwd' (*note Password authentication server::)
+in 'checkoutlist' is not recommended for security reasons.
+
+   For information about keeping a checkout out copy in a more general
+context than the one provided by 'checkoutlist', see *note Keeping a
+checked out copy::.
+
+C.9 The history file
+====================
+
+The file '$CVSROOT/CVSROOT/history' is used to log information for the
+'history' command (*note history::).  This file must be created to turn
+on logging.  This is done automatically if the 'cvs init' command is
+used to set up the repository (*note Creating a repository::).
+
+   The file format of the 'history' file is documented only in comments
+in the CVS source code, but generally programs should use the 'cvs
+history' command to access it anyway, in case the format changes with
+future releases of CVS.
+
+C.10 Expansions in administrative files
+=======================================
+
+Sometimes in writing an administrative file, you might want the file to
+be able to know various things based on environment CVS is running in.
+There are several mechanisms to do that.
+
+   To find the home directory of the user running CVS (from the 'HOME'
+environment variable), use '~' followed by '/' or the end of the line.
+Likewise for the home directory of USER, use '~USER'.  These variables
+are expanded on the server machine, and don't get any reasonable
+expansion if pserver (*note Password authenticated::) is in use;
+therefore user variables (see below) may be a better choice to customize
+behavior based on the user running CVS.
+
+   One may want to know about various pieces of information internal to
+CVS.  A CVS internal variable has the syntax '${VARIABLE}', where
+VARIABLE starts with a letter and consists of alphanumeric characters
+and '_'.  If the character following VARIABLE is a non-alphanumeric
+character other than '_', the '{' and '}' can be omitted.  The CVS
+internal variables are:
+
+'CVSROOT'
+     This is the absolute path to the current CVS root directory.  *Note
+     Repository::, for a description of the various ways to specify
+     this, but note that the internal variable contains just the
+     directory and not any of the access method information.
+
+'RCSBIN'
+     In CVS 1.9.18 and older, this specified the directory where CVS was
+     looking for RCS programs.  Because CVS no longer runs RCS programs,
+     specifying this internal variable is now an error.
+
+'CVSEDITOR'
+'EDITOR'
+'VISUAL'
+     These all expand to the same value, which is the editor that CVS is
+     using.  *Note Global options::, for how to specify this.
+
+'USER'
+     Username of the user running CVS (on the CVS server machine).  When
+     using pserver, this is the user specified in the repository
+     specification which need not be the same as the username the server
+     is running as (*note Password authentication server::).  Do not
+     confuse this with the environment variable of the same name.
+
+   If you want to pass a value to the administrative files which the
+user who is running CVS can specify, use a user variable.  To expand a
+user variable, the administrative file contains '${=VARIABLE}'.  To set
+a user variable, specify the global option '-s' to CVS, with argument
+'VARIABLE=VALUE'.  It may be particularly useful to specify this option
+via '.cvsrc' (*note ~/.cvsrc::).
+
+   For example, if you want the administrative file to refer to a test
+directory you might create a user variable 'TESTDIR'.  Then if CVS is
+invoked as
+
+     cvs -s TESTDIR=/work/local/tests
+
+and the administrative file contains 'sh ${=TESTDIR}/runtests', then
+that string is expanded to 'sh /work/local/tests/runtests'.
+
+   All other strings containing '$' are reserved; there is no way to
+quote a '$' character so that '$' represents itself.
+
+   Environment variables passed to administrative files are:
+
+'CVS_USER'
+     The CVS-specific username provided by the user, if it can be
+     provided (currently just for the pserver access method), and to the
+     empty string otherwise.  ('CVS_USER' and 'USER' may differ when
+     '$CVSROOT/CVSROOT/passwd' is used to map CVS usernames to system
+     usernames.)
+
+'LOGNAME'
+     The username of the system user.
+
+'USER'
+     Same as 'LOGNAME'.  Do not confuse this with the internal variable
+     of the same name.
+
+C.11 The CVSROOT/config configuration file
+==========================================
+
+The administrative file 'config' contains various miscellaneous settings
+which affect the behavior of CVS.  The syntax is slightly different from
+the other administrative files.  Variables are not expanded.  Lines
+which start with '#' are considered comments.  Other lines consist of a
+keyword, '=', and a value.  Note that this syntax is very strict.
+Extraneous spaces or tabs are not permitted.
+
+   Currently defined keywords are:
+
+'RCSBIN=BINDIR'
+     For CVS 1.9.12 through 1.9.18, this setting told CVS to look for
+     RCS programs in the BINDIR directory.  Current versions of CVS do
+     not run RCS programs; for compatibility this setting is accepted,
+     but it does nothing.
+
+'SystemAuth=VALUE'
+     If VALUE is 'yes', then pserver should check for users in the
+     system's user database if not found in 'CVSROOT/passwd'.  If it is
+     'no', then all pserver users must exist in 'CVSROOT/passwd'.  The
+     default is 'yes'.  For more on pserver, see *note Password
+     authenticated::.
+
+'TopLevelAdmin=VALUE'
+     Modify the 'checkout' command to create a 'CVS' directory at the
+     top level of the new working directory, in addition to 'CVS'
+     directories created within checked-out directories.  The default
+     value is 'no'.
+
+     This option is useful if you find yourself performing many commands
+     at the top level of your working directory, rather than in one of
+     the checked out subdirectories.  The 'CVS' directory created there
+     will mean you don't have to specify 'CVSROOT' for each command.  It
+     also provides a place for the 'CVS/Template' file (*note Working
+     directory storage::).
+
+'LockDir=DIRECTORY'
+     Put CVS lock files in DIRECTORY rather than directly in the
+     repository.  This is useful if you want to let users read from the
+     repository while giving them write access only to DIRECTORY, not to
+     the repository.  It can also be used to put the locks on a very
+     fast in-memory file system to speed up locking and unlocking the
+     repository.  You need to create DIRECTORY, but CVS will create
+     subdirectories of DIRECTORY as it needs them.  For information on
+     CVS locks, see *note Concurrency::.
+
+     Before enabling the LockDir option, make sure that you have tracked
+     down and removed any copies of CVS 1.9 or older.  Such versions
+     neither support LockDir, nor will give an error indicating that
+     they don't support it.  The result, if this is allowed to happen,
+     is that some CVS users will put the locks one place, and others
+     will put them another place, and therefore the repository could
+     become corrupted.  CVS 1.10 does not support LockDir but it will
+     print a warning if run on a repository with LockDir enabled.
+
+'LogHistory=VALUE'
+     Control what is logged to the 'CVSROOT/history' file (*note
+     history::).  Default of 'TOEFWUPCGMAR' (or simply 'all') will log
+     all transactions.  Any subset of the default is legal.  (For
+     example, to only log transactions that modify the '*,v' files, use
+     'LogHistory=TMAR'.)
+
+'RereadLogAfterVerify=VALUE'
+     Modify the 'commit' command such that CVS will reread the log
+     message after running the program specified by 'verifymsg'.  VALUE
+     may be one of 'yes' or 'always', indicating that the log message
+     should always be reread; 'no' or 'never', indicating that it should
+     never be reread; or VALUE may be 'stat', indicating that the file
+     should be checked with the file system 'stat()' function to see if
+     it has changed (see warning below) before rereading.  The default
+     value is 'always'.
+
+     *The 'stat' mode can cause CVS to pause for up to one extra second
+     per directory committed.  This can be less IO and CPU intensive but
+     is not recommended for use with large repositories*
+
+     *Note verifymsg::, for more information on how verifymsg may be
+     used.
+
+'IgnoreUnknownConfigKeys=VALUE'
+     If VALUE is 'yes', then CVS should ignore any keywords in
+     'CVSROOT/config' which it does not recognize.  This option is
+     intended primarily for transitions between versions of CVS which
+     support more configuration options in an environment where a
+     read-only mirror of the current CVS server may be maintained by
+     someone else who is not yet ready to upgrade to the same version.
+     It is recommended that this option be used only for a short time so
+     that problems with the 'CVSROOT/config' file will be found quickly.
+     The default is 'no'.
+
+Appendix D All environment variables which affect CVS
+*****************************************************
+
+This is a complete list of all environment variables that affect CVS.
+
+'$CVSIGNORE'
+     A whitespace-separated list of file name patterns that CVS should
+     ignore.  *Note cvsignore::.
+
+'$CVSWRAPPERS'
+     A whitespace-separated list of file name patterns that CVS should
+     treat as wrappers.  *Note Wrappers::.
+
+'$CVSREAD'
+     If this is set, 'checkout' and 'update' will try hard to make the
+     files in your working directory read-only.  When this is not set,
+     the default behavior is to permit modification of your working
+     files.
+
+'$CVSUMASK'
+     Controls permissions of files in the repository.  See *note File
+     permissions::.
+
+'$CVSROOT'
+     Should contain the full pathname to the root of the CVS source
+     repository (where the RCS files are kept).  This information must
+     be available to CVS for most commands to execute; if '$CVSROOT' is
+     not set, or if you wish to override it for one invocation, you can
+     supply it on the command line: 'cvs -d cvsroot cvs_command...' Once
+     you have checked out a working directory, CVS stores the
+     appropriate root (in the file 'CVS/Root'), so normally you only
+     need to worry about this when initially checking out a working
+     directory.
+
+'$CVSEDITOR'
+'$EDITOR'
+'$VISUAL'
+     Specifies the program to use for recording log messages during
+     commit.  '$CVSEDITOR' overrides '$EDITOR', which overrides
+     '$VISUAL'.  See *note Committing your changes:: for more or *note
+     Global options:: for alternative ways of specifying a log editor.
+
+'$PATH'
+     If '$RCSBIN' is not set, and no path is compiled into CVS, it will
+     use '$PATH' to try to find all programs it uses.
+
+'$HOME'
+'$HOMEPATH'
+'$HOMEDRIVE'
+     Used to locate the directory where the '.cvsrc' file, and other
+     such files, are searched.  On Unix, CVS just checks for 'HOME'.  On
+     Windows NT, the system will set 'HOMEDRIVE', for example to 'd:'
+     and 'HOMEPATH', for example to '\joe'.  On Windows 95, you'll
+     probably need to set 'HOMEDRIVE' and 'HOMEPATH' yourself.
+
+'$CVS_RSH'
+     Specifies the external program which CVS connects with, when
+     ':ext:' access method is specified.  *note Connecting via rsh::.
+
+'$CVS_SSH'
+     Specifies the external program which CVS connects with, when
+     ':extssh:' access method is specified.  *note Connecting via rsh::.
+
+'$CVS_SERVER'
+     Used in client-server mode when accessing a remote repository using
+     RSH.  It specifies the name of the program to start on the server
+     side (and any necessary arguments) when accessing a remote
+     repository using the ':ext:', ':fork:', or ':server:' access
+     methods.  The default value for ':ext:' and ':server:' is 'cvs';
+     the default value for ':fork:' is the name used to run the client.
+     *note Connecting via rsh::
+
+'$CVS_PASSFILE'
+     Used in client-server mode when accessing the 'cvs login server'.
+     Default value is '$HOME/.cvspass'.  *note Password authentication
+     client::
+
+'$CVS_CLIENT_PORT'
+     Used in client-server mode to set the port to use when accessing
+     the server via Kerberos, GSSAPI, or CVS's password authentication
+     protocol if the port is not specified in the CVSROOT. *note Remote
+     repositories::
+
+'$CVS_RCMD_PORT'
+     Used in client-server mode.  If set, specifies the port number to
+     be used when accessing the RCMD demon on the server side.
+     (Currently not used for Unix clients).
+
+'$CVS_CLIENT_LOG'
+     Used for debugging only in client-server mode.  If set, everything
+     sent to the server is logged into '$CVS_CLIENT_LOG.in' and
+     everything sent from the server is logged into
+     '$CVS_CLIENT_LOG.out'.
+
+'$CVS_SERVER_SLEEP'
+     Used only for debugging the server side in client-server mode.  If
+     set, delays the start of the server child process the specified
+     amount of seconds so that you can attach to it with a debugger.
+
+'$CVS_IGNORE_REMOTE_ROOT'
+     For CVS 1.10 and older, setting this variable prevents CVS from
+     overwriting the 'CVS/Root' file when the '-d' global option is
+     specified.  Later versions of CVS do not rewrite 'CVS/Root', so
+     'CVS_IGNORE_REMOTE_ROOT' has no effect.
+
+'$COMSPEC'
+     Used under OS/2 only.  It specifies the name of the command
+     interpreter and defaults to CMD.EXE.
+
+'$TMPDIR'
+'$TMP'
+'$TEMP'
+     Directory in which temporary files are located.  The CVS server
+     uses 'TMPDIR'.  *Note Global options::, for a description of how to
+     specify this.  Some parts of CVS will always use '/tmp' (via the
+     'tmpnam' function provided by the system).
+
+     On Windows NT, 'TMP' is used (via the '_tempnam' function provided
+     by the system).
+
+     The 'patch' program which is used by the CVS client uses 'TMPDIR',
+     and if it is not set, uses '/tmp' (at least with GNU patch 2.1).
+     Note that if your server and client are both running CVS 1.9.10 or
+     later, CVS will not invoke an external 'patch' program.
+
+Appendix E Compatibility between CVS Versions
+*********************************************
+
+The repository format is compatible going back to CVS 1.3.  But see
+*note Watches Compatibility::, if you have copies of CVS 1.6 or older
+and you want to use the optional developer communication features.
+
+   The working directory format is compatible going back to CVS 1.5.  It
+did change between CVS 1.3 and CVS 1.5.  If you run CVS 1.5 or newer on
+a working directory checked out with CVS 1.3, CVS will convert it, but
+to go back to CVS 1.3 you need to check out a new working directory with
+CVS 1.3.
+
+   The remote protocol is interoperable going back to CVS 1.5, but no
+further (1.5 was the first official release with the remote protocol,
+but some older versions might still be floating around).  In many cases
+you need to upgrade both the client and the server to take advantage of
+new features and bug fixes, however.
+
+Appendix F Troubleshooting
+**************************
+
+If you are having trouble with CVS, this appendix may help.  If there is
+a particular error message which you are seeing, then you can look up
+the message alphabetically.  If not, you can look through the section on
+other problems to see if your problem is mentioned there.
+
+F.1 Partial list of error messages
+==================================
+
+Here is a partial list of error messages that you may see from CVS.  It
+is not a complete list--CVS is capable of printing many, many error
+messages, often with parts of them supplied by the operating system, but
+the intention is to list the common and/or potentially confusing error
+messages.
+
+   The messages are alphabetical, but introductory text such as 'cvs
+update: ' is not considered in ordering them.
+
+   In some cases the list includes messages printed by old versions of
+CVS (partly because users may not be sure which version of CVS they are
+using at any particular moment).
+
+'FILE:LINE: Assertion 'TEXT' failed'
+     The exact format of this message may vary depending on your system.
+     It indicates a bug in CVS, which can be handled as described in
+     *note BUGS::.
+
+'cvs COMMAND: authorization failed: server HOST rejected access'
+     This is a generic response when trying to connect to a pserver
+     server which chooses not to provide a specific reason for denying
+     authorization.  Check that the username and password specified are
+     correct and that the 'CVSROOT' specified is allowed by
+     '--allow-root' in 'inetd.conf'.  See *note Password
+     authenticated::.
+
+'cvs COMMAND: conflict: removed FILE was modified by second party'
+     This message indicates that you removed a file, and someone else
+     modified it.  To resolve the conflict, first run 'cvs add FILE'.
+     If desired, look at the other party's modification to decide
+     whether you still want to remove it.  If you don't want to remove
+     it, stop here.  If you do want to remove it, proceed with 'cvs
+     remove FILE' and commit your removal.
+
+'cannot change permissions on temporary directory'
+          Operation not permitted
+     This message has been happening in a non-reproducible, occasional
+     way when we run the client/server testsuite, both on Red Hat Linux
+     3.0.3 and 4.1.  We haven't been able to figure out what causes it,
+     nor is it known whether it is specific to Linux (or even to this
+     particular machine!).  If the problem does occur on other unices,
+     'Operation not permitted' would be likely to read 'Not owner' or
+     whatever the system in question uses for the unix 'EPERM' error.
+     If you have any information to add, please let us know as described
+     in *note BUGS::.  If you experience this error while using CVS,
+     retrying the operation which produced it should work fine.
+
+'cvs [server aborted]: Cannot check out files into the repository itself'
+     The obvious cause for this message (especially for
+     non-client/server CVS) is that the CVS root is, for example,
+     '/usr/local/cvsroot' and you try to check out files when you are in
+     a subdirectory, such as '/usr/local/cvsroot/test'.  However, there
+     is a more subtle cause, which is that the temporary directory on
+     the server is set to a subdirectory of the root (which is also not
+     allowed).  If this is the problem, set the temporary directory to
+     somewhere else, for example '/var/tmp'; see 'TMPDIR' in *note
+     Environment variables::, for how to set the temporary directory.
+
+'cannot commit files as 'root''
+     See ''root' is not allowed to commit files'.
+
+'cannot open CVS/Entries for reading: No such file or directory'
+     This generally indicates a CVS internal error, and can be handled
+     as with other CVS bugs (*note BUGS::).  Usually there is a
+     workaround--the exact nature of which would depend on the situation
+     but which hopefully could be figured out.
+
+'cvs [init aborted]: cannot open CVS/Root: No such file or directory'
+     This message is harmless.  Provided it is not accompanied by other
+     errors, the operation has completed successfully.  This message
+     should not occur with current versions of CVS, but it is documented
+     here for the benefit of CVS 1.9 and older.
+
+'cvs server: cannot open /root/.cvsignore: Permission denied'
+'cvs [server aborted]: can't chdir(/root): Permission denied'
+     See *note Connection::.
+
+'cvs [checkout aborted]: cannot rename file FILE to CVS/,,FILE: Invalid 
argument'
+     This message has been reported as intermittently happening with CVS
+     1.9 on Solaris 2.5.  The cause is unknown; if you know more about
+     what causes it, let us know as described in *note BUGS::.
+
+'cvs [COMMAND aborted]: cannot start server via rcmd'
+     This, unfortunately, is a rather nonspecific error message which
+     CVS 1.9 will print if you are running the CVS client and it is
+     having trouble connecting to the server.  Current versions of CVS
+     should print a much more specific error message.  If you get this
+     message when you didn't mean to run the client at all, you probably
+     forgot to specify ':local:', as described in *note Repository::.
+
+'ci: FILE,v: bad diff output line: Binary files - and /tmp/T2a22651 differ'
+     CVS 1.9 and older will print this message when trying to check in a
+     binary file if RCS is not correctly installed.  Re-read the
+     instructions that came with your RCS distribution and the INSTALL
+     file in the CVS distribution.  Alternately, upgrade to a current
+     version of CVS, which checks in files itself rather than via RCS.
+
+'cvs checkout: could not check out FILE'
+     With CVS 1.9, this can mean that the 'co' program (part of RCS)
+     returned a failure.  It should be preceded by another error
+     message, however it has been observed without another error message
+     and the cause is not well-understood.  With the current version of
+     CVS, which does not run 'co', if this message occurs without
+     another error message, it is definitely a CVS bug (*note BUGS::).
+
+'cvs [login aborted]: could not find out home directory'
+     This means that you need to set the environment variables that CVS
+     uses to locate your home directory.  See the discussion of 'HOME',
+     'HOMEDRIVE', and 'HOMEPATH' in *note Environment variables::.
+
+'cvs update: could not merge revision REV of FILE: No such file or directory'
+     CVS 1.9 and older will print this message if there was a problem
+     finding the 'rcsmerge' program.  Make sure that it is in your
+     'PATH', or upgrade to a current version of CVS, which does not
+     require an external 'rcsmerge' program.
+
+'cvs [update aborted]: could not patch FILE: No such file or directory'
+     This means that there was a problem finding the 'patch' program.
+     Make sure that it is in your 'PATH'.  Note that despite appearances
+     the message is _not_ referring to whether it can find FILE.  If
+     both the client and the server are running a current version of
+     CVS, then there is no need for an external patch program and you
+     should not see this message.  But if either client or server is
+     running CVS 1.9, then you need 'patch'.
+
+'cvs update: could not patch FILE; will refetch'
+     This means that for whatever reason the client was unable to apply
+     a patch that the server sent.  The message is nothing to be
+     concerned about, because inability to apply the patch only slows
+     things down and has no effect on what CVS does.
+
+'dying gasps from SERVER unexpected'
+     There is a known bug in the server for CVS 1.9.18 and older which
+     can cause this.  For me, this was reproducible if I used the '-t'
+     global option.  It was fixed by Andy Piper's 14 Nov 1997 change to
+     src/filesubr.c, if anyone is curious.  If you see the message, you
+     probably can just retry the operation which failed, or if you have
+     discovered information concerning its cause, please let us know as
+     described in *note BUGS::.
+
+'end of file from server (consult above messages if any)'
+     The most common cause for this message is if you are using an
+     external 'rsh' or 'ssh' program and it exited with an error.  In
+     this case the 'rsh' program should have printed a message, which
+     will appear before the above message.  For more information on
+     setting up a CVS client and server, see *note Remote
+     repositories::.
+
+'cvs [update aborted]: EOF in key in RCS file FILE,v'
+'cvs [checkout aborted]: EOF while looking for end of string in RCS file 
FILE,v'
+     This means that there is a syntax error in the given RCS file.
+     Note that this might be true even if RCS can read the file OK; CVS
+     does more error checking of errors in the RCS file.  That is why
+     you may see this message when upgrading from CVS 1.9 to CVS 1.10.
+     The likely cause for the original corruption is hardware, the
+     operating system, or the like.  Of course, if you find a case in
+     which CVS seems to corrupting the file, by all means report it,
+     (*note BUGS::).  There are quite a few variations of this error
+     message, depending on exactly where in the RCS file CVS finds the
+     syntax error.
+
+'cvs commit: Executing 'mkmodules''
+     This means that your repository is set up for a version of CVS
+     prior to CVS 1.8.  When using CVS 1.8 or later, the above message
+     will be preceded by
+
+          cvs commit: Rebuilding administrative file database
+
+     If you see both messages, the database is being rebuilt twice,
+     which is unnecessary but harmless.  If you wish to avoid the
+     duplication, and you have no versions of CVS 1.7 or earlier in use,
+     remove '-i mkmodules' every place it appears in your 'modules'
+     file.  For more information on the 'modules' file, see *note
+     modules::.
+
+'missing author'
+     Typically this can happen if you created an RCS file with your
+     username set to empty.  CVS will, bogusly, create an illegal RCS
+     file with no value for the author field.  The solution is to make
+     sure your username is set to a non-empty value and re-create the
+     RCS file.
+
+'cvs [checkout aborted]: no such tag TAG'
+     This message means that CVS isn't familiar with the tag TAG.
+     Usually this means that you have mistyped a tag name; however there
+     are (relatively obscure) cases in which CVS will require you to try
+     a few other CVS commands involving that tag, before you find one
+     which will cause CVS to update the 'val-tags' file; see discussion
+     of val-tags in *note File permissions::.  You only need to worry
+     about this once for a given tag; when a tag is listed in
+     'val-tags', it stays there.  Note that using '-f' to not require
+     tag matches does not override this check; see *note Common
+     options::.
+
+'cvs [COMMAND aborted]: out of memory'
+     There is insufficient (virtual) memory available to continue.  In
+     client/server mode, the problem is almost certainly on the server
+     rather than the client; see *note Server requirements:: for memory
+     estimates.  Many systems have limits on the amount of virtual
+     memory that a single process can use, so a process can run out of
+     virtual memory long before the system itself has run out.  The
+     method of increasing the per-process limits varies depending on the
+     operating system.
+
+'*PANIC* administration files missing'
+     This typically means that there is a directory named CVS but it
+     does not contain the administrative files which CVS puts in a CVS
+     directory.  If the problem is that you created a CVS directory via
+     some mechanism other than CVS, then the answer is simple, use a
+     name other than CVS.  If not, it indicates a CVS bug (*note
+     BUGS::).
+
+'rcs error: Unknown option: -x,v/'
+     This message will be followed by a usage message for RCS.  It means
+     that you have an old version of RCS (probably supplied with your
+     operating system), as well as an old version of CVS.  CVS 1.9.18
+     and earlier only work with RCS version 5 and later; current
+     versions of CVS do not run RCS programs.
+
+'cvs [server aborted]: received broken pipe signal'
+     This message can be caused by a loginfo program that fails to read
+     all of the log information from its standard input.  If you find it
+     happening in any other circumstances, please let us know as
+     described in *note BUGS::.
+
+''root' is not allowed to commit files'
+     When committing a permanent change, CVS makes a log entry of who
+     committed the change.  If you are committing the change logged in
+     as "root" (not under "su" or other root-priv giving program), CVS
+     cannot determine who is actually making the change.  As such, by
+     default, CVS disallows changes to be committed by users logged in
+     as "root".  (You can disable this option by passing the
+     '--enable-rootcommit' option to 'configure' and recompiling CVS.
+     On some systems this means editing the appropriate 'config.h' file
+     before building CVS.)
+
+'Terminated with fatal signal 11'
+     This message usually indicates that CVS (the server, if you're
+     using client/server mode) has run out of (virtual) memory.
+     Although CVS tries to catch the error and issue a more meaningful
+     message, there are many circumstances where that is not possible.
+     If you appear to have lots of memory available to the system, the
+     problem is most likely that you're running into a system-wide limit
+     on the amount of memory a single process can use or a similar
+     process-specific limit.  The mechanisms for displaying and setting
+     such limits vary from system to system, so you'll have to consult
+     an expert for your particular system if you don't know how to do
+     that.
+
+'Too many arguments!'
+     This message is typically printed by the 'log.pl' script which is
+     in the 'contrib' directory in the CVS source distribution.  In some
+     versions of CVS, 'log.pl' has been part of the default CVS
+     installation.  The 'log.pl' script gets called from the 'loginfo'
+     administrative file.  Check that the arguments passed in 'loginfo'
+     match what your version of 'log.pl' expects.  In particular, the
+     'log.pl' from CVS 1.3 and older expects the log file as an argument
+     whereas the 'log.pl' from CVS 1.5 and newer expects the log file to
+     be specified with a '-f' option.  Of course, if you don't need
+     'log.pl' you can just comment it out of 'loginfo'.
+
+'cvs [update aborted]: unexpected EOF reading FILE,v'
+     See 'EOF in key in RCS file'.
+
+'cvs [login aborted]: unrecognized auth response from SERVER'
+     This message typically means that the server is not set up
+     properly.  For example, if 'inetd.conf' points to a nonexistent cvs
+     executable.  To debug it further, find the log file which inetd
+     writes ('/var/log/messages' or whatever inetd uses on your system).
+     For details, see *note Connection::, and *note Password
+     authentication server::.
+
+'cvs commit: Up-to-date check failed for `FILE''
+     This means that someone else has committed a change to that file
+     since the last time that you did a 'cvs update'.  So before
+     proceeding with your 'cvs commit' you need to 'cvs update'.  CVS
+     will merge the changes that you made and the changes that the other
+     person made.  If it does not detect any conflicts it will report 'M
+     FILE' and you are ready to 'cvs commit'.  If it detects conflicts
+     it will print a message saying so, will report 'C FILE', and you
+     need to manually resolve the conflict.  For more details on this
+     process see *note Conflicts example::.
+
+'Usage:        diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 file2 
file3'
+          Only one of [exEX3] allowed
+     This indicates a problem with the installation of 'diff3' and
+     'rcsmerge'.  Specifically 'rcsmerge' was compiled to look for GNU
+     diff3, but it is finding unix diff3 instead.  The exact text of the
+     message will vary depending on the system.  The simplest solution
+     is to upgrade to a current version of CVS, which does not rely on
+     external 'rcsmerge' or 'diff3' programs.
+
+'warning: unrecognized response `TEXT' from cvs server'
+     If TEXT contains a valid response (such as 'ok') followed by an
+     extra carriage return character (on many systems this will cause
+     the second part of the message to overwrite the first part), then
+     it probably means that you are using the ':ext:' access method with
+     a version of rsh, such as most non-unix rsh versions, which does
+     not by default provide a transparent data stream.  In such cases
+     you probably want to try ':server:' instead of ':ext:'.  If TEXT is
+     something else, this may signify a problem with your CVS server.
+     Double-check your installation against the instructions for setting
+     up the CVS server.
+
+'cvs commit: [TIME] waiting for USER's lock in DIRECTORY'
+     This is a normal message, not an error.  See *note Concurrency::,
+     for more details.
+
+'cvs commit: warning: editor session failed'
+     This means that the editor which CVS is using exits with a nonzero
+     exit status.  Some versions of vi will do this even when there was
+     not a problem editing the file.  If so, point the 'CVSEDITOR'
+     environment variable to a small script such as:
+
+          #!/bin/sh
+          vi $*
+          exit 0
+
+'cvs update: warning: FILE was lost'
+     This means that the working copy of FILE has been deleted but it
+     has not been removed from CVS.  This is nothing to be concerned
+     about, the update will just recreate the local file from the
+     repository.  (This is a convenient way to discard local changes to
+     a file: just delete it and then run 'cvs update'.)
+
+'cvs update: warning: FILE is not (any longer) pertinent'
+     This means that the working copy of FILE has been deleted, it has
+     not been removed from CVS in the current working directory, but it
+     has been removed from CVS in some other working directory.  This is
+     nothing to be concerned about, the update would have removed the
+     local file anyway.
+
+F.2 Trouble making a connection to a CVS server
+===============================================
+
+This section concerns what to do if you are having trouble making a
+connection to a CVS server.  If you are running the CVS command line
+client running on Windows, first upgrade the client to CVS 1.9.12 or
+later.  The error reporting in earlier versions provided much less
+information about what the problem was.  If the client is non-Windows,
+CVS 1.9 should be fine.
+
+   If the error messages are not sufficient to track down the problem,
+the next steps depend largely on which access method you are using.
+
+':ext:'
+     Try running the rsh program from the command line.  For example:
+     "rsh servername cvs -v" should print CVS version information.  If
+     this doesn't work, you need to fix it before you can worry about
+     CVS problems.
+
+':server:'
+     You don't need a command line rsh program to use this access
+     method, but if you have an rsh program around, it may be useful as
+     a debugging tool.  Follow the directions given for :ext:.
+
+':pserver:'
+     Errors along the lines of "connection refused" typically indicate
+     that inetd isn't even listening for connections on port 2401
+     whereas errors like "connection reset by peer", "received broken
+     pipe signal", "recv() from server: EOF", or "end of file from
+     server" typically indicate that inetd is listening for connections
+     but is unable to start CVS (this is frequently caused by having an
+     incorrect path in 'inetd.conf' or by firewall software rejecting
+     the connection).  "unrecognized auth response" errors are caused by
+     a bad command line in 'inetd.conf', typically an invalid option or
+     forgetting to put the 'pserver' command at the end of the line.
+     Another less common problem is invisible control characters that
+     your editor "helpfully" added without you noticing.
+
+     One good debugging tool is to "telnet servername 2401".  After
+     connecting, send any text (for example "foo" followed by return).
+     If CVS is working correctly, it will respond with
+
+          cvs [pserver aborted]: bad auth protocol start: foo
+
+     If instead you get:
+
+          Usage: cvs [cvs-options] command [command-options-and-arguments]
+          ...
+
+     then you're missing the 'pserver' command at the end of the line in
+     'inetd.conf'; check to make sure that the entire command is on one
+     line and that it's complete.
+
+     Likewise, if you get something like:
+
+          Unknown command: `pserved'
+
+          CVS commands are:
+                  add          Add a new file/directory to the repository
+          ...
+
+     then you've misspelled 'pserver' in some way.  If it isn't obvious,
+     check for invisible control characters (particularly carriage
+     returns) in 'inetd.conf'.
+
+     If it fails to work at all, then make sure inetd is working right.
+     Change the invocation in 'inetd.conf' to run the echo program
+     instead of cvs.  For example:
+
+          2401  stream  tcp  nowait  root /bin/echo echo hello
+
+     After making that change and instructing inetd to re-read its
+     configuration file, "telnet servername 2401" should show you the
+     text hello and then the server should close the connection.  If
+     this doesn't work, you need to fix it before you can worry about
+     CVS problems.
+
+     On AIX systems, the system will often have its own program trying
+     to use port 2401.  This is AIX's problem in the sense that port
+     2401 is registered for use with CVS.  I hear that there is an AIX
+     patch available to address this problem.
+
+     Another good debugging tool is the '-d' (debugging) option to
+     inetd.  Consult your system documentation for more information.
+
+     If you seem to be connecting but get errors like:
+
+          cvs server: cannot open /root/.cvsignore: Permission denied
+          cvs [server aborted]: can't chdir(/root): Permission denied
+
+     then you probably haven't specified '-f' in 'inetd.conf'.  (In
+     releases prior to CVS 1.11.1, this problem can be caused by your
+     system setting the '$HOME' environment variable for programs being
+     run by inetd.  In this case, you can either have inetd run a shell
+     script that unsets '$HOME' and then runs CVS, or you can use 'env'
+     to run CVS with a pristine environment.)
+
+     If you can connect successfully for a while but then can't, you've
+     probably hit inetd's rate limit.  (If inetd receives too many
+     requests for the same service in a short period of time, it assumes
+     that something is wrong and temporarily disables the service.)
+     Check your inetd documentation to find out how to adjust the rate
+     limit (some versions of inetd have a single rate limit, others
+     allow you to set the limit for each service separately.)
+
+F.3 Other common problems
+=========================
+
+Here is a list of problems which do not fit into the above categories.
+They are in no particular order.
+
+   * On Windows, if there is a 30 second or so delay when you run a CVS
+     command, it may mean that you have your home directory set to
+     'C:/', for example (see 'HOMEDRIVE' and 'HOMEPATH' in *note
+     Environment variables::).  CVS expects the home directory to not
+     end in a slash, for example 'C:' or 'C:\cvs'.
+
+   * If you are running CVS 1.9.18 or older, and 'cvs update' finds a
+     conflict and tries to merge, as described in *note Conflicts
+     example::, but doesn't tell you there were conflicts, then you may
+     have an old version of RCS.  The easiest solution probably is to
+     upgrade to a current version of CVS, which does not rely on
+     external RCS programs.
+
+Appendix G Credits
+******************
+
+Roland Pesch, then of Cygnus Support <address@hidden> wrote the manual
+pages which were distributed with CVS 1.3.  Much of their text was
+copied into this manual.  He also read an early draft of this manual and
+contributed many ideas and corrections.
+
+   The mailing-list 'info-cvs' is sometimes informative.  I have
+included information from postings made by the following persons: David
+G. Grubbs <address@hidden>.
+
+   Some text has been extracted from the man pages for RCS.
+
+   The CVS FAQ by David G. Grubbs has provided useful material.  The FAQ
+is no longer maintained, however, and this manual is about the closest
+thing there is to a successor (with respect to documenting how to use
+CVS, at least).
+
+   In addition, the following persons have helped by telling me about
+mistakes I've made:
+
+     Roxanne Brunskill <address@hidden>,
+     Kathy Dyer <address@hidden>,
+     Karl Pingle <address@hidden>,
+     Thomas A Peterson <address@hidden>,
+     Inge Wallin <address@hidden>,
+     Dirk Koschuetzki <address@hidden>
+     and Michael Brown <address@hidden>.
+
+   The list of contributors here is not comprehensive; for a more
+complete list of who has contributed to this manual see the file
+'doc/ChangeLog' in the CVS source distribution.
+
+Appendix H Dealing with bugs in CVS or this manual
+**************************************************
+
+Neither CVS nor this manual is perfect, and they probably never will be.
+If you are having trouble using CVS, or think you have found a bug,
+there are a number of things you can do about it.  Note that if the
+manual is unclear, that can be considered a bug in the manual, so these
+problems are often worth doing something about as well as problems with
+CVS itself.
+
+   * If you want someone to help you and fix bugs that you report, there
+     are companies which will do that for a fee.  One such company is:
+
+          Ximbiot LLC
+          Suite 230
+          200 Diversion St.
+          Rochester Hills, MI  48307-6636
+          USA
+          Email: address@hidden
+          Phone: (248) 835-1260
+          Fax:   (248) 835-1263
+          <http://ximbiot.com/>
+
+
+   * If you got CVS through a distributor, such as an operating system
+     vendor or a vendor of freeware CD-ROMs, you may wish to see whether
+     the distributor provides support.  Often, they will provide no
+     support or minimal support, but this may vary from distributor to
+     distributor.
+
+   * If you have the skills and time to do so, you may wish to fix the
+     bug yourself.  If you wish to submit your fix for inclusion in
+     future releases of CVS, see the file HACKING in the CVS source
+     distribution.  It contains much more information on the process of
+     submitting fixes.
+
+   * There may be resources on the net which can help.  A good place to
+     start is:
+
+          <http://cvs.nongnu.org/>
+
+     If you are so inspired, increasing the information available on the
+     net is likely to be appreciated.  For example, before the standard
+     CVS distribution worked on Windows 95, there was a web page with
+     some explanation and patches for running CVS on Windows 95, and
+     various people helped out by mentioning this page on mailing lists
+     or newsgroups when the subject came up.
+
+   * It is also possible to report bugs to <address@hidden>.  Note
+     that someone may or may not want to do anything with your bug
+     report--if you need a solution consider one of the options
+     mentioned above.  People probably do want to hear about bugs which
+     are particularly severe in consequences and/or easy to fix,
+     however.  You can also increase your odds by being as clear as
+     possible about the exact nature of the bug and any other relevant
+     information.  The way to report bugs is to send email to
+     <address@hidden>.  Note that submissions to
+     <address@hidden> may be distributed under the terms of the GNU
+     Public License, so if you don't like this, don't submit them.
+     There is usually no justification for sending mail directly to one
+     of the CVS maintainers rather than to <address@hidden>; those
+     maintainers who want to hear about such bug reports read
+     <address@hidden>.  Also note that sending a bug report to other
+     mailing lists or newsgroups is _not_ a substitute for sending it to
+     <address@hidden>.  It is fine to discuss CVS bugs on whatever
+     forum you prefer, but there are not necessarily any maintainers
+     reading bug reports sent anywhere except <address@hidden>.
+
+   People often ask if there is a list of known bugs or whether a
+particular bug is a known one.  The file BUGS in the CVS source
+distribution is one list of known bugs, but it doesn't necessarily try
+to be comprehensive.  Perhaps there will never be a comprehensive,
+detailed list of known bugs.
+
+Index
+*****
+
+* Menu:
+
+* !, in modules file:                    Excluding directories.
+                                                             (line 8211)
+* #cvs.lock, removing:                   Concurrency.        (line 3910)
+* #cvs.lock, technical details:          Locks.              (line  946)
+* #cvs.rfl, and backups:                 Backing up.         (line 1358)
+* #cvs.rfl, removing:                    Concurrency.        (line 3910)
+* #cvs.rfl, technical details:           Locks.              (line  946)
+* #cvs.tfl:                              Locks.              (line  954)
+* #cvs.wfl, removing:                    Concurrency.        (line 3910)
+* #cvs.wfl, technical details:           Locks.              (line  946)
+* &, in modules file:                    Ampersand modules.  (line 8171)
+* -a, in modules file:                   Alias modules.      (line 8101)
+* -d, in modules file:                   Module options.     (line 8228)
+* -e, in modules file:                   Module options.     (line 8231)
+* -e, in modules file <1>:               Module program options.
+                                                             (line 8262)
+* -j (merging branches):                 Merging a branch.   (line 2840)
+* -j (merging branches), and keyword substitution: Merging and keywords.
+                                                             (line 3008)
+* -k (keyword substitution):             Substitution modes. (line 4392)
+* -kk, to avoid conflicts during a merge: Merging and keywords.
+                                                             (line 3008)
+* -o, in modules file:                   Module options.     (line 8235)
+* -o, in modules file <1>:               Module program options.
+                                                             (line 8262)
+* -s, in modules file:                   Module options.     (line 8241)
+* -t, in modules file:                   Module options.     (line 8249)
+* -t, in modules file <1>:               Module program options.
+                                                             (line 8262)
+* .# files:                              update output.      (line 7239)
+* .bashrc, setting CVSROOT in:           Specifying a repository.
+                                                             (line  644)
+* .cshrc, setting CVSROOT in:            Specifying a repository.
+                                                             (line  644)
+* .cvsrc file:                           ~/.cvsrc.           (line 4750)
+* .profile, setting CVSROOT in:          Specifying a repository.
+                                                             (line  644)
+* .tcshrc, setting CVSROOT in:           Specifying a repository.
+                                                             (line  644)
+* /usr/local/cvsroot, as example repository: Repository.     (line  600)
+* :ext:, setting up:                     Connecting via rsh. (line 1516)
+* :ext:, troubleshooting:                Connection.         (line 9593)
+* :extssh:, setting up:                  Connecting via rsh. (line 1516)
+* :fork:, setting up:                    Connecting via fork.
+                                                             (line 1899)
+* :gserver:, setting up:                 GSSAPI authenticated.
+                                                             (line 1825)
+* :kserver:, setting up:                 Kerberos authenticated.
+                                                             (line 1862)
+* :local:, setting up:                   Repository.         (line  613)
+* :pserver:, setting up:                 Password authentication client.
+                                                             (line 1723)
+* :pserver:, troubleshooting:            Connection.         (line 9604)
+* :server:, setting up:                  Connecting via rsh. (line 1516)
+* :server:, troubleshooting:             Connection.         (line 9599)
+* <<<<<<<:                               Conflicts example.  (line 3846)
+* =======:                               Conflicts example.  (line 3846)
+* >>>>>>>:                               Conflicts example.  (line 3846)
+* __ files (VMS):                        update output.      (line 7239)
+* Abandoning work:                       Editing files.      (line 4111)
+* Access a branch:                       Accessing branches. (line 2675)
+* add (subcommand):                      Adding files.       (line 3184)
+* add (subcommand) <1>:                  add.                (line 5089)
+* Adding a tag:                          Tags.               (line 2305)
+* Adding files:                          Adding files.       (line 3156)
+* Admin (subcommand):                    admin.              (line 5153)
+* Administrative files (intro):          Intro administrative files.
+                                                             (line 1233)
+* Administrative files (reference):      Administrative files.
+                                                             (line 8069)
+* Administrative files, editing them:    Intro administrative files.
+                                                             (line 1260)
+* Alias modules:                         Alias modules.      (line 8101)
+* ALL in commitinfo:                     commitinfo.         (line 8430)
+* Ampersand modules:                     Ampersand modules.  (line 8171)
+* annotate (subcommand):                 annotate.           (line 5412)
+* Atomic transactions, lack of:          Concurrency.        (line 3926)
+* Attic:                                 Attic.              (line  849)
+* Authenticated client, using:           Password authentication client.
+                                                             (line 1723)
+* Authenticating server, setting up:     Password authentication server.
+                                                             (line 1562)
+* Authentication, stream:                Global options.     (line 4806)
+* Author keyword:                        Keyword list.       (line 4272)
+* Automatically ignored files:           cvsignore.          (line 8821)
+* Avoiding editor invocation:            Common options.     (line 5018)
+* Backing up, repository:                Backing up.         (line 1354)
+* Base directory, in CVS directory:      Working directory storage.
+                                                             (line 1205)
+* BASE, as reserved tag name:            Tags.               (line 2285)
+* BASE, special tag:                     Common options.     (line 5050)
+* Baserev file, in CVS directory:        Working directory storage.
+                                                             (line 1211)
+* Baserev.tmp file, in CVS directory:    Working directory storage.
+                                                             (line 1219)
+* Bill of materials:                     Builds.             (line 4651)
+* Binary files:                          Binary files.       (line 3509)
+* Branch merge example:                  Merging a branch.   (line 2849)
+* Branch number:                         Revision numbers.   (line 2202)
+* Branch number <1>:                     Branches and revisions.
+                                                             (line 2754)
+* Branch tags, deleting:                 Modifying tags.     (line 2462)
+* Branch tags, moving:                   Modifying tags.     (line 2480)
+* Branch, accessing:                     Accessing branches. (line 2675)
+* Branch, check out:                     Accessing branches. (line 2675)
+* Branch, creating a:                    Creating a branch.  (line 2638)
+* Branch, identifying:                   Accessing branches. (line 2675)
+* Branch, retrieving:                    Accessing branches. (line 2675)
+* Branch, vendor-:                       Tracking sources.   (line 4473)
+* Branches motivation:                   Branches motivation.
+                                                             (line 2620)
+* Branches, copying changes between:     Branching and merging.
+                                                             (line 2607)
+* Branches, sticky:                      Accessing branches. (line 2706)
+* Branching:                             Branching and merging.
+                                                             (line 2607)
+* Bringing a file up to date:            Updating a file.    (line 3729)
+* Bugs in this manual or CVS:            BUGS.               (line 9741)
+* Bugs, reporting:                       BUGS.               (line 9748)
+* Builds:                                Builds.             (line 4632)
+* Changes, copying between branches:     Branching and merging.
+                                                             (line 2607)
+* Changing a log message:                admin options.      (line 5240)
+* Check out a branch:                    Accessing branches. (line 2675)
+* Checked out copy, keeping:             Keeping a checked out copy.
+                                                             (line 8733)
+* Checking out source:                   Getting the source. (line  464)
+* checkout (subcommand):                 checkout.           (line 5468)
+* Checkout program:                      Module options.     (line 8235)
+* Checkout, as term for getting ready to edit: Editing files.
+                                                             (line 4083)
+* Checkout, example:                     Getting the source. (line  464)
+* checkoutlist:                          checkoutlist.       (line 8872)
+* Choosing, reserved or unreserved checkouts: Choosing a model.
+                                                             (line 4176)
+* Cleaning up:                           Cleaning up.        (line  531)
+* Client/Server Operation:               Remote repositories.
+                                                             (line 1409)
+* Client/Server Operation, port specification: Remote repositories.
+                                                             (line 1409)
+* Client/Server Operation, port specification <1>: Password authentication 
server.
+                                                             (line 1562)
+* co (subcommand):                       checkout.           (line 5468)
+* Command reference:                     Invoking CVS.       (line 7260)
+* Command structure:                     Structure.          (line 4697)
+* Comment leader:                        admin options.      (line 5194)
+* commit (subcommand):                   commit.             (line 5643)
+* 'commitinfo':                          commitinfo.         (line 8410)
+* 'commitinfo', command environment:     commitinfo.         (line 8434)
+* 'commitinfo', working directory:       commitinfo.         (line 8434)
+* Commits, precommit verification of:    commitinfo.         (line 8410)
+* Committing changes to files:           Committing your changes.
+                                                             (line  488)
+* Committing, administrative support files: commit files.    (line 8379)
+* Committing, when to:                   When to commit.     (line 4234)
+* Common options:                        Common options.     (line 4913)
+* Common syntax of info files:           syntax.             (line 8332)
+* Compatibility, between CVS versions:   Compatibility.      (line 9221)
+* Compression:                           Global options.     (line 4906)
+* Compression <1>:                       Invoking CVS.       (line 7328)
+* COMSPEC, environment variable:         Environment variables.
+                                                             (line 9198)
+* config, in CVSROOT:                    config.             (line 9004)
+* Conflict markers:                      Conflicts example.  (line 3846)
+* Conflict resolution:                   Conflicts example.  (line 3850)
+* Conflicts (merge example):             Conflicts example.  (line 3818)
+* Contributors (CVS program):            What is CVS?.       (line  296)
+* Contributors (manual):                 Credits.            (line 9707)
+* Copying a repository:                  Moving a repository.
+                                                             (line 1390)
+* Copying changes:                       Branching and merging.
+                                                             (line 2607)
+* Correcting a log message:              admin options.      (line 5240)
+* Creating a branch:                     Creating a branch.  (line 2638)
+* Creating a project:                    Starting a new project.
+                                                             (line 2021)
+* Creating a repository:                 Creating a repository.
+                                                             (line 1309)
+* Credits (CVS program):                 What is CVS?.       (line  296)
+* Credits (manual):                      Credits.            (line 9707)
+* CVS 1.6, and watches:                  Watches Compatibility.
+                                                             (line 4158)
+* CVS command structure:                 Structure.          (line 4697)
+* CVS directory, in repository:          CVS in repository.  (line  872)
+* CVS directory, in working directory:   Working directory storage.
+                                                             (line 1035)
+* CVS passwd file:                       Password authentication server.
+                                                             (line 1627)
+* CVS, history of:                       What is CVS?.       (line  296)
+* CVS, introduction to:                  What is CVS?.       (line  274)
+* CVS, versions of:                      Compatibility.      (line 9221)
+* CVS/Base directory:                    Working directory storage.
+                                                             (line 1205)
+* CVS/Baserev file:                      Working directory storage.
+                                                             (line 1211)
+* CVS/Baserev.tmp file:                  Working directory storage.
+                                                             (line 1219)
+* CVS/Entries file:                      Working directory storage.
+                                                             (line 1089)
+* CVS/Entries.Backup file:               Working directory storage.
+                                                             (line 1172)
+* CVS/Entries.Log file:                  Working directory storage.
+                                                             (line 1149)
+* CVS/Entries.Static file:               Working directory storage.
+                                                             (line 1177)
+* CVS/Notify file:                       Working directory storage.
+                                                             (line 1195)
+* CVS/Notify.tmp file:                   Working directory storage.
+                                                             (line 1200)
+* CVS/Repository file:                   Working directory storage.
+                                                             (line 1061)
+* CVS/Root file:                         Specifying a repository.
+                                                             (line  657)
+* CVS/Tag file:                          Working directory storage.
+                                                             (line 1184)
+* CVS/Template file:                     Working directory storage.
+                                                             (line 1225)
+* cvsadmin:                              admin.              (line 5163)
+* CVSEDITOR, environment variable:       Committing your changes.
+                                                             (line  499)
+* CVSEDITOR, environment variable <1>:   Environment variables.
+                                                             (line 9128)
+* CVSEDITOR, internal variable:          Variables.          (line 8954)
+* cvsignore (admin file), global:        cvsignore.          (line 8804)
+* CVSIGNORE, environment variable:       Environment variables.
+                                                             (line 9098)
+* CVSREAD, environment variable:         Environment variables.
+                                                             (line 9106)
+* CVSREAD, overriding:                   Global options.     (line 4890)
+* cvsroot:                               Repository.         (line  600)
+* CVSROOT (file):                        Administrative files.
+                                                             (line 8069)
+* CVSROOT, environment variable:         Specifying a repository.
+                                                             (line  644)
+* CVSROOT, internal variable:            Variables.          (line 8943)
+* CVSROOT, module name:                  Intro administrative files.
+                                                             (line 1233)
+* CVSROOT, multiple repositories:        Multiple repositories.
+                                                             (line 1279)
+* CVSROOT, overriding:                   Global options.     (line 4828)
+* CVSROOT, storage of files:             CVSROOT storage.    (line 1000)
+* CVSROOT/config:                        config.             (line 9004)
+* CVSROOT/Emptydir directory:            Working directory storage.
+                                                             (line 1087)
+* CVSROOT/val-tags file, and read-only access to projects: File permissions.
+                                                             (line  783)
+* CVSROOT/val-tags file, forcing tags into: Error messages.  (line 9435)
+* CVSUMASK, environment variable:        File permissions.   (line  791)
+* cvswrappers (admin file):              Wrappers.           (line 8280)
+* CVSWRAPPERS, environment variable:     Wrappers.           (line 8280)
+* CVSWRAPPERS, environment variable <1>: Environment variables.
+                                                             (line 9102)
+* CVS_CLIENT_LOG, environment variable:  Environment variables.
+                                                             (line 9181)
+* CVS_CLIENT_PORT:                       Kerberos authenticated.
+                                                             (line 1881)
+* CVS_IGNORE_REMOTE_ROOT, environment variable: Environment variables.
+                                                             (line 9192)
+* CVS_PASSFILE, environment variable:    Password authentication client.
+                                                             (line 1763)
+* CVS_RCMD_PORT, environment variable:   Environment variables.
+                                                             (line 9176)
+* CVS_RSH, environment variable:         Environment variables.
+                                                             (line 9148)
+* CVS_SERVER, and :fork::                Connecting via fork.
+                                                             (line 1917)
+* CVS_SERVER, environment variable:      Connecting via rsh. (line 1506)
+* CVS_SERVER_SLEEP, environment variable: Environment variables.
+                                                             (line 9187)
+* CVS_SSH, environment variable:         Environment variables.
+                                                             (line 9152)
+* CVS_USER, environment variable:        Variables.          (line 8988)
+* Date keyword:                          Keyword list.       (line 4275)
+* Dates:                                 Common options.     (line 4925)
+* Dead state:                            Attic.              (line  860)
+* Decimal revision number:               Revision numbers.   (line 2202)
+* DEFAULT in commitinfo:                 commitinfo.         (line 8427)
+* DEFAULT in editinfo:                   editinfo.           (line 8594)
+* DEFAULT in 'verifymsg':                verifymsg.          (line 8471)
+* Defining a module:                     Defining the module.
+                                                             (line 2159)
+* Defining modules (intro):              Intro administrative files.
+                                                             (line 1233)
+* Defining modules (reference manual):   modules.            (line 8081)
+* Deleting branch tags:                  Modifying tags.     (line 2462)
+* Deleting files:                        Removing files.     (line 3224)
+* Deleting revisions:                    admin options.      (line 5262)
+* Deleting sticky tags:                  Sticky tags.        (line 2567)
+* Deleting tags:                         Modifying tags.     (line 2462)
+* Descending directories:                Recursive behavior. (line 3093)
+* Device nodes:                          Special Files.      (line 4678)
+* Diff:                                  Viewing differences.
+                                                             (line  575)
+* diff (subcommand):                     diff.               (line 5776)
+* Differences, merging:                  Merging two revisions.
+                                                             (line 2947)
+* Directories, moving:                   Moving directories. (line 3431)
+* Directories, removing:                 Removing directories.
+                                                             (line 3315)
+* Directory, descending:                 Recursive behavior. (line 3093)
+* Disjoint repositories:                 Multiple repositories.
+                                                             (line 1279)
+* Distributing log messages:             loginfo.            (line 8649)
+* driver.c (merge example):              Conflicts example.  (line 3756)
+* edit (subcommand):                     Editing files.      (line 4090)
+* editinfo (admin file):                 editinfo.           (line 8562)
+* Editing administrative files:          Intro administrative files.
+                                                             (line 1260)
+* Editing the modules file:              Defining the module.
+                                                             (line 2159)
+* Editor, avoiding invocation of:        Common options.     (line 5018)
+* EDITOR, environment variable:          Committing your changes.
+                                                             (line  499)
+* EDITOR, environment variable <1>:      Environment variables.
+                                                             (line 9129)
+* EDITOR, internal variable:             Variables.          (line 8955)
+* EDITOR, overriding:                    Global options.     (line 4833)
+* Editor, specifying per module:         editinfo.           (line 8562)
+* editors (subcommand):                  Watch information.  (line 4145)
+* emerge:                                Conflicts example.  (line 3889)
+* Emptydir, in CVSROOT directory:        Working directory storage.
+                                                             (line 1087)
+* Encryption:                            Global options.     (line 4896)
+* Entries file, in CVS directory:        Working directory storage.
+                                                             (line 1089)
+* Entries.Backup file, in CVS directory: Working directory storage.
+                                                             (line 1172)
+* Entries.Log file, in CVS directory:    Working directory storage.
+                                                             (line 1149)
+* Entries.Static file, in CVS directory: Working directory storage.
+                                                             (line 1177)
+* Environment variables:                 Environment variables.
+                                                             (line 9096)
+* environment variables, passed to administrative files: Variables.
+                                                             (line 8987)
+* Errors, reporting:                     BUGS.               (line 9748)
+* Example of a work-session:             A sample session.   (line  451)
+* Example of merge:                      Conflicts example.  (line 3756)
+* Example, branch merge:                 Merging a branch.   (line 2849)
+* Excluding directories, in modules file: Excluding directories.
+                                                             (line 8211)
+* Exit status, of commitinfo:            commitinfo.         (line 8423)
+* Exit status, of CVS:                   Exit status.        (line 4732)
+* Exit status, of editor:                Error messages.     (line 9557)
+* Exit status, of 'verifymsg':           verifymsg.          (line 8474)
+* export (subcommand):                   export.             (line 6329)
+* Export program:                        Module options.     (line 8231)
+* Fetching source:                       Getting the source. (line  464)
+* File had conflicts on merge:           File status.        (line 3693)
+* File locking:                          Multiple developers.
+                                                             (line 3622)
+* File permissions, general:             File permissions.   (line  763)
+* File permissions, Windows-specific:    Windows permissions.
+                                                             (line  833)
+* File status:                           File status.        (line 3653)
+* Files, moving:                         Moving files.       (line 3337)
+* Files, reference manual:               Administrative files.
+                                                             (line 8069)
+* Fixing a log message:                  admin options.      (line 5240)
+* Forcing a tag match:                   Common options.     (line 4979)
+* fork, access method:                   Connecting via fork.
+                                                             (line 1899)
+* Form for log message:                  rcsinfo.            (line 8754)
+* Format of CVS commands:                Structure.          (line 4697)
+* Getting started:                       A sample session.   (line  451)
+* Getting the source:                    Getting the source. (line  464)
+* Global cvsignore:                      cvsignore.          (line 8804)
+* Global options:                        Global options.     (line 4799)
+* Group, UNIX file permissions, in repository: File permissions.
+                                                             (line  763)
+* gserver (client/server connection method), port specification: Remote 
repositories.
+                                                             (line 1409)
+* gserver (client/server connection method), port specification <1>: Password 
authentication server.
+                                                             (line 1562)
+* GSSAPI:                                GSSAPI authenticated.
+                                                             (line 1825)
+* Gzip:                                  Global options.     (line 4906)
+* Gzip <1>:                              Invoking CVS.       (line 7328)
+* Hard links:                            Special Files.      (line 4678)
+* HEAD, as reserved tag name:            Tags.               (line 2285)
+* HEAD, special tag:                     Common options.     (line 5050)
+* Header keyword:                        Keyword list.       (line 4278)
+* history (subcommand):                  history.            (line 6392)
+* History browsing:                      History browsing.   (line 3466)
+* History file:                          history file.       (line 8910)
+* History files:                         Repository files.   (line  745)
+* History of CVS:                        What is CVS?.       (line  296)
+* HOME, environment variable:            Environment variables.
+                                                             (line 9139)
+* HOMEDRIVE, environment variable:       Environment variables.
+                                                             (line 9141)
+* HOMEPATH, environment variable:        Environment variables.
+                                                             (line 9140)
+* Id keyword:                            Keyword list.       (line 4284)
+* Ident (shell command):                 Using keywords.     (line 4349)
+* Identifying a branch:                  Accessing branches. (line 2675)
+* Identifying files:                     Keyword substitution.
+                                                             (line 4256)
+* Ignored files:                         cvsignore.          (line 8821)
+* IgnoreUnknownConfigKeys, in CVSROOT/config: config.        (line 9082)
+* Ignoring files:                        cvsignore.          (line 8804)
+* import (subcommand):                   import.             (line 6532)
+* Importing files:                       From files.         (line 2039)
+* Importing files, from other version control systems: From other version 
control systems.
+                                                             (line 2083)
+* Importing modules:                     First import.       (line 4491)
+* Index:                                 Index.              (line 9815)
+* inetd, configuring for pserver:        Password authentication server.
+                                                             (line 1562)
+* Info files:                            Trigger Scripts.    (line 8317)
+* Info files (syntax):                   syntax.             (line 8332)
+* Info files, security:                  Trigger Script Security.
+                                                             (line 8355)
+* Informing others:                      Informing others.   (line 3896)
+* init (subcommand):                     Creating a repository.
+                                                             (line 1338)
+* Installed images (VMS):                File permissions.   (line  815)
+* Internal variables:                    Variables.          (line 8923)
+* Introduction to CVS:                   What is CVS?.       (line  274)
+* Invoking CVS:                          Invoking CVS.       (line 7260)
+* Isolation:                             History browsing.   (line 3466)
+* Join:                                  Merging a branch.   (line 2847)
+* Keeping a checked out copy:            Keeping a checked out copy.
+                                                             (line 8733)
+* Kerberos, using :gserver::             GSSAPI authenticated.
+                                                             (line 1825)
+* Kerberos, using :kserver::             Kerberos authenticated.
+                                                             (line 1862)
+* Kerberos, using kerberized rsh:        Connecting via rsh. (line 1516)
+* Keyword expansion:                     Keyword substitution.
+                                                             (line 4256)
+* Keyword List:                          Keyword list.       (line 4270)
+* Keyword substitution:                  Keyword substitution.
+                                                             (line 4256)
+* Keyword substitution, and merging:     Merging and keywords.
+                                                             (line 3008)
+* Keyword substitution, changing modes:  Substitution modes. (line 4392)
+* Kflag:                                 Substitution modes. (line 4392)
+* kinit:                                 Kerberos authenticated.
+                                                             (line 1887)
+* Known bugs in this manual or CVS:      BUGS.               (line 9806)
+* kserver (client/server connection method), port specification: Remote 
repositories.
+                                                             (line 1409)
+* kserver (client/server connection method), port specification <1>: Password 
authentication server.
+                                                             (line 1562)
+* Layout of repository:                  Repository.         (line  600)
+* Left-hand options:                     Global options.     (line 4799)
+* Linear development:                    Revision numbers.   (line 2202)
+* Link, symbolic, importing:             import output.      (line 6637)
+* List, mailing list:                    What is CVS?.       (line  312)
+* Locally Added:                         File status.        (line 3666)
+* Locally Modified:                      File status.        (line 3663)
+* Locally Removed:                       File status.        (line 3670)
+* LockDir, in CVSROOT/config:            config.             (line 9039)
+* Locker keyword:                        Keyword list.       (line 4293)
+* Locking files:                         Multiple developers.
+                                                             (line 3622)
+* Locks, cvs, and backups:               Backing up.         (line 1358)
+* Locks, cvs, introduction:              Concurrency.        (line 3905)
+* Locks, cvs, technical details:         Locks.              (line  946)
+* log (subcommand):                      log.                (line 6653)
+* Log information, saving:               history file.       (line 8910)
+* Log keyword:                           Keyword list.       (line 4297)
+* Log message entry:                     Committing your changes.
+                                                             (line  488)
+* Log message template:                  rcsinfo.            (line 8754)
+* Log message, correcting:               admin options.      (line 5240)
+* Log message, verifying:                verifymsg.          (line 8452)
+* Log messages:                          loginfo.            (line 8649)
+* Log messages, editing:                 editinfo.           (line 8562)
+* LogHistory, in CVSROOT/config:         config.             (line 9058)
+* Login (subcommand):                    Password authentication client.
+                                                             (line 1723)
+* loginfo (admin file):                  loginfo.            (line 8649)
+* LOGNAME, environment variable:         Variables.          (line 8995)
+* Logout (subcommand):                   Password authentication client.
+                                                             (line 1787)
+* Mail, automatic mail on commit:        Informing others.   (line 3896)
+* Mailing list:                          What is CVS?.       (line  312)
+* Mailing log messages:                  loginfo.            (line 8649)
+* Main trunk and branches:               Branching and merging.
+                                                             (line 2607)
+* make:                                  Builds.             (line 4632)
+* Many repositories:                     Multiple repositories.
+                                                             (line 1279)
+* Markers, conflict:                     Conflicts example.  (line 3846)
+* Merge, an example:                     Conflicts example.  (line 3756)
+* Merge, branch example:                 Merging a branch.   (line 2849)
+* Merging:                               Branching and merging.
+                                                             (line 2607)
+* Merging a branch:                      Merging a branch.   (line 2840)
+* Merging a file:                        Updating a file.    (line 3729)
+* Merging two revisions:                 Merging two revisions.
+                                                             (line 2947)
+* Merging, and keyword substitution:     Merging and keywords.
+                                                             (line 3008)
+* mkmodules:                             Error messages.     (line 9409)
+* Modifications, copying between branches: Branching and merging.
+                                                             (line 2607)
+* Module status:                         Module options.     (line 8241)
+* Module, defining:                      Defining the module.
+                                                             (line 2159)
+* Modules (admin file):                  modules.            (line 8081)
+* Modules file:                          Intro administrative files.
+                                                             (line 1233)
+* Modules file program options:          Module program options.
+                                                             (line 8262)
+* Modules file, changing:                Defining the module.
+                                                             (line 2159)
+* modules.db:                            CVSROOT storage.    (line 1019)
+* modules.dir:                           CVSROOT storage.    (line 1019)
+* modules.pag:                           CVSROOT storage.    (line 1019)
+* Motivation for branches:               Branches motivation.
+                                                             (line 2620)
+* Moving a repository:                   Moving a repository.
+                                                             (line 1390)
+* Moving branch tags:                    Modifying tags.     (line 2480)
+* Moving directories:                    Moving directories. (line 3431)
+* Moving files:                          Moving files.       (line 3337)
+* Moving tags:                           Modifying tags.     (line 2480)
+* Multiple developers:                   Multiple developers.
+                                                             (line 3622)
+* Multiple repositories:                 Multiple repositories.
+                                                             (line 1279)
+* Name keyword:                          Keyword list.       (line 4287)
+* Name, symbolic (tag):                  Tags.               (line 2285)
+* Needs Checkout:                        File status.        (line 3674)
+* Needs Merge:                           File status.        (line 3684)
+* Needs Patch:                           File status.        (line 3679)
+* Newsgroups:                            What is CVS?.       (line  312)
+* notify (admin file):                   Getting Notified.   (line 4048)
+* Notify file, in CVS directory:         Working directory storage.
+                                                             (line 1195)
+* Notify.tmp file, in CVS directory:     Working directory storage.
+                                                             (line 1200)
+* Number, branch:                        Revision numbers.   (line 2202)
+* Number, branch <1>:                    Branches and revisions.
+                                                             (line 2754)
+* Number, revision-:                     Revision numbers.   (line 2202)
+* Option defaults:                       ~/.cvsrc.           (line 4750)
+* Options, global:                       Global options.     (line 4799)
+* Options, in modules file:              Module options.     (line 8225)
+* Outdating revisions:                   admin options.      (line 5262)
+* Overlap:                               Updating a file.    (line 3747)
+* Overriding CVSREAD:                    Global options.     (line 4890)
+* Overriding CVSROOT:                    Global options.     (line 4828)
+* Overriding EDITOR:                     Global options.     (line 4833)
+* Overriding RCSBIN:                     Global options.     (line 4814)
+* Overriding TMPDIR:                     Global options.     (line 4820)
+* Overview:                              Overview.           (line  264)
+* Ownership, saving in CVS:              Special Files.      (line 4678)
+* Parallel repositories:                 Multiple repositories.
+                                                             (line 1279)
+* passwd (admin file):                   Password authentication server.
+                                                             (line 1627)
+* Password client, using:                Password authentication client.
+                                                             (line 1723)
+* Password server, setting up:           Password authentication server.
+                                                             (line 1562)
+* PATH, environment variable:            Environment variables.
+                                                             (line 9135)
+* Per-directory sticky tags/dates:       Working directory storage.
+                                                             (line 1184)
+* Per-module editor:                     editinfo.           (line 8562)
+* Permissions, general:                  File permissions.   (line  763)
+* Permissions, saving in CVS:            Special Files.      (line 4678)
+* Permissions, Windows-specific:         Windows permissions.
+                                                             (line  833)
+* Policy:                                When to commit.     (line 4234)
+* port, specifying for remote repositories: Remote repositories.
+                                                             (line 1409)
+* port, specifying for remote repositories <1>: Password authentication server.
+                                                             (line 1562)
+* Precommit checking:                    commitinfo.         (line 8410)
+* pserver (client/server connection method), port specification: Remote 
repositories.
+                                                             (line 1409)
+* pserver (client/server connection method), port specification <1>: Password 
authentication server.
+                                                             (line 1562)
+* pserver (subcommand):                  Password authentication server.
+                                                             (line 1562)
+* PVCS, importing files from:            From other version control systems.
+                                                             (line 2121)
+* RCS history files:                     Repository files.   (line  745)
+* RCS revision numbers:                  Tags.               (line 2270)
+* RCS, importing files from:             From other version control systems.
+                                                             (line 2087)
+* RCS-style locking:                     Multiple developers.
+                                                             (line 3622)
+* RCSBIN, in CVSROOT/config:             config.             (line 9013)
+* RCSBIN, internal variable:             Variables.          (line 8949)
+* RCSBIN, overriding:                    Global options.     (line 4814)
+* RCSfile keyword:                       Keyword list.       (line 4320)
+* rcsinfo (admin file):                  rcsinfo.            (line 8754)
+* rdiff (subcommand):                    rdiff.              (line 6808)
+* Read-only files, and -r:               Global options.     (line 4872)
+* Read-only files, and CVSREAD:          Environment variables.
+                                                             (line 9106)
+* Read-only files, and watches:          Setting a watch.    (line 3972)
+* Read-only files, in repository:        File permissions.   (line  763)
+* Read-only mode:                        Global options.     (line 4853)
+* Read-only repository access:           Read-only access.   (line 1923)
+* readers (admin file):                  Read-only access.   (line 1923)
+* Recursive (directory descending):      Recursive behavior. (line 3093)
+* Reference manual (files):              Administrative files.
+                                                             (line 8069)
+* Reference manual for variables:        Environment variables.
+                                                             (line 9096)
+* Reference, commands:                   Invoking CVS.       (line 7260)
+* Regular expression syntax:             syntax.             (line 8336)
+* Regular modules:                       Regular modules.    (line 8132)
+* release (subcommand):                  release.            (line 6908)
+* Releases, revisions and versions:      Versions revisions releases.
+                                                             (line 2222)
+* Releasing your working copy:           Cleaning up.        (line  531)
+* Remote repositories:                   Remote repositories.
+                                                             (line 1409)
+* Remote repositories, port specification: Remote repositories.
+                                                             (line 1409)
+* Remote repositories, port specification <1>: Password authentication server.
+                                                             (line 1562)
+* Remove (subcommand):                   Removing files.     (line 3252)
+* remove (subcommand):                   remove.             (line 6994)
+* Removing a change:                     Merging two revisions.
+                                                             (line 2950)
+* Removing branch tags:                  Modifying tags.     (line 2462)
+* Removing directories:                  Removing directories.
+                                                             (line 3315)
+* Removing files:                        Removing files.     (line 3224)
+* Removing tags:                         Modifying tags.     (line 2462)
+* Removing your working copy:            Cleaning up.        (line  531)
+* Renaming directories:                  Moving directories. (line 3431)
+* Renaming files:                        Moving files.       (line 3337)
+* Renaming tags:                         Modifying tags.     (line 2500)
+* Replacing a log message:               admin options.      (line 5240)
+* Reporting bugs:                        BUGS.               (line 9748)
+* Repositories, multiple:                Multiple repositories.
+                                                             (line 1279)
+* Repositories, remote:                  Remote repositories.
+                                                             (line 1409)
+* Repositories, remote, port specification: Remote repositories.
+                                                             (line 1409)
+* Repositories, remote, port specification <1>: Password authentication server.
+                                                             (line 1562)
+* Repository (intro):                    Repository.         (line  600)
+* Repository file, in CVS directory:     Working directory storage.
+                                                             (line 1061)
+* Repository, backing up:                Backing up.         (line 1354)
+* Repository, example:                   Repository.         (line  600)
+* Repository, how data is stored:        Repository storage. (line  670)
+* Repository, moving:                    Moving a repository.
+                                                             (line 1390)
+* Repository, setting up:                Creating a repository.
+                                                             (line 1309)
+* RereadLogAfterVerify, in CVSROOT/config: config.           (line 9065)
+* Reserved checkouts:                    Multiple developers.
+                                                             (line 3622)
+* Resetting sticky tags:                 Sticky tags.        (line 2567)
+* Resolving a conflict:                  Conflicts example.  (line 3850)
+* Restoring old version of removed file: Merging two revisions.
+                                                             (line 2960)
+* Resurrecting old version of dead file: Merging two revisions.
+                                                             (line 2960)
+* Retrieve a branch:                     Accessing branches. (line 2675)
+* Retrieving an old revision using tags: Tags.               (line 2345)
+* Reverting to repository version:       Editing files.      (line 4111)
+* Revision keyword:                      Keyword list.       (line 4323)
+* Revision management:                   Revision management.
+                                                             (line 4223)
+* Revision numbers:                      Revision numbers.   (line 2202)
+* Revision numbers (branches):           Branches and revisions.
+                                                             (line 2754)
+* Revision tree:                         Revision numbers.   (line 2202)
+* Revision tree, making branches:        Branching and merging.
+                                                             (line 2607)
+* Revisions, merging differences between: Merging two revisions.
+                                                             (line 2947)
+* Revisions, versions and releases:      Versions revisions releases.
+                                                             (line 2222)
+* Right-hand options:                    Common options.     (line 4913)
+* Root file, in CVS directory:           Specifying a repository.
+                                                             (line  657)
+* rsh:                                   Connecting via rsh. (line 1486)
+* rsh replacements (Kerberized, SSH, &c): Connecting via rsh.
+                                                             (line 1516)
+* rtag (subcommand):                     Tagging by date/tag.
+                                                             (line 2417)
+* rtag, creating a branch using:         Creating a branch.  (line 2638)
+* Saving space:                          admin options.      (line 5262)
+* SCCS, importing files from:            From other version control systems.
+                                                             (line 2114)
+* Security, file permissions in repository: File permissions.
+                                                             (line  763)
+* Security, GSSAPI:                      GSSAPI authenticated.
+                                                             (line 1825)
+* Security, Kerberos:                    Kerberos authenticated.
+                                                             (line 1862)
+* Security, of pserver:                  Password authentication security.
+                                                             (line 1793)
+* Security, setuid:                      File permissions.   (line  815)
+* Server, CVS:                           Remote repositories.
+                                                             (line 1409)
+* Server, temporary directories:         Server temporary directory.
+                                                             (line 1990)
+* Setgid:                                File permissions.   (line  815)
+* Setting up a repository:               Creating a repository.
+                                                             (line 1309)
+* Setuid:                                File permissions.   (line  815)
+* Source keyword:                        Keyword list.       (line 4326)
+* Source, getting CVS source:            What is CVS?.       (line  306)
+* Source, getting from CVS:              Getting the source. (line  464)
+* Special files:                         Special Files.      (line 4678)
+* Specifying dates:                      Common options.     (line 4925)
+* Spreading information:                 Informing others.   (line 3896)
+* ssh:                                   Connecting via rsh. (line 1480)
+* SSH (rsh replacement):                 Connecting via rsh. (line 1516)
+* Starting a project with CVS:           Starting a new project.
+                                                             (line 2021)
+* State keyword:                         Keyword list.       (line 4329)
+* Status of a file:                      File status.        (line 3653)
+* Status of a module:                    Module options.     (line 8241)
+* Sticky date:                           Sticky tags.        (line 2574)
+* Sticky tags:                           Sticky tags.        (line 2542)
+* Sticky tags, resetting:                Sticky tags.        (line 2567)
+* Sticky tags/dates, per-directory:      Working directory storage.
+                                                             (line 1184)
+* Storing log messages:                  loginfo.            (line 8649)
+* Stream authentication:                 Global options.     (line 4806)
+* Structure:                             Structure.          (line 4697)
+* Subdirectories:                        Recursive behavior. (line 3093)
+* Support, getting CVS support:          BUGS.               (line 9751)
+* Symbolic link, importing:              import output.      (line 6637)
+* Symbolic links:                        Special Files.      (line 4678)
+* Symbolic name (tag):                   Tags.               (line 2285)
+* Syntax of info files:                  syntax.             (line 8332)
+* SystemAuth, in CVSROOT/config:         config.             (line 9019)
+* tag (subcommand):                      Tagging the working directory.
+                                                             (line 2392)
+* Tag file, in CVS directory:            Working directory storage.
+                                                             (line 1184)
+* Tag program:                           Module options.     (line 8249)
+* tag, command, introduction:            Tags.               (line 2285)
+* tag, creating a branch using:          Creating a branch.  (line 2638)
+* Tag, example:                          Tags.               (line 2305)
+* Tag, retrieving old revisions:         Tags.               (line 2345)
+* Tag, symbolic name:                    Tags.               (line 2285)
+* taginfo (admin file):                  taginfo.            (line 8782)
+* Tags:                                  Tags.               (line 2266)
+* Tags, deleting:                        Modifying tags.     (line 2462)
+* Tags, logging:                         taginfo.            (line 8782)
+* Tags, moving:                          Modifying tags.     (line 2480)
+* Tags, renaming:                        Modifying tags.     (line 2500)
+* Tags, sticky:                          Sticky tags.        (line 2542)
+* Tags, verifying:                       taginfo.            (line 8782)
+* tc, Trivial Compiler (example):        A sample session.   (line  451)
+* Team of developers:                    Multiple developers.
+                                                             (line 3622)
+* TEMP, environment variable:            Environment variables.
+                                                             (line 9204)
+* Template file, in CVS directory:       Working directory storage.
+                                                             (line 1225)
+* Template for log message:              rcsinfo.            (line 8754)
+* Temporary directories, and server:     Server temporary directory.
+                                                             (line 1990)
+* Temporary files, location of:          Environment variables.
+                                                             (line 9205)
+* Third-party sources:                   Tracking sources.   (line 4469)
+* Time:                                  Common options.     (line 4925)
+* Timezone, in input:                    Common options.     (line 4941)
+* Timezone, in output:                   log.                (line 6662)
+* TMP, environment variable:             Environment variables.
+                                                             (line 9203)
+* TMPDIR, environment variable:          Environment variables.
+                                                             (line 9202)
+* TMPDIR, overriding:                    Global options.     (line 4820)
+* TopLevelAdmin, in CVSROOT/config:      config.             (line 9026)
+* Trace:                                 Global options.     (line 4881)
+* Traceability:                          History browsing.   (line 3466)
+* Tracking sources:                      Tracking sources.   (line 4469)
+* Transactions, atomic, lack of:         Concurrency.        (line 3926)
+* Trigger scripts:                       Trigger Scripts.    (line 8317)
+* Trigger scripts, security:             Trigger Script Security.
+                                                             (line 8355)
+* Trivial Compiler (example):            A sample session.   (line  451)
+* Typical repository:                    Repository.         (line  600)
+* Umask, for repository files:           File permissions.   (line  791)
+* Undoing a change:                      Merging two revisions.
+                                                             (line 2950)
+* unedit (subcommand):                   Editing files.      (line 4111)
+* Unknown:                               File status.        (line 3698)
+* Unreserved checkouts:                  Multiple developers.
+                                                             (line 3622)
+* Unresolved Conflict:                   File status.        (line 3688)
+* Up-to-date:                            File status.        (line 3658)
+* update (subcommand):                   update.             (line 7075)
+* Update, introduction:                  Updating a file.    (line 3729)
+* update, to display file status:        File status.        (line 3719)
+* Updating a file:                       Updating a file.    (line 3729)
+* User aliases:                          Password authentication server.
+                                                             (line 1656)
+* User variables:                        Variables.          (line 8967)
+* USER, environment variable:            Variables.          (line 8998)
+* USER, internal variable:               Variables.          (line 8960)
+* users (admin file):                    Getting Notified.   (line 4063)
+* val-tags file, and read-only access to projects: File permissions.
+                                                             (line  783)
+* val-tags file, forcing tags into:      Error messages.     (line 9435)
+* Variables:                             Variables.          (line 8923)
+* Vendor:                                Tracking sources.   (line 4473)
+* Vendor branch:                         Tracking sources.   (line 4473)
+* 'verifymsg' (admin file):              verifymsg.          (line 8452)
+* 'verifymsg', changing the log message: verifymsg.          (line 8477)
+* 'verifymsg', changing the log message <1>: config.         (line 9065)
+* version (subcommand):                  Invoking CVS.       (line 8032)
+* Versions, of CVS:                      Compatibility.      (line 9221)
+* Versions, revisions and releases:      Versions revisions releases.
+                                                             (line 2222)
+* Viewing differences:                   Viewing differences.
+                                                             (line  575)
+* VISUAL, environment variable:          Committing your changes.
+                                                             (line  505)
+* VISUAL, environment variable <1>:      Environment variables.
+                                                             (line 9130)
+* VISUAL, internal variable:             Variables.          (line 8956)
+* watch add (subcommand):                Getting Notified.   (line 4001)
+* watch off (subcommand):                Setting a watch.    (line 3986)
+* watch on (subcommand):                 Setting a watch.    (line 3970)
+* watch remove (subcommand):             Getting Notified.   (line 4042)
+* watchers (subcommand):                 Watch information.  (line 4136)
+* Watches:                               Watches.            (line 3949)
+* wdiff (import example):                First import.       (line 4504)
+* Web pages, maintaining with CVS:       Keeping a checked out copy.
+                                                             (line 8733)
+* What (shell command):                  Using keywords.     (line 4362)
+* What branches are good for:            Branches motivation.
+                                                             (line 2620)
+* What is CVS not?:                      What is CVS not?.   (line  333)
+* What is CVS?:                          What is CVS?.       (line  274)
+* When to commit:                        When to commit.     (line 4234)
+* Windows, and permissions:              Windows permissions.
+                                                             (line  833)
+* Work-session, example of:              A sample session.   (line  451)
+* Working copy:                          Multiple developers.
+                                                             (line 3622)
+* Working copy, removing:                Cleaning up.        (line  531)
+* Wrappers:                              Wrappers.           (line 8280)
+* writers (admin file):                  Read-only access.   (line 1923)
+* Ximbiot:                               BUGS.               (line 9751)
+* xinetd, configuring for pserver:       Password authentication server.
+                                                             (line 1562)
+* Zone, time, in input:                  Common options.     (line 4941)
+* Zone, time, in output:                 log.                (line 6662)
+

Index: cvs.txt.gz
===================================================================
RCS file: cvs.txt.gz
diff -N cvs.txt.gz
Binary files /dev/null and /tmp/cvseh9EiW differ

Index: index.html
===================================================================
RCS file: index.html
diff -N index.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ index.html  28 Dec 2015 15:57:45 -0000      1.1
@@ -0,0 +1,69 @@
+<!--#include virtual="/server/header.html" -->
+<title>CVS Manual - GNU Project - Free Software Foundation (FSF)</title>
+<!--#include virtual="/server/banner.html" -->
+<h2>CVS Manual</h2>
+
+<address>Free Software Foundation</address>
+<address>last updated December 28, 2015</address>
+
+<p>This manual (cvs) is available in the following formats:</p>
+
+<ul>
+<li><a href="cvs.html">HTML
+    (796K bytes)</a> - entirely on one web page.</li>
+<li><a href="html_node/index.html">HTML</a> - with one web page per
+    node.</li>
+<li><a href="cvs.html.gz">HTML compressed
+    (164K gzipped characters)</a> - entirely on
+    one web page.</li>
+<li><a href="cvs.html_node.tar.gz">HTML compressed
+    (212K gzipped tar file)</a> -
+    with one web page per node.</li>
+<li><a href="cvs.info.tar.gz">Info document
+    (256K bytes gzipped tar file)</a>.</li>
+<li><a href="cvs.txt">ASCII text
+    (448K bytes)</a>.</li>
+<li><a href="cvs.txt.gz">ASCII text compressed
+    (124K bytes gzipped)</a>.</li>
+<li><a href="cvs.dvi.gz">TeX dvi file
+    (224K bytes gzipped)</a>.</li>
+<li><a href="cvs.pdf">PDF file
+    (1160K bytes)</a>.</li>
+<li><a href="cvs.texi.tar.gz">Texinfo source
+    (184K bytes gzipped tar file).</a></li>
+</ul>
+
+<p>You can <a href="http://shop.fsf.org/";>buy printed copies of
+some manuals</a> (among other items) from the Free Software Foundation;
+this helps support FSF activities.</p>
+
+<p>(This page generated by the <a 
href="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh";>gendocs.sh
+script</a>.)</p>
+
+<!-- If needed, change the copyright block at the bottom. In general,
+     all pages on the GNU web server should have the section about
+     verbatim copying.  Please do NOT remove this without talking
+     with the webmasters first.
+     Please make sure the copyright date is consistent with the document
+     and that it is like this: "2001, 2002", not this: "2001-2002". -->
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+
+<p>Please send general FSF &amp; GNU inquiries to
+<a href="mailto:address@hidden";>&lt;address@hidden&gt;</a>.
+There are also <a href="/contact/">other ways to contact</a>
+the FSF.<br />
+Please send broken links and other corrections or suggestions to
+<a href="mailto:bug-cvs@@nongnu.org";>&lt;bug-cvs@@nongnu.org&gt;</a>.</p>
+
+<p>Copyright &copy; 2013 Free Software Foundation, Inc.</p>
+
+<p>Verbatim copying and distribution of this entire article are
+permitted worldwide, without royalty, in any medium, provided this
+notice, and the copyright notice, are preserved.</p>
+
+</div>
+</div>
+</body>
+</html>

Index: html_node/A-sample-session.html
===================================================================
RCS file: html_node/A-sample-session.html
diff -N html_node/A-sample-session.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/A-sample-session.html     28 Dec 2015 15:57:45 -0000      1.1
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: A sample session</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: A sample session">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
A sample session">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Overview.html#Overview" rel="up" title="Overview">
+<link href="Getting-the-source.html#Getting-the-source" rel="next" 
title="Getting the source">
+<link href="What-is-CVS-not_003f.html#What-is-CVS-not_003f" rel="prev" 
title="What is CVS not?">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="A-sample-session"></a>
+<div class="header">
+<p>
+Previous: <a href="What-is-CVS-not_003f.html#What-is-CVS-not_003f" 
accesskey="p" rel="prev">What is CVS not?</a>, Up: <a 
href="Overview.html#Overview" accesskey="u" rel="up">Overview</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="A-sample-session-1"></a>
+<h3 class="section">1.3 A sample session</h3>
+<a name="index-Example-of-a-work_002dsession"></a>
+<a name="index-Getting-started"></a>
+<a name="index-Work_002dsession_002c-example-of"></a>
+<a name="index-tc_002c-Trivial-Compiler-_0028example_0029"></a>
+<a name="index-Trivial-Compiler-_0028example_0029"></a>
+
+
+<p>As a way of introducing <small>CVS</small>, we&rsquo;ll go through a
+typical work-session using <small>CVS</small>.  The first thing
+to understand is that <small>CVS</small> stores all files in a
+centralized <em>repository</em> (see <a 
href="Repository.html#Repository">Repository</a>); this
+section assumes that a repository is set up.
+</p>
+<p>Suppose you are working on a simple compiler.  The source
+consists of a handful of C files and a <samp>Makefile</samp>.
+The compiler is called &lsquo;<samp>tc</samp>&rsquo; (Trivial Compiler),
+and the repository is set up so that there is a module
+called &lsquo;<samp>tc</samp>&rsquo;.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Getting-the-source.html#Getting-the-source" accesskey="1">Getting the 
source</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creating a 
workspace
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Committing-your-changes.html#Committing-your-changes" 
accesskey="2">Committing your changes</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Making your work available to others
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Cleaning-up.html#Cleaning-up" accesskey="3">Cleaning 
up</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Cleaning up
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Viewing-differences.html#Viewing-differences" accesskey="4">Viewing 
differences</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Viewing 
differences
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Accessing-branches.html
===================================================================
RCS file: html_node/Accessing-branches.html
diff -N html_node/Accessing-branches.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Accessing-branches.html   28 Dec 2015 15:57:45 -0000      1.1
@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Accessing 
branches</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Accessing branches">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Accessing branches">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Branches-and-revisions.html#Branches-and-revisions" rel="next" 
title="Branches and revisions">
+<link href="Creating-a-branch.html#Creating-a-branch" rel="prev" 
title="Creating a branch">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Accessing-branches"></a>
+<div class="header">
+<p>
+Next: <a href="Branches-and-revisions.html#Branches-and-revisions" 
accesskey="n" rel="next">Branches and revisions</a>, Previous: <a 
href="Creating-a-branch.html#Creating-a-branch" accesskey="p" 
rel="prev">Creating a branch</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Accessing-branches-1"></a>
+<h3 class="section">5.3 Accessing branches</h3>
+<a name="index-Check-out-a-branch"></a>
+<a name="index-Retrieve-a-branch"></a>
+<a name="index-Access-a-branch"></a>
+<a name="index-Identifying-a-branch"></a>
+<a name="index-Branch_002c-check-out"></a>
+<a name="index-Branch_002c-retrieving"></a>
+<a name="index-Branch_002c-accessing"></a>
+<a name="index-Branch_002c-identifying"></a>
+
+<p>You can retrieve a branch in one of two ways: by
+checking it out fresh from the repository, or by
+switching an existing working copy over to the branch.
+</p>
+<p>To check out a branch from the repository, invoke
+&lsquo;<samp>checkout</samp>&rsquo; with the &lsquo;<samp>-r</samp>&rsquo; 
flag, followed by
+the tag name of the branch (see <a 
href="Creating-a-branch.html#Creating-a-branch">Creating a branch</a>):
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -r rel-1-0-patches tc
+</pre></div>
+
+<p>Or, if you already have a working copy, you can switch
+it to a given branch with &lsquo;<samp>update -r</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cvs update -r rel-1-0-patches tc
+</pre></div>
+
+<p>or equivalently:
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ cvs update -r rel-1-0-patches
+</pre></div>
+
+<p>It does not matter if the working copy was originally
+on the main trunk or on some other branch &ndash; the above
+command will switch it to the named branch.  And
+similarly to a regular &lsquo;<samp>update</samp>&rsquo; command,
+&lsquo;<samp>update -r</samp>&rsquo; merges any changes you have made,
+notifying you of conflicts where they occur.
+</p>
+<p>Once you have a working copy tied to a particular
+branch, it remains there until you tell it otherwise.
+This means that changes checked in from the working
+copy will add new revisions on that branch, while
+leaving the main trunk and other branches unaffected.
+</p>
+<a name="index-Branches_002c-sticky"></a>
+<p>To find out what branch a working copy is on, you can
+use the &lsquo;<samp>status</samp>&rsquo; command.  In its output, look for
+the field named &lsquo;<samp>Sticky tag</samp>&rsquo; (see <a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a>)
+&ndash; that&rsquo;s <small>CVS</small>&rsquo;s way of telling you the branch, 
if
+any, of the current working files:
+</p>
+<div class="example">
+<pre class="example">$ cvs status -v driver.c backend.c
+===================================================================
+File: driver.c          Status: Up-to-date
+
+    Version:            1.7     Sat Dec  5 18:25:54 1992
+    RCS Version:        1.7     /u/cvsroot/yoyodyne/tc/driver.c,v
+    Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+    Existing Tags:
+        rel-1-0-patches             (branch: 1.7.2)
+        rel-1-0                     (revision: 1.7)
+
+===================================================================
+File: backend.c         Status: Up-to-date
+
+    Version:            1.4     Tue Dec  1 14:39:01 1992
+    RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
+    Sticky Tag:         rel-1-0-patches (branch: 1.4.2)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+    Existing Tags:
+        rel-1-0-patches             (branch: 1.4.2)
+        rel-1-0                     (revision: 1.4)
+        rel-0-4                     (revision: 1.4)
+
+</pre></div>
+
+<p>Don&rsquo;t be confused by the fact that the branch numbers
+for each file are different (&lsquo;<samp>1.7.2</samp>&rsquo; and
+&lsquo;<samp>1.4.2</samp>&rsquo; respectively).  The branch tag is the
+same, &lsquo;<samp>rel-1-0-patches</samp>&rsquo;, and the files are
+indeed on the same branch.  The numbers simply reflect
+the point in each file&rsquo;s revision history at which the
+branch was made.  In the above example, one can deduce
+that &lsquo;<samp>driver.c</samp>&rsquo; had been through more changes than
+&lsquo;<samp>backend.c</samp>&rsquo; before this branch was created.
+</p>
+<p>See <a href="Branches-and-revisions.html#Branches-and-revisions">Branches 
and revisions</a> for details about how
+branch numbers are constructed.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Branches-and-revisions.html#Branches-and-revisions" 
accesskey="n" rel="next">Branches and revisions</a>, Previous: <a 
href="Creating-a-branch.html#Creating-a-branch" accesskey="p" 
rel="prev">Creating a branch</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Adding-and-removing.html
===================================================================
RCS file: html_node/Adding-and-removing.html
diff -N html_node/Adding-and-removing.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Adding-and-removing.html  28 Dec 2015 15:57:46 -0000      1.1
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Adding and 
removing</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Adding and removing">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Adding and removing">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Adding-files.html#Adding-files" rel="next" title="Adding files">
+<link href="Recursive-behavior.html#Recursive-behavior" rel="prev" 
title="Recursive behavior">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Adding-and-removing"></a>
+<div class="header">
+<p>
+Next: <a href="History-browsing.html#History-browsing" accesskey="n" 
rel="next">History browsing</a>, Previous: <a 
href="Recursive-behavior.html#Recursive-behavior" accesskey="p" 
rel="prev">Recursive behavior</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Adding_002c-removing_002c-and-renaming-files-and-directories"></a>
+<h2 class="chapter">7 Adding, removing, and renaming files and directories</h2>
+
+<p>In the course of a project, one will often add new
+files.  Likewise with removing or renaming, or with
+directories.  The general concept to keep in mind in
+all these cases is that instead of making an
+irreversible change you want <small>CVS</small> to record the
+fact that a change has taken place, just as with
+modifying an existing file.  The exact mechanisms to do
+this in <small>CVS</small> vary depending on the situation.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Adding-files.html#Adding-files" accesskey="1">Adding 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Adding files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Removing-files.html#Removing-files" accesskey="2">Removing 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Removing files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Removing-directories.html#Removing-directories" accesskey="3">Removing 
directories</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Removing directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Moving-files.html#Moving-files" accesskey="4">Moving 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Moving and 
renaming files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Moving-directories.html#Moving-directories" accesskey="5">Moving 
directories</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Moving 
and renaming directories
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Adding-files.html
===================================================================
RCS file: html_node/Adding-files.html
diff -N html_node/Adding-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Adding-files.html 28 Dec 2015 15:57:46 -0000      1.1
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Adding files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Adding files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Adding files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="up" 
title="Adding and removing">
+<link href="Removing-files.html#Removing-files" rel="next" title="Removing 
files">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="prev" 
title="Adding and removing">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Adding-files"></a>
+<div class="header">
+<p>
+Next: <a href="Removing-files.html#Removing-files" accesskey="n" 
rel="next">Removing files</a>, Up: <a 
href="Adding-and-removing.html#Adding-and-removing" accesskey="u" 
rel="up">Adding and removing</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Adding-files-to-a-directory"></a>
+<h3 class="section">7.1 Adding files to a directory</h3>
+<a name="index-Adding-files"></a>
+
+<p>To add a new file to a directory, follow these steps.
+</p>
+<ul>
+<li> You must have a working copy of the directory.
+See <a href="Getting-the-source.html#Getting-the-source">Getting the 
source</a>.
+
+</li><li> Create the new file inside your working copy of the directory.
+
+</li><li> Use &lsquo;<samp>cvs add <var>filename</var></samp>&rsquo; to tell 
<small>CVS</small> that you
+want to version control the file.  If the file contains
+binary data, specify &lsquo;<samp>-kb</samp>&rsquo; (see <a 
href="Binary-files.html#Binary-files">Binary files</a>).
+
+</li><li> Use &lsquo;<samp>cvs commit <var>filename</var></samp>&rsquo; to 
actually check
+in the file into the repository.  Other developers
+cannot see the file until you perform this step.
+</li></ul>
+
+<p>You can also use the <code>add</code> command to add a new
+directory.
+</p>
+<p>Unlike most other commands, the <code>add</code> command is
+not recursive.  You have to explicitly name files and
+directories that you wish to add to the repository.
+However, each directory will need to be added
+separately before you will be able to add new files
+to those directories.
+</p>
+<div class="example">
+<pre class="example">$ mkdir -p foo/bar
+$ cp ~/myfile foo/bar/myfile
+$ cvs add foo foo/bar
+$ cvs add foo/bar/myfile
+</pre></div>
+
+<a name="index-add-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-add"></a>Command: <strong>cvs add</strong> 
<em>[<code>-k</code> kflag] [<code>-m</code> message] files &hellip;</em></dt>
+<dd>
+<p>Schedule <var>files</var> to be added to the repository.
+The files or directories specified with <code>add</code> must
+already exist in the current directory.  To add a whole
+new directory hierarchy to the source repository (for
+example, files received from a third-party vendor), use
+the <code>import</code> command instead.  See <a 
href="import.html#import">import</a>.
+</p>
+<p>The added files are not placed in the source repository
+until you use <code>commit</code> to make the change
+permanent.  Doing an <code>add</code> on a file that was
+removed with the <code>remove</code> command will undo the
+effect of the <code>remove</code>, unless a <code>commit</code>
+command intervened.  See <a href="Removing-files.html#Removing-files">Removing 
files</a>, for an
+example.
+</p>
+<p>The &lsquo;<samp>-k</samp>&rsquo; option specifies the default way that
+this file will be checked out; for more information see
+<a href="Substitution-modes.html#Substitution-modes">Substitution modes</a>.
+</p>
+<p>The &lsquo;<samp>-m</samp>&rsquo; option specifies a description for the
+file.  This description appears in the history log (if
+it is enabled, see <a href="history-file.html#history-file">history file</a>). 
 It will also be
+saved in the version history inside the repository when
+the file is committed.  The <code>log</code> command displays
+this description.  The description can be changed using
+&lsquo;<samp>admin -t</samp>&rsquo;.  See <a 
href="admin.html#admin">admin</a>.  If you omit the
+&lsquo;<samp>-m <var>description</var></samp>&rsquo; flag, an empty string will
+be used.  You will not be prompted for a description.
+</p></dd></dl>
+
+<p>For example, the following commands add the file
+<samp>backend.c</samp> to the repository:
+</p>
+<div class="example">
+<pre class="example">$ cvs add backend.c
+$ cvs commit -m &quot;Early version. Not yet compilable.&quot; backend.c
+</pre></div>
+
+<p>When you add a file it is added only on the branch
+which you are working on (see <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>).  You can
+later merge the additions to another branch if you want
+(see <a 
href="Merging-adds-and-removals.html#Merging-adds-and-removals">Merging adds 
and removals</a>).
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Removing-files.html#Removing-files" accesskey="n" 
rel="next">Removing files</a>, Up: <a 
href="Adding-and-removing.html#Adding-and-removing" accesskey="u" 
rel="up">Adding and removing</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Administrative-files.html
===================================================================
RCS file: html_node/Administrative-files.html
diff -N html_node/Administrative-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Administrative-files.html 28 Dec 2015 15:57:46 -0000      1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Administrative 
files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Administrative files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Administrative files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="modules.html#modules" rel="next" title="modules">
+<link href="Invoking-CVS.html#Invoking-CVS" rel="prev" title="Invoking CVS">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Administrative-files"></a>
+<div class="header">
+<p>
+Next: <a href="Environment-variables.html#Environment-variables" accesskey="n" 
rel="next">Environment variables</a>, Previous: <a 
href="Invoking-CVS.html#Invoking-CVS" accesskey="p" rel="prev">Invoking 
CVS</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Reference-manual-for-Administrative-files"></a>
+<h2 class="appendix">Appendix C Reference manual for Administrative files</h2>
+<a name="index-Administrative-files-_0028reference_0029"></a>
+<a name="index-Files_002c-reference-manual"></a>
+<a name="index-Reference-manual-_0028files_0029"></a>
+<a name="index-CVSROOT-_0028file_0029"></a>
+
+<p>Inside the repository, in the directory
+<samp>$CVSROOT/CVSROOT</samp>, there are a number of
+supportive files for <small>CVS</small>.  You can use <small>CVS</small> in a 
limited
+fashion without any of them, but if they are set up
+properly they can help make life easier.  For a
+discussion of how to edit them, see <a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a>.
+</p>
+<p>The most important of these files is the <samp>modules</samp>
+file, which defines the modules inside the repository.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="modules.html#modules" 
accesskey="1">modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Defining modules
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Wrappers.html#Wrappers" 
accesskey="2">Wrappers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Specify binary-ness based on file name
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Trigger-Scripts.html#Trigger-Scripts" accesskey="3">Trigger 
Scripts</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Some notes 
on the commit support files and
+                               taginfo, referenced below.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="commit-files.html#commit-files" accesskey="4">commit 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The commit 
support files (commitinfo,
+                                verifymsg, editinfo, loginfo)
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="taginfo.html#taginfo" 
accesskey="5">taginfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Verifying/Logging tags
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="rcsinfo.html#rcsinfo" 
accesskey="6">rcsinfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Templates for the log messages
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="cvsignore.html#cvsignore" 
accesskey="7">cvsignore</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Ignoring files via cvsignore
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="checkoutlist.html#checkoutlist" 
accesskey="8">checkoutlist</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Adding your own administrative files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="history-file.html#history-file" accesskey="9">history 
file</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">History 
information
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Variables.html#Variables">Variables</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Various variables are expanded
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="config.html#config">config</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Miscellaneous CVS configuration
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Alias-modules.html
===================================================================
RCS file: html_node/Alias-modules.html
diff -N html_node/Alias-modules.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Alias-modules.html        28 Dec 2015 15:57:46 -0000      1.1
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Alias modules</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Alias modules">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Alias modules">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="modules.html#modules" rel="up" title="modules">
+<link href="Regular-modules.html#Regular-modules" rel="next" title="Regular 
modules">
+<link href="modules.html#modules" rel="prev" title="modules">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Alias-modules"></a>
+<div class="header">
+<p>
+Next: <a href="Regular-modules.html#Regular-modules" accesskey="n" 
rel="next">Regular modules</a>, Up: <a href="modules.html#modules" 
accesskey="u" rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Alias-modules-1"></a>
+<h4 class="appendixsubsec">C.1.1 Alias modules</h4>
+<a name="index-Alias-modules"></a>
+<a name="index-_002da_002c-in-modules-file"></a>
+
+<p>Alias modules are the simplest kind of module:
+</p>
+<dl compact="compact">
+<dt><code><var>mname</var> -a <var>aliases</var>&hellip;</code></dt>
+<dd><p>This represents the simplest way of defining a module
+<var>mname</var>.  The &lsquo;<samp>-a</samp>&rsquo; flags the definition as a
+simple alias: <small>CVS</small> will treat any use of <var>mname</var> (as
+a command argument) as if the list of names
+<var>aliases</var> had been specified instead.
+<var>aliases</var> may contain either other module names or
+paths.  When you use paths in aliases, <code>checkout</code>
+creates all intermediate directories in the working
+directory, just as if the path had been specified
+explicitly in the <small>CVS</small> arguments.
+</p></dd>
+</dl>
+
+<p>For example, if the modules file contains:
+</p>
+<div class="example">
+<pre class="example">amodule -a first-dir
+</pre></div>
+
+<p>then the following two commands are equivalent:
+</p>
+<div class="example">
+<pre class="example">$ cvs co amodule
+$ cvs co first-dir
+</pre></div>
+
+<p>and they each would provide output such as:
+</p>
+<div class="example">
+<pre class="example">cvs checkout: Updating first-dir
+U first-dir/file1
+U first-dir/file2
+cvs checkout: Updating first-dir/sdir
+U first-dir/sdir/sfile
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Ampersand-modules.html
===================================================================
RCS file: html_node/Ampersand-modules.html
diff -N html_node/Ampersand-modules.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Ampersand-modules.html    28 Dec 2015 15:57:47 -0000      1.1
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Ampersand modules</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Ampersand modules">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Ampersand modules">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="modules.html#modules" rel="up" title="modules">
+<link href="Excluding-directories.html#Excluding-directories" rel="next" 
title="Excluding directories">
+<link href="Regular-modules.html#Regular-modules" rel="prev" title="Regular 
modules">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Ampersand-modules"></a>
+<div class="header">
+<p>
+Next: <a href="Excluding-directories.html#Excluding-directories" accesskey="n" 
rel="next">Excluding directories</a>, Previous: <a 
href="Regular-modules.html#Regular-modules" accesskey="p" rel="prev">Regular 
modules</a>, Up: <a href="modules.html#modules" accesskey="u" 
rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Ampersand-modules-1"></a>
+<h4 class="appendixsubsec">C.1.3 Ampersand modules</h4>
+<a name="index-Ampersand-modules"></a>
+<a name="index-_0026_002c-in-modules-file"></a>
+
+<p>A module definition can refer to other modules by
+including &lsquo;<samp>&amp;<var>module</var></samp>&rsquo; in its definition.
+</p><div class="example">
+<pre class="example"><var>mname</var> [ options ] 
<var>&amp;module</var>&hellip;
+</pre></div>
+
+<p>Then getting the module creates a subdirectory for each such
+module, in the directory containing the module.  For
+example, if modules contains
+</p>
+<div class="example">
+<pre class="example">ampermod &amp;first-dir
+</pre></div>
+
+<p>then a checkout will create an <code>ampermod</code> directory
+which contains a directory called <code>first-dir</code>,
+which in turns contains all the directories and files
+which live there.  For example, the command
+</p>
+<div class="example">
+<pre class="example">$ cvs co ampermod
+</pre></div>
+
+<p>will create the following files:
+</p>
+<div class="example">
+<pre class="example">ampermod/first-dir/file1
+ampermod/first-dir/file2
+ampermod/first-dir/sdir/sfile
+</pre></div>
+
+<p>There is one quirk/bug: the messages that <small>CVS</small>
+prints omit the <samp>ampermod</samp>, and thus do not
+correctly display the location to which it is checking
+out the files:
+</p>
+<div class="example">
+<pre class="example">$ cvs co ampermod
+cvs checkout: Updating first-dir
+U first-dir/file1
+U first-dir/file2
+cvs checkout: Updating first-dir/sdir
+U first-dir/sdir/sfile
+$
+</pre></div>
+
+<p>Do not rely on this buggy behavior; it may get fixed in
+a future release of <small>CVS</small>.
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/Assigning-revisions.html
===================================================================
RCS file: html_node/Assigning-revisions.html
diff -N html_node/Assigning-revisions.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Assigning-revisions.html  28 Dec 2015 15:57:47 -0000      1.1
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Assigning 
revisions</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Assigning revisions">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Assigning revisions">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Tags.html#Tags" rel="next" title="Tags">
+<link href="Versions-revisions-releases.html#Versions-revisions-releases" 
rel="prev" title="Versions revisions releases">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Assigning-revisions"></a>
+<div class="header">
+<p>
+Next: <a href="Tags.html#Tags" accesskey="n" rel="next">Tags</a>, Previous: <a 
href="Versions-revisions-releases.html#Versions-revisions-releases" 
accesskey="p" rel="prev">Versions revisions releases</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Assigning-revisions-1"></a>
+<h3 class="section">4.3 Assigning revisions</h3>
+
+<p>By default, <small>CVS</small> will assign numeric revisions by
+leaving the first number the same and incrementing the
+second number.  For example, <code>1.1</code>, <code>1.2</code>,
+<code>1.3</code>, etc.
+</p>
+<p>When adding a new file, the second number will always
+be one and the first number will equal the highest
+first number of any file in that directory.  For
+example, the current directory contains files whose
+highest numbered revisions are <code>1.7</code>, <code>3.1</code>,
+and <code>4.12</code>, then an added file will be given the
+numeric revision <code>4.1</code>.
+(When using client/server <small>CVS</small>,
+only files that are actually sent to the server are considered.)
+</p>
+<p>Normally there is no reason to care
+about the revision numbers&mdash;it is easier to treat them
+as internal numbers that <small>CVS</small> maintains, and tags
+provide a better way to distinguish between things like
+release 1 versus release 2 of your product
+(see <a href="Tags.html#Tags">Tags</a>).  However, if you want to set the
+numeric revisions, the &lsquo;<samp>-r</samp>&rsquo; option to <code>cvs
+commit</code> can do that.  The &lsquo;<samp>-r</samp>&rsquo; option implies 
the
+&lsquo;<samp>-f</samp>&rsquo; option, in the sense that it causes the
+files to be committed even if they are not modified.
+</p>
+<p>For example, to bring all your files up to
+revision 3.0 (including those that haven&rsquo;t changed),
+you might invoke:
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -r 3.0
+</pre></div>
+
+<p>Note that the number you specify with &lsquo;<samp>-r</samp>&rsquo; must be
+larger than any existing revision number.  That is, if
+revision 3.0 exists, you cannot &lsquo;<samp>cvs commit
+-r 1.3</samp>&rsquo;.  If you want to maintain several releases in
+parallel, you need to use a branch (see <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>).
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Tags.html#Tags" accesskey="n" rel="next">Tags</a>, Previous: <a 
href="Versions-revisions-releases.html#Versions-revisions-releases" 
accesskey="p" rel="prev">Versions revisions releases</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Attic.html
===================================================================
RCS file: html_node/Attic.html
diff -N html_node/Attic.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Attic.html        28 Dec 2015 15:57:47 -0000      1.1
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Attic</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Attic">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Attic">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="CVS-in-repository.html#CVS-in-repository" rel="next" title="CVS in 
repository">
+<link href="Windows-permissions.html#Windows-permissions" rel="prev" 
title="Windows permissions">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Attic"></a>
+<div class="header">
+<p>
+Next: <a href="CVS-in-repository.html#CVS-in-repository" accesskey="n" 
rel="next">CVS in repository</a>, Previous: <a 
href="Windows-permissions.html#Windows-permissions" accesskey="p" 
rel="prev">Windows permissions</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-attic"></a>
+<h4 class="subsection">2.2.4 The attic</h4>
+<a name="index-Attic"></a>
+
+<p>You will notice that sometimes <small>CVS</small> stores an
+<small>RCS</small> file in the <code>Attic</code>.  For example, if the
+<small>CVSROOT</small> is <samp>/usr/local/cvsroot</samp> and we are
+talking about the file <samp>backend.c</samp> in the
+directory <samp>yoyodyne/tc</samp>, then the file normally
+would be in
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot/yoyodyne/tc/backend.c,v
+</pre></div>
+
+<p>but if it goes in the attic, it would be in
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot/yoyodyne/tc/Attic/backend.c,v
+</pre></div>
+
+<a name="index-Dead-state"></a>
+<p>instead.  It should not matter from a user point of
+view whether a file is in the attic; <small>CVS</small> keeps
+track of this and looks in the attic when it needs to.
+But in case you want to know, the rule is that the RCS
+file is stored in the attic if and only if the head
+revision on the trunk has state <code>dead</code>.  A
+<code>dead</code> state means that file has been removed, or
+never added, for that revision.  For example, if you
+add a file on a branch, it will have a trunk revision
+in <code>dead</code> state, and a branch revision in a
+non-<code>dead</code> state.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Avoiding-substitution.html
===================================================================
RCS file: html_node/Avoiding-substitution.html
diff -N html_node/Avoiding-substitution.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Avoiding-substitution.html        28 Dec 2015 15:57:47 -0000      
1.1
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Avoiding 
substitution</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Avoiding substitution">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Avoiding substitution">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="up" 
title="Keyword substitution">
+<link href="Substitution-modes.html#Substitution-modes" rel="next" 
title="Substitution modes">
+<link href="Using-keywords.html#Using-keywords" rel="prev" title="Using 
keywords">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Avoiding-substitution"></a>
+<div class="header">
+<p>
+Next: <a href="Substitution-modes.html#Substitution-modes" accesskey="n" 
rel="next">Substitution modes</a>, Previous: <a 
href="Using-keywords.html#Using-keywords" accesskey="p" rel="prev">Using 
keywords</a>, Up: <a href="Keyword-substitution.html#Keyword-substitution" 
accesskey="u" rel="up">Keyword substitution</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Avoiding-substitution-1"></a>
+<h3 class="section">12.3 Avoiding substitution</h3>
+
+<p>Keyword substitution has its disadvantages.  Sometimes
+you might want the literal text string
+&lsquo;<samp>$<i></i>Author$</samp>&rsquo; to appear inside a file without
+<small>CVS</small> interpreting it as a keyword and expanding it
+into something like &lsquo;<samp>$<i></i>Author: ceder $</samp>&rsquo;.
+</p>
+<p>There is unfortunately no way to selectively turn off
+keyword substitution.  You can use &lsquo;<samp>-ko</samp>&rsquo;
+(see <a href="Substitution-modes.html#Substitution-modes">Substitution 
modes</a>) to turn off keyword
+substitution entirely.
+</p>
+<p>In many cases you can avoid using keywords in
+the source, even though they appear in the final
+product.  For example, the source for this manual
+contains &lsquo;<samp>address@hidden</samp>&rsquo; whenever the text
+&lsquo;<samp>$<i></i>Author$</samp>&rsquo; should appear.  In 
<code>nroff</code>
+and <code>troff</code> you can embed the null-character
+<code>\&amp;</code> inside the keyword for a similar effect.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/BUGS.html
===================================================================
RCS file: html_node/BUGS.html
diff -N html_node/BUGS.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/BUGS.html 28 Dec 2015 15:57:47 -0000      1.1
@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: BUGS</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: BUGS">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
BUGS">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Index.html#Index" rel="next" title="Index">
+<link href="Credits.html#Credits" rel="prev" title="Credits">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="BUGS"></a>
+<div class="header">
+<p>
+Next: <a href="Index.html#Index" accesskey="n" rel="next">Index</a>, Previous: 
<a href="Credits.html#Credits" accesskey="p" rel="prev">Credits</a>, Up: <a 
href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Dealing-with-bugs-in-CVS-or-this-manual"></a>
+<h2 class="appendix">Appendix H Dealing with bugs in CVS or this manual</h2>
+
+<a name="index-Bugs-in-this-manual-or-CVS"></a>
+<p>Neither <small>CVS</small> nor this manual is perfect, and they
+probably never will be.  If you are having trouble
+using <small>CVS</small>, or think you have found a bug, there
+are a number of things you can do about it.  Note that
+if the manual is unclear, that can be considered a bug
+in the manual, so these problems are often worth doing
+something about as well as problems with <small>CVS</small> itself.
+</p>
+<a name="index-Reporting-bugs"></a>
+<a name="index-Bugs_002c-reporting"></a>
+<a name="index-Errors_002c-reporting"></a>
+<ul>
+<li> If you want someone to help you and fix bugs that you
+report, there are companies which will do that for a
+fee.  One such company is:
+
+<a name="index-Ximbiot"></a>
+<a name="index-Support_002c-getting-CVS-support"></a>
+<div class="example">
+<pre class="example">Ximbiot LLC
+Suite 230
+200 Diversion St.
+Rochester Hills, MI  48307-6636
+USA
+Email: address@hidden
+Phone: (248) 835-1260
+Fax:   (248) 835-1263
+<a href="http://ximbiot.com/";>http://ximbiot.com/</a>
+
+</pre></div>
+
+</li><li> If you got <small>CVS</small> through a distributor, such as an
+operating system vendor or a vendor of freeware
+<small>CD-ROM</small>s, you may wish to see whether the
+distributor provides support.  Often, they will provide
+no support or minimal support, but this may vary from
+distributor to distributor.
+
+</li><li> If you have the skills and time to do so, you may wish
+to fix the bug yourself.  If you wish to submit your
+fix for inclusion in future releases of <small>CVS</small>, see
+the file <small>HACKING</small> in the <small>CVS</small> source
+distribution.  It contains much more information on the
+process of submitting fixes.
+
+</li><li> There may be resources on the net which can help.  A
+good place to start is:
+
+<div class="example">
+<pre class="example"><a 
href="http://cvs.nongnu.org/";>http://cvs.nongnu.org/</a>
+</pre></div>
+
+<p>If you are so inspired, increasing the information
+available on the net is likely to be appreciated.  For
+example, before the standard <small>CVS</small> distribution
+worked on Windows 95, there was a web page with some
+explanation and patches for running <small>CVS</small> on Windows
+95, and various people helped out by mentioning this
+page on mailing lists or newsgroups when the subject
+came up.
+</p>
+</li><li> It is also possible to report bugs to <a 
href="mailto:address@hidden";>address@hidden</a>.
+Note that someone may or may not want to do anything
+with your bug report&mdash;if you need a solution consider
+one of the options mentioned above.  People probably do
+want to hear about bugs which are particularly severe
+in consequences and/or easy to fix, however.  You can
+also increase your odds by being as clear as possible
+about the exact nature of the bug and any other
+relevant information.  The way to report bugs is to
+send email to <a href="mailto:address@hidden";>address@hidden</a>.  Note
+that submissions to <a href="mailto:address@hidden";>address@hidden</a> may be 
distributed
+under the terms of the <small>GNU</small> Public License, so if
+you don&rsquo;t like this, don&rsquo;t submit them.  There is
+usually no justification for sending mail directly to
+one of the <small>CVS</small> maintainers rather than to
+<a href="mailto:address@hidden";>address@hidden</a>; those maintainers who want 
to hear
+about such bug reports read <a 
href="mailto:address@hidden";>address@hidden</a>.  Also note
+that sending a bug report to other mailing lists or
+newsgroups is <em>not</em> a substitute for sending it to
+<a href="mailto:address@hidden";>address@hidden</a>.  It is fine to discuss 
<small>CVS</small> bugs on
+whatever forum you prefer, but there are not
+necessarily any maintainers reading bug reports sent
+anywhere except <a href="mailto:address@hidden";>address@hidden</a>.
+</li></ul>
+
+<a name="index-Known-bugs-in-this-manual-or-CVS"></a>
+<p>People often ask if there is a list of known bugs or
+whether a particular bug is a known one.  The file
+<small>BUGS</small> in the <small>CVS</small> source distribution is one
+list of known bugs, but it doesn&rsquo;t necessarily try to
+be comprehensive.  Perhaps there will never be a
+comprehensive, detailed list of known bugs.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Index.html#Index" accesskey="n" rel="next">Index</a>, Previous: 
<a href="Credits.html#Credits" accesskey="p" rel="prev">Credits</a>, Up: <a 
href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Backing-up.html
===================================================================
RCS file: html_node/Backing-up.html
diff -N html_node/Backing-up.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Backing-up.html   28 Dec 2015 15:57:48 -0000      1.1
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Backing up</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Backing up">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Backing up">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Moving-a-repository.html#Moving-a-repository" rel="next" 
title="Moving a repository">
+<link href="Creating-a-repository.html#Creating-a-repository" rel="prev" 
title="Creating a repository">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Backing-up"></a>
+<div class="header">
+<p>
+Next: <a href="Moving-a-repository.html#Moving-a-repository" accesskey="n" 
rel="next">Moving a repository</a>, Previous: <a 
href="Creating-a-repository.html#Creating-a-repository" accesskey="p" 
rel="prev">Creating a repository</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Backing-up-a-repository"></a>
+<h3 class="section">2.7 Backing up a repository</h3>
+<a name="index-Repository_002c-backing-up"></a>
+<a name="index-Backing-up_002c-repository"></a>
+
+<p>There is nothing particularly magical about the files
+in the repository; for the most part it is possible to
+back them up just like any other files.  However, there
+are a few issues to consider.
+</p>
+<a name="index-Locks_002c-cvs_002c-and-backups"></a>
+<a name="index-_0023cvs_002erfl_002c-and-backups"></a>
+<p>The first is that to be paranoid, one should either not
+use <small>CVS</small> during the backup, or have the backup
+program lock <small>CVS</small> while doing the backup.  To not
+use <small>CVS</small>, you might forbid logins to machines which
+can access the repository, turn off your <small>CVS</small>
+server, or similar mechanisms.  The details would
+depend on your operating system and how you have
+<small>CVS</small> set up.  To lock <small>CVS</small>, you would create
+<samp>#cvs.rfl</samp> locks in each repository directory.
+See <a href="Concurrency.html#Concurrency">Concurrency</a>, for more on 
<small>CVS</small> locks.
+Having said all this, if you just back up without any
+of these precautions, the results are unlikely to be
+particularly dire.  Restoring from backup, the
+repository might be in an inconsistent state, but this
+would not be particularly hard to fix manually.
+</p>
+<p>When you restore a repository from backup, assuming
+that changes in the repository were made after the time
+of the backup, working directories which were not
+affected by the failure may refer to revisions which no
+longer exist in the repository.  Trying to run <small>CVS</small>
+in such directories will typically produce an error
+message.  One way to get those changes back into the
+repository is as follows:
+</p>
+<ul>
+<li> Get a new working directory.
+
+</li><li> Copy the files from the working directory from before
+the failure over to the new working directory (do not
+copy the contents of the <samp>CVS</samp> directories, of
+course).
+
+</li><li> Working in the new working directory, use commands such
+as <code>cvs update</code> and <code>cvs diff</code> to figure out
+what has changed, and then when you are ready, commit
+the changes into the repository.
+</li></ul>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Moving-a-repository.html#Moving-a-repository" accesskey="n" 
rel="next">Moving a repository</a>, Previous: <a 
href="Creating-a-repository.html#Creating-a-repository" accesskey="p" 
rel="prev">Creating a repository</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Binary-files-in-imports.html
===================================================================
RCS file: html_node/Binary-files-in-imports.html
diff -N html_node/Binary-files-in-imports.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Binary-files-in-imports.html      28 Dec 2015 15:57:48 -0000      
1.1
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Binary files in 
imports</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Binary files in imports">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Binary files in imports">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Tracking-sources.html#Tracking-sources" rel="up" title="Tracking 
sources">
+<link href="Keywords-in-imports.html#Keywords-in-imports" rel="next" 
title="Keywords in imports">
+<link href="Reverting-local-changes.html#Reverting-local-changes" rel="prev" 
title="Reverting local changes">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Binary-files-in-imports"></a>
+<div class="header">
+<p>
+Next: <a href="Keywords-in-imports.html#Keywords-in-imports" accesskey="n" 
rel="next">Keywords in imports</a>, Previous: <a 
href="Reverting-local-changes.html#Reverting-local-changes" accesskey="p" 
rel="prev">Reverting local changes</a>, Up: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="u" rel="up">Tracking 
sources</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-to-handle-binary-files-with-cvs-import"></a>
+<h3 class="section">13.4 How to handle binary files with cvs import</h3>
+
+<p>Use the &lsquo;<samp>-k</samp>&rsquo; wrapper option to tell import which
+files are binary.  See <a href="Wrappers.html#Wrappers">Wrappers</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Binary-files.html
===================================================================
RCS file: html_node/Binary-files.html
diff -N html_node/Binary-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Binary-files.html 28 Dec 2015 15:57:48 -0000      1.1
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Binary files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Binary files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Binary files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Binary-why.html#Binary-why" rel="next" title="Binary why">
+<link href="user_002ddefined-logging.html#user_002ddefined-logging" rel="prev" 
title="user-defined logging">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Binary-files"></a>
+<div class="header">
+<p>
+Next: <a href="Multiple-developers.html#Multiple-developers" accesskey="n" 
rel="next">Multiple developers</a>, Previous: <a 
href="History-browsing.html#History-browsing" accesskey="p" rel="prev">History 
browsing</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Handling-binary-files"></a>
+<h2 class="chapter">9 Handling binary files</h2>
+<a name="index-Binary-files"></a>
+
+<p>The most common use for <small>CVS</small> is to store text
+files.  With text files, <small>CVS</small> can merge revisions,
+display the differences between revisions in a
+human-visible fashion, and other such operations.
+However, if you are willing to give up a few of these
+abilities, <small>CVS</small> can store binary files.  For
+example, one might store a web site in <small>CVS</small>
+including both text files and binary images.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="Binary-why.html#Binary-why" 
accesskey="1">Binary why</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">More details on issues with binary files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Binary-howto.html#Binary-howto" accesskey="2">Binary 
howto</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to store 
them
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Binary-howto.html
===================================================================
RCS file: html_node/Binary-howto.html
diff -N html_node/Binary-howto.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Binary-howto.html 28 Dec 2015 15:57:48 -0000      1.1
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Binary howto</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Binary howto">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Binary howto">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Binary-files.html#Binary-files" rel="up" title="Binary files">
+<link href="Multiple-developers.html#Multiple-developers" rel="next" 
title="Multiple developers">
+<link href="Binary-why.html#Binary-why" rel="prev" title="Binary why">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Binary-howto"></a>
+<div class="header">
+<p>
+Previous: <a href="Binary-why.html#Binary-why" accesskey="p" rel="prev">Binary 
why</a>, Up: <a href="Binary-files.html#Binary-files" accesskey="u" 
rel="up">Binary files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-to-store-binary-files"></a>
+<h3 class="section">9.2 How to store binary files</h3>
+
+<p>There are two issues with using <small>CVS</small> to store
+binary files.  The first is that <small>CVS</small> by default
+converts line endings between the canonical form in
+which they are stored in the repository (linefeed
+only), and the form appropriate to the operating system
+in use on the client (for example, carriage return
+followed by line feed for Windows NT).
+</p>
+<p>The second is that a binary file might happen to
+contain data which looks like a keyword (see <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>), so keyword expansion must be turned
+off.
+</p>
+
+<p>The &lsquo;<samp>-kb</samp>&rsquo; option available with some 
<small>CVS</small>
+commands insures that neither line ending conversion
+nor keyword expansion will be done.
+</p>
+<p>Here is an example of how you can create a new file
+using the &lsquo;<samp>-kb</samp>&rsquo; flag:
+</p>
+<div class="example">
+<pre class="example">$ echo '$<i></i>Id$' &gt; kotest
+$ cvs add -kb -m&quot;A test file&quot; kotest
+$ cvs ci -m&quot;First checkin; contains a keyword&quot; kotest
+</pre></div>
+
+<p>If a file accidentally gets added without &lsquo;<samp>-kb</samp>&rsquo;,
+one can use the <code>cvs admin</code> command to recover.
+For example:
+</p>
+<div class="example">
+<pre class="example">$ echo '$<i></i>Id$' &gt; kotest
+$ cvs add -m&quot;A test file&quot; kotest
+$ cvs ci -m&quot;First checkin; contains a keyword&quot; kotest
+$ cvs admin -kb kotest
+$ cvs update -A kotest
+# <span class="roman">For non-unix systems:</span>
+# <span class="roman">Copy in a good copy of the file from outside CVS</span>
+$ cvs commit -m &quot;make it binary&quot; kotest
+</pre></div>
+
+<p>When you check in the file <samp>kotest</samp> the file is
+not preserved as a binary file, because you did not
+check it in as a binary file.  The <code>cvs
+admin -kb</code> command sets the default keyword
+substitution method for this file, but it does not
+alter the working copy of the file that you have.  If you need to
+cope with line endings (that is, you are using
+<small>CVS</small> on a non-unix system), then you need to
+check in a new copy of the file, as shown by the
+<code>cvs commit</code> command above.
+On unix, the <code>cvs update -A</code> command suffices.
+(Note that you can use <code>cvs log</code> to determine the default keyword
+substitution method for a file and <code>cvs status</code> to determine
+the keyword substitution method for a working copy.)
+</p>
+<p>However, in using <code>cvs admin -k</code> to change the
+keyword expansion, be aware that the keyword expansion
+mode is not version controlled.  This means that, for
+example, that if you have a text file in old releases,
+and a binary file with the same name in new releases,
+<small>CVS</small> provides no way to check out the file in text
+or binary mode depending on what version you are
+checking out.  There is no good workaround for this
+problem.
+</p>
+<p>You can also set a default for whether <code>cvs add</code>
+and <code>cvs import</code> treat a file as binary based on
+its name; for example you could say that files who
+names end in &lsquo;<samp>.exe</samp>&rsquo; are binary.  See <a 
href="Wrappers.html#Wrappers">Wrappers</a>.
+There is currently no way to have <small>CVS</small> detect
+whether a file is binary based on its contents.  The
+main difficulty with designing such a feature is that
+it is not clear how to distinguish between binary and
+non-binary files, and the rules to apply would vary
+considerably with the operating system.
+</p>
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Binary-why.html#Binary-why" accesskey="p" rel="prev">Binary 
why</a>, Up: <a href="Binary-files.html#Binary-files" accesskey="u" 
rel="up">Binary files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Binary-why.html
===================================================================
RCS file: html_node/Binary-why.html
diff -N html_node/Binary-why.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Binary-why.html   28 Dec 2015 15:57:49 -0000      1.1
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Binary why</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Binary why">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Binary why">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Binary-files.html#Binary-files" rel="up" title="Binary files">
+<link href="Binary-howto.html#Binary-howto" rel="next" title="Binary howto">
+<link href="Binary-files.html#Binary-files" rel="prev" title="Binary files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Binary-why"></a>
+<div class="header">
+<p>
+Next: <a href="Binary-howto.html#Binary-howto" accesskey="n" rel="next">Binary 
howto</a>, Up: <a href="Binary-files.html#Binary-files" accesskey="u" 
rel="up">Binary files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-issues-with-binary-files"></a>
+<h3 class="section">9.1 The issues with binary files</h3>
+
+<p>While the need to manage binary files may seem obvious
+if the files that you customarily work with are binary,
+putting them into version control does present some
+additional issues.
+</p>
+<p>One basic function of version control is to show the
+differences between two revisions.  For example, if
+someone else checked in a new version of a file, you
+may wish to look at what they changed and determine
+whether their changes are good.  For text files,
+<small>CVS</small> provides this functionality via the <code>cvs
+diff</code> command.  For binary files, it may be possible to
+extract the two revisions and then compare them with a
+tool external to <small>CVS</small> (for example, word processing
+software often has such a feature).  If there is no
+such tool, one must track changes via other mechanisms,
+such as urging people to write good log messages, and
+hoping that the changes they actually made were the
+changes that they intended to make.
+</p>
+<p>Another ability of a version control system is the
+ability to merge two revisions.  For <small>CVS</small> this
+happens in two contexts.  The first is when users make
+changes in separate working directories
+(see <a href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a>).  The second is when one
+merges explicitly with the &lsquo;<samp>update -j</samp>&rsquo; command
+(see <a href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>).
+</p>
+<p>In the case of text
+files, <small>CVS</small> can merge changes made independently,
+and signal a conflict if the changes conflict.  With
+binary files, the best that <small>CVS</small> can do is present
+the two different copies of the file, and leave it to
+the user to resolve the conflict.  The user may choose
+one copy or the other, or may run an external merge
+tool which knows about that particular file format, if
+one exists.
+Note that having the user merge relies primarily on the
+user to not accidentally omit some changes, and thus is
+potentially error prone.
+</p>
+<p>If this process is thought to be undesirable, the best
+choice may be to avoid merging.  To avoid the merges
+that result from separate working directories, see the
+discussion of reserved checkouts (file locking) in
+<a href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a>.  To avoid the merges
+resulting from branches, restrict use of branches.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Binary-howto.html#Binary-howto" accesskey="n" rel="next">Binary 
howto</a>, Up: <a href="Binary-files.html#Binary-files" accesskey="u" 
rel="up">Binary files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Branches-and-revisions.html
===================================================================
RCS file: html_node/Branches-and-revisions.html
diff -N html_node/Branches-and-revisions.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Branches-and-revisions.html       28 Dec 2015 15:57:49 -0000      
1.1
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Branches and 
revisions</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Branches and revisions">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Branches and revisions">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Magic-branch-numbers.html#Magic-branch-numbers" rel="next" 
title="Magic branch numbers">
+<link href="Accessing-branches.html#Accessing-branches" rel="prev" 
title="Accessing branches">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Branches-and-revisions"></a>
+<div class="header">
+<p>
+Next: <a href="Magic-branch-numbers.html#Magic-branch-numbers" accesskey="n" 
rel="next">Magic branch numbers</a>, Previous: <a 
href="Accessing-branches.html#Accessing-branches" accesskey="p" 
rel="prev">Accessing branches</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Branches-and-revisions-1"></a>
+<h3 class="section">5.4 Branches and revisions</h3>
+<a name="index-Branch-number-1"></a>
+<a name="index-Number_002c-branch-1"></a>
+<a name="index-Revision-numbers-_0028branches_0029"></a>
+
+<p>Ordinarily, a file&rsquo;s revision history is a linear
+series of increments (see <a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a>):
+</p>
+<div class="example">
+<pre class="example">       +-----+    +-----+    +-----+    +-----+    +-----+
+       ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+       +-----+    +-----+    +-----+    +-----+    +-----+
+</pre></div>
+
+<p>However, <small>CVS</small> is not limited to linear development.  The
+<em>revision tree</em> can be split into <em>branches</em>,
+where each branch is a self-maintained line of
+development.  Changes made on one branch can easily be
+moved back to the main trunk.
+</p>
+<p>Each branch has a <em>branch number</em>, consisting of an
+odd number of period-separated decimal integers.  The
+branch number is created by appending an integer to the
+revision number where the corresponding branch forked
+off.  Having branch numbers allows more than one branch
+to be forked off from a certain revision.
+</p>
+<p>All revisions on a branch have revision numbers formed
+by appending an ordinal number to the branch number.
+The following figure illustrates branching with an
+example.
+</p>
+<div class="example">
+<pre class="example">                                                      
+-------------+
+                           Branch 1.2.2.3.2 -&gt;        ! 1.2.2.3.2.1 !
+                                                    / +-------------+
+                                                   /
+                                                  /
+                 +---------+    +---------+    +---------+
+Branch 1.2.2 -&gt; _! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
+               / +---------+    +---------+    +---------+
+              /
+             /
++-----+    +-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !  &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+    +-----+
+                !
+                !
+                !   +---------+    +---------+    +---------+
+Branch 1.2.4 -&gt; +---! 1.2.4.1 !----! 1.2.4.2 !----! 1.2.4.3 !
+                    +---------+    +---------+    +---------+
+
+</pre></div>
+
+
+
+<p>The exact details of how the branch number is
+constructed is not something you normally need to be
+concerned about, but here is how it works: When
+<small>CVS</small> creates a branch number it picks the first
+unused even integer, starting with 2.  So when you want
+to create a branch from revision 6.4 it will be
+numbered 6.4.2.  All branch numbers ending in a zero
+(such as 6.4.0) are used internally by <small>CVS</small>
+(see <a href="Magic-branch-numbers.html#Magic-branch-numbers">Magic branch 
numbers</a>).  The branch 1.1.1 has a
+special meaning.  See <a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Magic-branch-numbers.html#Magic-branch-numbers" accesskey="n" 
rel="next">Magic branch numbers</a>, Previous: <a 
href="Accessing-branches.html#Accessing-branches" accesskey="p" 
rel="prev">Accessing branches</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Branches-motivation.html
===================================================================
RCS file: html_node/Branches-motivation.html
diff -N html_node/Branches-motivation.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Branches-motivation.html  28 Dec 2015 15:57:49 -0000      1.1
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Branches 
motivation</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Branches motivation">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Branches motivation">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Creating-a-branch.html#Creating-a-branch" rel="next" 
title="Creating a branch">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="prev" 
title="Branching and merging">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Branches-motivation"></a>
+<div class="header">
+<p>
+Next: <a href="Creating-a-branch.html#Creating-a-branch" accesskey="n" 
rel="next">Creating a branch</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="What-branches-are-good-for"></a>
+<h3 class="section">5.1 What branches are good for</h3>
+<a name="index-Branches-motivation"></a>
+<a name="index-What-branches-are-good-for"></a>
+<a name="index-Motivation-for-branches"></a>
+
+<p>Suppose that release 1.0 of tc has been made.  You are continuing to
+develop tc, planning to create release 1.1 in a couple of months.  After a
+while your customers start to complain about a fatal bug.  You check
+out release 1.0 (see <a href="Tags.html#Tags">Tags</a>) and find the bug
+(which turns out to have a trivial fix).  However, the current revision
+of the sources are in a state of flux and are not expected to be stable
+for at least another month.  There is no way to make a
+bug fix release based on the newest sources.
+</p>
+<p>The thing to do in a situation like this is to create a <em>branch</em> on
+the revision trees for all the files that make up
+release 1.0 of tc.  You can then make
+modifications to the branch without disturbing the main trunk.  When the
+modifications are finished you can elect to either incorporate them on
+the main trunk, or leave them on the branch.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Branching-and-merging.html
===================================================================
RCS file: html_node/Branching-and-merging.html
diff -N html_node/Branching-and-merging.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Branching-and-merging.html        28 Dec 2015 15:57:49 -0000      
1.1
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Branching and 
merging</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Branching and merging">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Branching and merging">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Branches-motivation.html#Branches-motivation" rel="next" 
title="Branches motivation">
+<link href="Sticky-tags.html#Sticky-tags" rel="prev" title="Sticky tags">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Branching-and-merging"></a>
+<div class="header">
+<p>
+Next: <a href="Recursive-behavior.html#Recursive-behavior" accesskey="n" 
rel="next">Recursive behavior</a>, Previous: <a href="Revisions.html#Revisions" 
accesskey="p" rel="prev">Revisions</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Branching-and-merging-1"></a>
+<h2 class="chapter">5 Branching and merging</h2>
+<a name="index-Branching"></a>
+<a name="index-Merging"></a>
+<a name="index-Copying-changes"></a>
+<a name="index-Main-trunk-and-branches"></a>
+<a name="index-Revision-tree_002c-making-branches"></a>
+<a name="index-Branches_002c-copying-changes-between"></a>
+<a name="index-Changes_002c-copying-between-branches"></a>
+<a name="index-Modifications_002c-copying-between-branches"></a>
+
+<p><small>CVS</small> allows you to isolate changes onto a separate
+line of development, known as a <em>branch</em>.  When you
+change files on a branch, those changes do not appear
+on the main trunk or other branches.
+</p>
+<p>Later you can move changes from one branch to another
+branch (or the main trunk) by <em>merging</em>.  Merging
+involves first running <code>cvs update -j</code>, to merge
+the changes into the working directory.
+You can then commit that revision, and thus effectively
+copy the changes onto another branch.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Branches-motivation.html#Branches-motivation" accesskey="1">Branches 
motivation</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What 
branches are good for
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Creating-a-branch.html#Creating-a-branch" accesskey="2">Creating a 
branch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creating a 
branch
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Accessing-branches.html#Accessing-branches" accesskey="3">Accessing 
branches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Checking 
out and updating branches
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Branches-and-revisions.html#Branches-and-revisions" 
accesskey="4">Branches and revisions</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Branches are reflected in revision numbers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Magic-branch-numbers.html#Magic-branch-numbers" accesskey="5">Magic 
branch numbers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Magic branch numbers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Merging-a-branch.html#Merging-a-branch" accesskey="6">Merging a 
branch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Merging an 
entire branch
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Merging-more-than-once.html#Merging-more-than-once" accesskey="7">Merging 
more than once</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Merging from a branch several times
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Merging-two-revisions.html#Merging-two-revisions" accesskey="8">Merging 
two revisions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Merging differences between two revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Merging-adds-and-removals.html#Merging-adds-and-removals" 
accesskey="9">Merging adds and removals</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">What if files are added or removed?
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Merging-and-keywords.html#Merging-and-keywords">Merging and 
keywords</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Avoiding 
conflicts due to keyword substitution
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Builds.html
===================================================================
RCS file: html_node/Builds.html
diff -N html_node/Builds.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Builds.html       28 Dec 2015 15:57:49 -0000      1.1
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Builds</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Builds">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Builds">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Special-Files.html#Special-Files" rel="next" title="Special Files">
+<link href="Multiple-vendor-branches.html#Multiple-vendor-branches" rel="prev" 
title="Multiple vendor branches">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Builds"></a>
+<div class="header">
+<p>
+Next: <a href="Special-Files.html#Special-Files" accesskey="n" 
rel="next">Special Files</a>, Previous: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="p" rel="prev">Tracking 
sources</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-your-build-system-interacts-with-CVS"></a>
+<h2 class="chapter">14 How your build system interacts with CVS</h2>
+<a name="index-Builds"></a>
+<a name="index-make"></a>
+
+<p>As mentioned in the introduction, <small>CVS</small> does not
+contain software for building your software from source
+code.  This section describes how various aspects of
+your build system might interact with <small>CVS</small>.
+</p>
+<p>One common question, especially from people who are
+accustomed to <small>RCS</small>, is how to make their build get
+an up to date copy of the sources.  The answer to this
+with <small>CVS</small> is two-fold.  First of all, since
+<small>CVS</small> itself can recurse through directories, there
+is no need to modify your <samp>Makefile</samp> (or whatever
+configuration file your build tool uses) to make sure
+each file is up to date.  Instead, just use two
+commands, first <code>cvs -q update</code> and then
+<code>make</code> or whatever the command is to invoke your
+build tool.  Secondly, you do not necessarily
+<em>want</em> to get a copy of a change someone else made
+until you have finished your own work.  One suggested
+approach is to first update your sources, then
+implement, build and
+test the change you were thinking of, and then commit
+your sources (updating first if necessary).  By
+periodically (in between changes, using the approach
+just described) updating your entire tree, you ensure
+that your sources are sufficiently up to date.
+</p>
+<a name="index-Bill-of-materials"></a>
+<p>One common need is to record which versions of which
+source files went into a particular build.  This kind
+of functionality is sometimes called <em>bill of
+materials</em> or something similar.  The best way to do
+this with <small>CVS</small> is to use the <code>tag</code> command to
+record which versions went into a given build
+(see <a href="Tags.html#Tags">Tags</a>).
+</p>
+<p>Using <small>CVS</small> in the most straightforward manner
+possible, each developer will have a copy of the entire
+source tree which is used in a particular build.  If
+the source tree is small, or if developers are
+geographically dispersed, this is the preferred
+solution.  In fact one approach for larger projects is
+to break a project down into smaller
+separately-compiled subsystems, and arrange a way of
+releasing them internally so that each developer need
+check out only those subsystems which they are
+actively working on.
+</p>
+<p>Another approach is to set up a structure which allows
+developers to have their own copies of some files, and
+for other files to access source files from a central
+location.  Many people have come up with some such a
+system using features such as the symbolic link feature
+found in many operating systems, or the <code>VPATH</code>
+feature found in many versions of <code>make</code>.  One build
+tool which is designed to help with this kind of thing
+is Odin (see
+<code>ftp://ftp.cs.colorado.edu/pub/distribs/odin</code>).
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Special-Files.html#Special-Files" accesskey="n" 
rel="next">Special Files</a>, Previous: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="p" rel="prev">Tracking 
sources</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/CVS-commands.html
===================================================================
RCS file: html_node/CVS-commands.html
diff -N html_node/CVS-commands.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/CVS-commands.html 28 Dec 2015 15:57:50 -0000      1.1
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: CVS commands</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: CVS commands">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
CVS commands">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Structure.html#Structure" rel="next" title="Structure">
+<link href="Special-Files.html#Special-Files" rel="prev" title="Special Files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="CVS-commands"></a>
+<div class="header">
+<p>
+Next: <a href="Invoking-CVS.html#Invoking-CVS" accesskey="n" 
rel="next">Invoking CVS</a>, Previous: <a 
href="Special-Files.html#Special-Files" accesskey="p" rel="prev">Special 
Files</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Guide-to-CVS-commands"></a>
+<h2 class="appendix">Appendix A Guide to CVS commands</h2>
+
+<p>This appendix describes the overall structure of
+<small>CVS</small> commands, and describes some commands in
+detail (others are described elsewhere; for a quick
+reference to <small>CVS</small> commands, see <a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>).
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="Structure.html#Structure" 
accesskey="1">Structure</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Overall structure of CVS commands
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Exit-status.html#Exit-status" accesskey="2">Exit 
status</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Indicating 
CVS&rsquo;s success or failure
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc" 
accesskey="3">~/.cvsrc</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Default options with the ~/.cvsrc file
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Global-options.html#Global-options" accesskey="4">Global 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Options you 
give to the left of cvs_command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Common-options.html#Common-options" accesskey="5">Common 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Options you 
give to the right of cvs_command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="add.html#add" 
accesskey="6">add</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Add files and directories to the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="admin.html#admin" 
accesskey="7">admin</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Administration
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="annotate.html#annotate" 
accesskey="8">annotate</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">What revision modified each line of a file?
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="checkout.html#checkout" 
accesskey="9">checkout</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Checkout sources for editing
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="commit.html#commit">commit</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Check files into the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="diff.html#diff">diff</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Show differences between revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="export.html#export">export</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Export sources from CVS, similar to checkout
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="history.html#history">history</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Show status of files and users
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="import.html#import">import</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Import sources into CVS, using vendor branches
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="log.html#log">log</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Show log messages for files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="rdiff.html#rdiff">rdiff</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">&rsquo;patch&rsquo; format diffs between releases
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="release.html#release">release</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Indicate that a directory is no longer in use
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="remove.html#remove">remove</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Remove files from active development
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="update.html#update">update</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Bring work tree in sync with repository
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Invoking-CVS.html#Invoking-CVS" accesskey="n" 
rel="next">Invoking CVS</a>, Previous: <a 
href="Special-Files.html#Special-Files" accesskey="p" rel="prev">Special 
Files</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/CVS-in-repository.html
===================================================================
RCS file: html_node/CVS-in-repository.html
diff -N html_node/CVS-in-repository.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/CVS-in-repository.html    28 Dec 2015 15:57:50 -0000      1.1
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: CVS in repository</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: CVS in repository">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
CVS in repository">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="Locks.html#Locks" rel="next" title="Locks">
+<link href="Attic.html#Attic" rel="prev" title="Attic">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="CVS-in-repository"></a>
+<div class="header">
+<p>
+Next: <a href="Locks.html#Locks" accesskey="n" rel="next">Locks</a>, Previous: 
<a href="Attic.html#Attic" accesskey="p" rel="prev">Attic</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-CVS-directory-in-the-repository"></a>
+<h4 class="subsection">2.2.5 The CVS directory in the repository</h4>
+<a name="index-CVS-directory_002c-in-repository"></a>
+
+<p>The <samp>CVS</samp> directory in each repository directory
+contains information such as file attributes (in a file
+called <samp>CVS/fileattr</samp>.  In the
+future additional files may be added to this directory,
+so implementations should silently ignore additional
+files.
+</p>
+<p>This behavior is implemented only by <small>CVS</small> 1.7 and
+later; for details see <a 
href="Watches-Compatibility.html#Watches-Compatibility">Watches 
Compatibility</a>.
+</p>
+<p>The format of the <samp>fileattr</samp> file is a series of entries
+of the following form (where &lsquo;<samp>{</samp>&rsquo; and 
&lsquo;<samp>}</samp>&rsquo;
+means the text between the braces can be repeated zero
+or more times):
+</p>
+<p><var>ent-type</var> <var>filename</var> &lt;tab&gt; <var>attrname</var> = 
<var>attrval</var>
+  {; <var>attrname</var> = <var>attrval</var>} &lt;linefeed&gt;
+</p>
+<p><var>ent-type</var> is &lsquo;<samp>F</samp>&rsquo; for a file, in which 
case the entry specifies the
+attributes for that file.
+</p>
+<p><var>ent-type</var> is &lsquo;<samp>D</samp>&rsquo;,
+and <var>filename</var> empty, to specify default attributes
+to be used for newly added files.
+</p>
+<p>Other <var>ent-type</var> are reserved for future expansion.  
<small>CVS</small> 1.9 and older
+will delete them any time it writes file attributes.
+<small>CVS</small> 1.10 and later will preserve them.
+</p>
+<p>Note that the order of the lines is not significant;
+a program writing the fileattr file may
+rearrange them at its convenience.
+</p>
+<p>There is currently no way of quoting tabs or line feeds in the
+filename, &lsquo;<samp>=</samp>&rsquo; in <var>attrname</var>,
+&lsquo;<samp>;</samp>&rsquo; in <var>attrval</var>, etc.  Note: some 
implementations also
+don&rsquo;t handle a NUL character in any of the fields, but
+implementations are encouraged to allow it.
+</p>
+<p>By convention, <var>attrname</var> starting with 
&lsquo;<samp>_</samp>&rsquo; is for an attribute given
+special meaning by <small>CVS</small>; other <var>attrname</var>s are for 
user-defined attributes
+(or will be, once implementations start supporting user-defined attributes).
+</p>
+<p>Built-in attributes:
+</p>
+<dl compact="compact">
+<dt><code>_watched</code></dt>
+<dd><p>Present means the file is watched and should be checked out
+read-only.
+</p>
+</dd>
+<dt><code>_watchers</code></dt>
+<dd><p>Users with watches for this file.  Value is
+<var>watcher</var> &gt; <var>type</var> { , <var>watcher</var> &gt; 
<var>type</var> }
+where <var>watcher</var> is a username, and <var>type</var>
+is zero or more of edit,unedit,commit separated by
+&lsquo;<samp>+</samp>&rsquo; (that is, nothing if none; there is no 
&quot;none&quot; or &quot;all&quot; keyword).
+</p>
+</dd>
+<dt><code>_editors</code></dt>
+<dd><p>Users editing this file.  Value is
+<var>editor</var> &gt; <var>val</var> { , <var>editor</var> &gt; 
<var>val</var> }
+where <var>editor</var> is a username, and <var>val</var> is
+<var>time</var>+<var>hostname</var>+<var>pathname</var>, where
+<var>time</var> is when the <code>cvs edit</code> command (or
+equivalent) happened,
+and <var>hostname</var> and <var>pathname</var> are for the working directory.
+</p></dd>
+</dl>
+
+<p>Example:
+</p>
+<div class="example">
+<pre class="example">Ffile1 _watched=;_watchers=joe&gt;edit,mary&gt;commit
+Ffile2 _watched=;_editors=sue&gt;8 Jan 1975+workstn1+/home/sue/cvs
+D _watched=
+</pre></div>
+
+<p>means that the file <samp>file1</samp> should be checked out
+read-only.  Furthermore, joe is watching for edits and
+mary is watching for commits.  The file <samp>file2</samp>
+should be checked out read-only; sue started editing it
+on 8 Jan 1975 in the directory <samp>/home/sue/cvs</samp> on
+the machine <code>workstn1</code>.  Future files which are
+added should be checked out read-only.  To represent
+this example here, we have shown a space after
+&lsquo;<samp>D</samp>&rsquo;, &lsquo;<samp>Ffile1</samp>&rsquo;, and 
&lsquo;<samp>Ffile2</samp>&rsquo;, but in fact
+there must be a single tab character there and no spaces.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Locks.html#Locks" accesskey="n" rel="next">Locks</a>, Previous: 
<a href="Attic.html#Attic" accesskey="p" rel="prev">Attic</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/CVSROOT-storage.html
===================================================================
RCS file: html_node/CVSROOT-storage.html
diff -N html_node/CVSROOT-storage.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/CVSROOT-storage.html      28 Dec 2015 15:57:50 -0000      1.1
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: CVSROOT storage</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: CVSROOT storage">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
CVSROOT storage">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="Working-directory-storage.html#Working-directory-storage" 
rel="next" title="Working directory storage">
+<link href="Locks.html#Locks" rel="prev" title="Locks">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="CVSROOT-storage"></a>
+<div class="header">
+<p>
+Previous: <a href="Locks.html#Locks" accesskey="p" rel="prev">Locks</a>, Up: 
<a href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-files-are-stored-in-the-CVSROOT-directory"></a>
+<h4 class="subsection">2.2.7 How files are stored in the CVSROOT directory</h4>
+<a name="index-CVSROOT_002c-storage-of-files"></a>
+
+<p>The <samp>$CVSROOT/CVSROOT</samp> directory contains the
+various administrative files.  In some ways this
+directory is just like any other directory in the
+repository; it contains <small>RCS</small> files whose names end
+in &lsquo;<samp>,v</samp>&rsquo;, and many of the <small>CVS</small> commands 
operate
+on it the same way.  However, there are a few
+differences.
+</p>
+<p>For each administrative file, in addition to the
+<small>RCS</small> file, there is also a checked out copy of the
+file.  For example, there is an <small>RCS</small> file
+<samp>loginfo,v</samp> and a file <samp>loginfo</samp> which
+contains the latest revision contained in
+<samp>loginfo,v</samp>.  When you check in an administrative
+file, <small>CVS</small> should print
+</p>
+<div class="example">
+<pre class="example">cvs commit: Rebuilding administrative file database
+</pre></div>
+
+<p>and update the checked out copy in
+<samp>$CVSROOT/CVSROOT</samp>.  If it does not, there is
+something wrong (see <a href="BUGS.html#BUGS">BUGS</a>).  To add your own files
+to the files to be updated in this fashion, you can add
+them to the <samp>checkoutlist</samp> administrative file
+(see <a href="checkoutlist.html#checkoutlist">checkoutlist</a>).
+</p>
+<a name="index-modules_002edb"></a>
+<a name="index-modules_002epag"></a>
+<a name="index-modules_002edir"></a>
+<p>By default, the <samp>modules</samp> file behaves as
+described above.  If the modules file is very large,
+storing it as a flat text file may make looking up
+modules slow (I&rsquo;m not sure whether this is as much of a
+concern now as when <small>CVS</small> first evolved this
+feature; I haven&rsquo;t seen benchmarks).  Therefore, by
+making appropriate edits to the <small>CVS</small> source code
+one can store the modules file in a database which
+implements the <code>ndbm</code> interface, such as Berkeley
+db or GDBM.  If this option is in use, then the modules
+database will be stored in the files <samp>modules.db</samp>,
+<samp>modules.pag</samp>, and/or <samp>modules.dir</samp>.
+</p>
+<p>For information on the meaning of the various
+administrative files, see <a 
href="Administrative-files.html#Administrative-files">Administrative files</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Locks.html#Locks" accesskey="p" rel="prev">Locks</a>, Up: 
<a href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Choosing-a-model.html
===================================================================
RCS file: html_node/Choosing-a-model.html
diff -N html_node/Choosing-a-model.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Choosing-a-model.html     28 Dec 2015 15:57:50 -0000      1.1
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Choosing a model</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Choosing a model">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Choosing a model">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Revision-management.html#Revision-management" rel="next" 
title="Revision management">
+<link href="Watches-Compatibility.html#Watches-Compatibility" rel="prev" 
title="Watches Compatibility">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Choosing-a-model"></a>
+<div class="header">
+<p>
+Previous: <a href="Watches.html#Watches" accesskey="p" rel="prev">Watches</a>, 
Up: <a href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Choosing-between-reserved-or-unreserved-checkouts"></a>
+<h3 class="section">10.7 Choosing between reserved or unreserved checkouts</h3>
+<a name="index-Choosing_002c-reserved-or-unreserved-checkouts"></a>
+
+<p>Reserved and unreserved checkouts each have pros and
+cons.  Let it be said that a lot of this is a matter of
+opinion or what works given different groups&rsquo; working
+styles, but here is a brief description of some of the
+issues.  There are many ways to organize a team of
+developers.  <small>CVS</small> does not try to enforce a certain
+organization.  It is a tool that can be used in several
+ways.
+</p>
+<p>Reserved checkouts can be very counter-productive.  If
+two persons want to edit different parts of a file,
+there may be no reason to prevent either of them from
+doing so.  Also, it is common for someone to take out a
+lock on a file, because they are planning to edit it,
+but then forget to release the lock.
+</p>
+<p>People, especially people who are familiar with
+reserved checkouts, often wonder how often conflicts
+occur if unreserved checkouts are used, and how
+difficult they are to resolve.  The experience with
+many groups is that they occur rarely and usually are
+relatively straightforward to resolve.
+</p>
+<p>The rarity of serious conflicts may be surprising, until one realizes
+that they occur only when two developers disagree on the proper design
+for a given section of code; such a disagreement suggests that the
+team has not been communicating properly in the first place.  In order
+to collaborate under <em>any</em> source management regimen, developers
+must agree on the general design of the system; given this agreement,
+overlapping changes are usually straightforward to merge.
+</p>
+<p>In some cases unreserved checkouts are clearly
+inappropriate.  If no merge tool exists for the kind of
+file you are managing (for example word processor files
+or files edited by Computer Aided Design programs), and
+it is not desirable to change to a program which uses a
+mergeable data format, then resolving conflicts is
+going to be unpleasant enough that you generally will
+be better off to simply avoid the conflicts instead, by
+using reserved checkouts.
+</p>
+<p>The watches features described above in <a 
href="Watches.html#Watches">Watches</a>
+can be considered to be an intermediate model between
+reserved checkouts and unreserved checkouts.  When you
+go to edit a file, it is possible to find out who else
+is editing it.  And rather than having the system
+simply forbid both people editing the file, it can tell
+you what the situation is and let you figure out
+whether it is a problem in that particular case or not.
+Therefore, for some groups it can be considered the
+best of both the reserved checkout and unreserved
+checkout worlds.
+</p>
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Watches.html#Watches" accesskey="p" rel="prev">Watches</a>, 
Up: <a href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Cleaning-up.html
===================================================================
RCS file: html_node/Cleaning-up.html
diff -N html_node/Cleaning-up.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Cleaning-up.html  28 Dec 2015 15:57:50 -0000      1.1
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Cleaning up</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Cleaning up">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Cleaning up">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="A-sample-session.html#A-sample-session" rel="up" title="A sample 
session">
+<link href="Viewing-differences.html#Viewing-differences" rel="next" 
title="Viewing differences">
+<link href="Committing-your-changes.html#Committing-your-changes" rel="prev" 
title="Committing your changes">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Cleaning-up"></a>
+<div class="header">
+<p>
+Next: <a href="Viewing-differences.html#Viewing-differences" accesskey="n" 
rel="next">Viewing differences</a>, Previous: <a 
href="Committing-your-changes.html#Committing-your-changes" accesskey="p" 
rel="prev">Committing your changes</a>, Up: <a 
href="A-sample-session.html#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Cleaning-up-1"></a>
+<h4 class="subsection">1.3.3 Cleaning up</h4>
+<a name="index-Cleaning-up"></a>
+<a name="index-Working-copy_002c-removing"></a>
+<a name="index-Removing-your-working-copy"></a>
+<a name="index-Releasing-your-working-copy"></a>
+
+<p>Before you turn to other tasks you decide to remove your working copy of
+tc.  One acceptable way to do that is of course
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ rm -r tc
+</pre></div>
+
+<p>but a better way is to use the <code>release</code> command (see <a 
href="release.html#release">release</a>):
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs release -d tc
+M driver.c
+? tc
+You have [1] altered files in this repository.
+Are you sure you want to release (and delete) directory `tc': n
+** `release' aborted by user choice.
+</pre></div>
+
+<p>The <code>release</code> command checks that all your modifications have 
been
+committed.  If history logging is enabled it also makes a note in the
+history file.  See <a href="history-file.html#history-file">history file</a>.
+</p>
+<p>When you use the &lsquo;<samp>-d</samp>&rsquo; flag with 
<code>release</code>, it
+also removes your working copy.
+</p>
+<p>In the example above, the <code>release</code> command wrote a couple of 
lines
+of output.  &lsquo;<samp>? tc</samp>&rsquo; means that the file 
<samp>tc</samp> is unknown to <small>CVS</small>.
+That is nothing to worry about: <samp>tc</samp> is the executable compiler,
+and it should not be stored in the repository.  See <a 
href="cvsignore.html#cvsignore">cvsignore</a>,
+for information about how to make that warning go away.
+See <a href="release-output.html#release-output">release output</a>, for a 
complete explanation of
+all possible output from <code>release</code>.
+</p>
+<p>&lsquo;<samp>M driver.c</samp>&rsquo; is more serious.  It means that the
+file <samp>driver.c</samp> has been modified since it was
+checked out.
+</p>
+<p>The <code>release</code> command always finishes by telling
+you how many modified files you have in your working
+copy of the sources, and then asks you for confirmation
+before deleting any files or making any note in the
+history file.
+</p>
+<p>You decide to play it safe and answer <kbd>n <span 
class="key">RET</span></kbd>
+when <code>release</code> asks for confirmation.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Viewing-differences.html#Viewing-differences" accesskey="n" 
rel="next">Viewing differences</a>, Previous: <a 
href="Committing-your-changes.html#Committing-your-changes" accesskey="p" 
rel="prev">Committing your changes</a>, Up: <a 
href="A-sample-session.html#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Committing-your-changes.html
===================================================================
RCS file: html_node/Committing-your-changes.html
diff -N html_node/Committing-your-changes.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Committing-your-changes.html      28 Dec 2015 15:57:50 -0000      
1.1
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Committing your 
changes</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Committing your changes">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Committing your changes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="A-sample-session.html#A-sample-session" rel="up" title="A sample 
session">
+<link href="Cleaning-up.html#Cleaning-up" rel="next" title="Cleaning up">
+<link href="Getting-the-source.html#Getting-the-source" rel="prev" 
title="Getting the source">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Committing-your-changes"></a>
+<div class="header">
+<p>
+Next: <a href="Cleaning-up.html#Cleaning-up" accesskey="n" rel="next">Cleaning 
up</a>, Previous: <a href="Getting-the-source.html#Getting-the-source" 
accesskey="p" rel="prev">Getting the source</a>, Up: <a 
href="A-sample-session.html#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Committing-your-changes-1"></a>
+<h4 class="subsection">1.3.2 Committing your changes</h4>
+<a name="index-Committing-changes-to-files"></a>
+<a name="index-Log-message-entry"></a>
+
+<p>When you have checked that the compiler is still compilable you decide
+to make a new version of <samp>backend.c</samp>.  This will
+store your new <samp>backend.c</samp> in the repository and
+make it available to anyone else who is using that same
+repository.
+</p>
+<div class="example">
+<pre class="example">$ cvs commit backend.c
+</pre></div>
+
+<p><small>CVS</small> starts an editor, to allow you to enter a log
+message.  You type in &ldquo;Added an optimization pass.&rdquo;,
+save the temporary file, and exit the editor.
+</p>
+<a name="index-CVSEDITOR_002c-environment-variable"></a>
+<a name="index-EDITOR_002c-environment-variable"></a>
+<p>The environment variable <code>$CVSEDITOR</code> determines
+which editor is started.  If <code>$CVSEDITOR</code> is not
+set, then if the environment variable <code>$EDITOR</code> is
+set, it will be used. If both <code>$CVSEDITOR</code> and
+<code>$EDITOR</code> are not set then there is a default
+which will vary with your operating system, for example
+<code>vi</code> for unix or <code>notepad</code> for Windows
+NT/95.
+</p>
+<a name="index-VISUAL_002c-environment-variable"></a>
+<p>In addition, <small>CVS</small> checks the <code>$VISUAL</code> environment
+variable.  Opinions vary on whether this behavior is desirable and
+whether future releases of <small>CVS</small> should check 
<code>$VISUAL</code> or
+ignore it.  You will be OK either way if you make sure that
+<code>$VISUAL</code> is either unset or set to the same thing as
+<code>$EDITOR</code>.
+</p>
+<p>When <small>CVS</small> starts the editor, it includes a list of
+files which are modified.  For the <small>CVS</small> client,
+this list is based on comparing the modification time
+of the file against the modification time that the file
+had when it was last gotten or updated.  Therefore, if
+a file&rsquo;s modification time has changed but its contents
+have not, it will show up as modified.  The simplest
+way to handle this is simply not to worry about it&mdash;if
+you proceed with the commit <small>CVS</small> will detect that
+the contents are not modified and treat it as an
+unmodified file.  The next <code>update</code> will clue
+<small>CVS</small> in to the fact that the file is unmodified,
+and it will reset its stored timestamp so that the file
+will not show up in future editor sessions.
+</p>
+<p>If you want to avoid
+starting an editor you can specify the log message on
+the command line using the &lsquo;<samp>-m</samp>&rsquo; flag instead, like
+this:
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Added an optimization pass&quot; 
backend.c
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Cleaning-up.html#Cleaning-up" accesskey="n" rel="next">Cleaning 
up</a>, Previous: <a href="Getting-the-source.html#Getting-the-source" 
accesskey="p" rel="prev">Getting the source</a>, Up: <a 
href="A-sample-session.html#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Common-options.html
===================================================================
RCS file: html_node/Common-options.html
diff -N html_node/Common-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Common-options.html       28 Dec 2015 15:57:51 -0000      1.1
@@ -0,0 +1,308 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Common options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Common options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Common options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="add.html#add" rel="next" title="add">
+<link href="Global-options.html#Global-options" rel="prev" title="Global 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Common-options"></a>
+<div class="header">
+<p>
+Next: <a href="add.html#add" accesskey="n" rel="next">add</a>, Previous: <a 
href="Global-options.html#Global-options" accesskey="p" rel="prev">Global 
options</a>, Up: <a href="CVS-commands.html#CVS-commands" accesskey="u" 
rel="up">CVS commands</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Common-command-options"></a>
+<h3 class="appendixsec">A.5 Common command options</h3>
+<a name="index-Common-options"></a>
+<a name="index-Right_002dhand-options"></a>
+
+<p>This section describes the &lsquo;<samp>command_options</samp>&rsquo; that
+are available across several <small>CVS</small> commands.  These
+options are always given to the right of
+&lsquo;<samp>cvs_command</samp>&rsquo;. Not all
+commands support all of these options; each option is
+only supported for commands where it makes sense.
+However, when a command has one of these options you
+can almost always count on the same behavior of the
+option as in other commands.  (Other command options,
+which are listed with the individual commands, may have
+different behavior from one <small>CVS</small> command to the other).
+</p>
+<p><strong>The &lsquo;<samp>history</samp>&rsquo; command is an exception; it 
supports
+many options that conflict even with these standard options.</strong>
+</p>
+<dl compact="compact">
+<dd><a name="index-Dates"></a>
+<a name="index-Time"></a>
+<a name="index-Specifying-dates"></a>
+</dd>
+<dt><code>-D <var>date_spec</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date_spec</var>.
+<var>date_spec</var> is a single argument, a date description
+specifying a date in the past.
+</p>
+<p>The specification is <em>sticky</em> when you use it to make a
+private copy of a source file; that is, when you get a working
+file using &lsquo;<samp>-D</samp>&rsquo;, <small>CVS</small> records the date 
you specified, so that
+further updates in the same directory will use the same date
+(for more information on sticky tags/dates, see <a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a>).
+</p>
+<p>&lsquo;<samp>-D</samp>&rsquo; is available with the <code>annotate</code>, 
<code>checkout</code>,
+<code>diff</code>, <code>export</code>, <code>history</code>,
+<code>rdiff</code>, <code>rtag</code>, and <code>update</code> commands.
+(The <code>history</code> command uses this option in a
+slightly different way; see <a 
href="history-options.html#history-options">history options</a>).
+</p>
+
+<a name="index-Timezone_002c-in-input"></a>
+<a name="index-Zone_002c-time_002c-in-input"></a>
+<p>A wide variety of date formats are supported by
+<small>CVS</small>.  The most standard ones are ISO8601 (from the
+International Standards Organization) and the Internet
+e-mail standard (specified in RFC822 as amended by
+RFC1123).
+</p>
+<p>ISO8601 dates have many variants but a few examples
+are:
+</p>
+<div class="example">
+<pre class="example">1972-09-24
+1972-09-24 20:05
+</pre></div>
+
+<p>There are a lot more ISO8601 date formats, and <small>CVS</small>
+accepts many of them, but you probably don&rsquo;t want to
+hear the <em>whole</em> long story :-).
+</p>
+
+<p>In addition to the dates allowed in Internet e-mail
+itself, <small>CVS</small> also allows some of the fields to be
+omitted.  For example:
+</p>
+<div class="example">
+<pre class="example">24 Sep 1972 20:05
+24 Sep
+</pre></div>
+
+<p>The date is interpreted as being in the
+local timezone, unless a specific timezone is
+specified.
+</p>
+<p>These two date formats are preferred.  However,
+<small>CVS</small> currently accepts a wide variety of other date
+formats.  They are intentionally not documented here in
+any detail, and future versions of <small>CVS</small> might not
+accept all of them.
+</p>
+<p>One such format is
+<code><var>month</var>/<var>day</var>/<var>year</var></code>.  This may
+confuse people who are accustomed to having the month
+and day in the other order; &lsquo;<samp>1/4/96</samp>&rsquo; is January 4,
+not April 1.
+</p>
+<p>Remember to quote the argument to the &lsquo;<samp>-D</samp>&rsquo;
+flag so that your shell doesn&rsquo;t interpret spaces as
+argument separators.  A command using the &lsquo;<samp>-D</samp>&rsquo;
+flag can look like this:
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -D &quot;1 hour ago&quot; cvs.texinfo
+</pre></div>
+
+<a name="index-Forcing-a-tag-match"></a>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>When you specify a particular date or tag to <small>CVS</small> 
commands, they
+normally ignore files that do not contain the tag (or did not
+exist prior to the date) that you specified.  Use the 
&lsquo;<samp>-f</samp>&rsquo; option
+if you want files retrieved even when there is no match for the
+tag or date.  (The most recent revision of the file
+will be used).
+</p>
+<p>Note that even with &lsquo;<samp>-f</samp>&rsquo;, a tag that you specify
+must exist (that is, in some file, not necessary in
+every file).  This is so that <small>CVS</small> will continue to
+give an error if you mistype a tag name.
+</p>
+<p>&lsquo;<samp>-f</samp>&rsquo; is available with these commands:
+<code>annotate</code>, <code>checkout</code>, <code>export</code>,
+<code>rdiff</code>, <code>rtag</code>, and <code>update</code>.
+</p>
+<p><strong>WARNING:  The <code>commit</code> and <code>remove</code>
+commands also have a
+&lsquo;<samp>-f</samp>&rsquo; option, but it has a different behavior for
+those commands.  See <a href="commit-options.html#commit-options">commit 
options</a>, and
+<a href="Removing-files.html#Removing-files">Removing files</a>.</strong>
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Alter the default processing of keywords.
+See <a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>, for the meaning of
+<var>kflag</var>.  Your <var>kflag</var> specification is
+<em>sticky</em> when you use it to create a private copy
+of a source file; that is, when you use this option
+with the <code>checkout</code> or <code>update</code> commands,
+<small>CVS</small> associates your selected <var>kflag</var> with the
+file, and continues to use it with future update
+commands on the same file until you specify otherwise.
+</p>
+<p>The &lsquo;<samp>-k</samp>&rsquo; option is available with the 
<code>add</code>,
+<code>checkout</code>, <code>diff</code>, <code>rdiff</code>, 
<code>import</code> and
+<code>update</code> commands.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory, rather than
+recursing through subdirectories.
+</p>
+<p>Available with the following commands: <code>annotate</code>, 
<code>checkout</code>,
+<code>commit</code>, <code>diff</code>, <code>edit</code>, 
<code>editors</code>, <code>export</code>,
+<code>log</code>, <code>rdiff</code>, <code>remove</code>, <code>rtag</code>,
+<code>status</code>, <code>tag</code>, <code>unedit</code>, 
<code>update</code>, <code>watch</code>,
+and <code>watchers</code>.
+</p>
+<a name="index-Editor_002c-avoiding-invocation-of"></a>
+<a name="index-Avoiding-editor-invocation"></a>
+</dd>
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as log information, instead of
+invoking an editor.
+</p>
+<p>Available with the following commands: <code>add</code>,
+<code>commit</code> and <code>import</code>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run any tag program.  (A program can be
+specified to run in the modules
+database (see <a href="modules.html#modules">modules</a>); this option 
bypasses it).
+</p>
+<p><strong>This is not the same as the &lsquo;<samp>cvs -n</samp>&rsquo;
+program option, which you can specify to the left of a cvs command!</strong>
+</p>
+<p>Available with the <code>checkout</code>, <code>export</code>,
+and <code>rtag</code> commands.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a 
href="Removing-directories.html#Removing-directories">Removing directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Pipe the files retrieved from the repository to standard output,
+rather than writing them in the current directory.  Available
+with the <code>checkout</code> and <code>update</code> commands.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Process directories recursively.  This is on by default.
+</p>
+<p>Available with the following commands: <code>annotate</code>, 
<code>checkout</code>,
+<code>commit</code>, <code>diff</code>, <code>edit</code>, 
<code>editors</code>, <code>export</code>,
+<code>rdiff</code>, <code>remove</code>, <code>rtag</code>,
+<code>status</code>, <code>tag</code>, <code>unedit</code>, 
<code>update</code>, <code>watch</code>,
+and <code>watchers</code>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><a name="index-HEAD_002c-special-tag"></a>
+<a name="index-BASE_002c-special-tag"></a>
+<p>Use the revision specified by the <var>tag</var> argument instead of the
+default <em>head</em> revision.  As well as arbitrary tags defined
+with the <code>tag</code> or <code>rtag</code> command, two special tags are
+always available: &lsquo;<samp>HEAD</samp>&rsquo; refers to the most recent 
version
+available in the repository, and &lsquo;<samp>BASE</samp>&rsquo; refers to the
+revision you last checked out into the current working directory.
+</p>
+
+<p>The tag specification is sticky when you use this
+with <code>checkout</code> or <code>update</code> to make your own
+copy of a file: <small>CVS</small> remembers the tag and continues to use it on
+future update commands, until you specify otherwise (for more information
+on sticky tags/dates, see <a href="Sticky-tags.html#Sticky-tags">Sticky 
tags</a>).
+</p>
+<p>The tag can be either a symbolic or numeric tag, as
+described in <a href="Tags.html#Tags">Tags</a>, or the name of a branch, as
+described in <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>.
+When a command expects a specific revision,
+the name of a branch is interpreted as the most recent
+revision on that branch.
+</p>
+<p>Specifying the &lsquo;<samp>-q</samp>&rsquo; global option along with the
+&lsquo;<samp>-r</samp>&rsquo; command option is often useful, to suppress
+the warning messages when the <small>RCS</small> file
+does not contain the specified tag.
+</p>
+<p><strong>This is not the same as the overall &lsquo;<samp>cvs 
-r</samp>&rsquo; option,
+which you can specify to the left of a <small>CVS</small> command!</strong>
+</p>
+<p>&lsquo;<samp>-r</samp>&rsquo; is available with the <code>annotate</code>, 
<code>checkout</code>,
+<code>commit</code>, <code>diff</code>, <code>history</code>, 
<code>export</code>, <code>rdiff</code>, 
+<code>rtag</code>, and <code>update</code> commands.
+</p>
+</dd>
+<dt><code>-W</code></dt>
+<dd><p>Specify file names that should be filtered.  You can
+use this option repeatedly.  The spec can be a file
+name pattern of the same type that you can specify in
+the <samp>.cvswrappers</samp> file.
+Available with the following commands: <code>import</code>,
+and <code>update</code>.
+</p>
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="add.html#add" accesskey="n" rel="next">add</a>, Previous: <a 
href="Global-options.html#Global-options" accesskey="p" rel="prev">Global 
options</a>, Up: <a href="CVS-commands.html#CVS-commands" accesskey="u" 
rel="up">CVS commands</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Compatibility.html
===================================================================
RCS file: html_node/Compatibility.html
diff -N html_node/Compatibility.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Compatibility.html        28 Dec 2015 15:57:51 -0000      1.1
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Compatibility</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Compatibility">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Compatibility">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Troubleshooting.html#Troubleshooting" rel="next" 
title="Troubleshooting">
+<link href="Environment-variables.html#Environment-variables" rel="prev" 
title="Environment variables">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Compatibility"></a>
+<div class="header">
+<p>
+Next: <a href="Troubleshooting.html#Troubleshooting" accesskey="n" 
rel="next">Troubleshooting</a>, Previous: <a 
href="Environment-variables.html#Environment-variables" accesskey="p" 
rel="prev">Environment variables</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Compatibility-between-CVS-Versions"></a>
+<h2 class="appendix">Appendix E Compatibility between CVS Versions</h2>
+
+<a name="index-CVS_002c-versions-of"></a>
+<a name="index-Versions_002c-of-CVS"></a>
+<a name="index-Compatibility_002c-between-CVS-versions"></a>
+<p>The repository format is compatible going back to
+<small>CVS</small> 1.3.  But see <a 
href="Watches-Compatibility.html#Watches-Compatibility">Watches 
Compatibility</a>, if
+you have copies of <small>CVS</small> 1.6 or older and you want
+to use the optional developer communication features.
+</p>
+<p>The working directory format is compatible going back
+to <small>CVS</small> 1.5.  It did change between <small>CVS</small> 1.3
+and <small>CVS</small> 1.5.  If you run <small>CVS</small> 1.5 or newer on
+a working directory checked out with <small>CVS</small> 1.3,
+<small>CVS</small> will convert it, but to go back to <small>CVS</small>
+1.3 you need to check out a new working directory with
+<small>CVS</small> 1.3.
+</p>
+<p>The remote protocol is interoperable going back to <small>CVS</small> 1.5, 
but no
+further (1.5 was the first official release with the remote protocol,
+but some older versions might still be floating around).  In many
+cases you need to upgrade both the client and the server to take
+advantage of new features and bug fixes, however.
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/Concurrency.html
===================================================================
RCS file: html_node/Concurrency.html
diff -N html_node/Concurrency.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Concurrency.html  28 Dec 2015 15:57:51 -0000      1.1
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Concurrency</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Concurrency">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Concurrency">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Watches.html#Watches" rel="next" title="Watches">
+<link href="Informing-others.html#Informing-others" rel="prev" 
title="Informing others">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Concurrency"></a>
+<div class="header">
+<p>
+Next: <a href="Watches.html#Watches" accesskey="n" rel="next">Watches</a>, 
Previous: <a href="Informing-others.html#Informing-others" accesskey="p" 
rel="prev">Informing others</a>, Up: <a 
href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Several-developers-simultaneously-attempting-to-run-CVS"></a>
+<h3 class="section">10.5 Several developers simultaneously attempting to run 
CVS</h3>
+
+<a name="index-Locks_002c-cvs_002c-introduction"></a>
+<p>If several developers try to run <small>CVS</small> at the same
+time, one may get the following message:
+</p>
+<div class="example">
+<pre class="example">[11:43:23] waiting for bach's lock in 
/usr/local/cvsroot/foo
+</pre></div>
+
+<a name="index-_0023cvs_002erfl_002c-removing"></a>
+<a name="index-_0023cvs_002ewfl_002c-removing"></a>
+<a name="index-_0023cvs_002elock_002c-removing"></a>
+<p><small>CVS</small> will try again every 30 seconds, and either
+continue with the operation or print the message again,
+if it still needs to wait.  If a lock seems to stick
+around for an undue amount of time, find the person
+holding the lock and ask them about the cvs command
+they are running.  If they aren&rsquo;t running a cvs
+command, look in the repository directory mentioned in
+the message and remove files which they own whose names
+start with <samp>#cvs.rfl</samp>,
+<samp>#cvs.wfl</samp>, or <samp>#cvs.lock</samp>.
+</p>
+<p>Note that these locks are to protect <small>CVS</small>&rsquo;s
+internal data structures and have no relationship to
+the word <em>lock</em> in the sense used by
+<small>RCS</small>&mdash;which refers to reserved checkouts
+(see <a href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a>).
+</p>
+<p>Any number of people can be reading from a given
+repository at a time; only when someone is writing do
+the locks prevent other people from reading or writing.
+</p>
+<a name="index-Atomic-transactions_002c-lack-of"></a>
+<a name="index-Transactions_002c-atomic_002c-lack-of"></a>
+<p>One might hope for the following property:
+</p>
+<blockquote>
+<p>If someone commits some changes in one cvs command,
+then an update by someone else will either get all the
+changes, or none of them.
+</p></blockquote>
+
+<p>but <small>CVS</small> does <em>not</em> have this property.  For
+example, given the files
+</p>
+<div class="example">
+<pre class="example">a/one.c
+a/two.c
+b/three.c
+b/four.c
+</pre></div>
+
+<p>if someone runs
+</p>
+<div class="example">
+<pre class="example">cvs ci a/two.c b/three.c
+</pre></div>
+
+<p>and someone else runs <code>cvs update</code> at the same
+time, the person running <code>update</code> might get only
+the change to <samp>b/three.c</samp> and not the change to
+<samp>a/two.c</samp>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Watches.html#Watches" accesskey="n" rel="next">Watches</a>, 
Previous: <a href="Informing-others.html#Informing-others" accesskey="p" 
rel="prev">Informing others</a>, Up: <a 
href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Conflicts-example.html
===================================================================
RCS file: html_node/Conflicts-example.html
diff -N html_node/Conflicts-example.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Conflicts-example.html    28 Dec 2015 15:57:51 -0000      1.1
@@ -0,0 +1,240 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Conflicts example</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Conflicts example">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Conflicts example">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Informing-others.html#Informing-others" rel="next" 
title="Informing others">
+<link href="Updating-a-file.html#Updating-a-file" rel="prev" title="Updating a 
file">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Conflicts-example"></a>
+<div class="header">
+<p>
+Next: <a href="Informing-others.html#Informing-others" accesskey="n" 
rel="next">Informing others</a>, Previous: <a 
href="Updating-a-file.html#Updating-a-file" accesskey="p" rel="prev">Updating a 
file</a>, Up: <a href="Multiple-developers.html#Multiple-developers" 
accesskey="u" rel="up">Multiple developers</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Conflicts-example-1"></a>
+<h3 class="section">10.3 Conflicts example</h3>
+<a name="index-Merge_002c-an-example"></a>
+<a name="index-Example-of-merge"></a>
+<a name="index-driver_002ec-_0028merge-example_0029"></a>
+
+<p>Suppose revision 1.4 of <samp>driver.c</samp> contains this:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdio.h&gt;
+
+void main()
+{
+    parse();
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(nerr == 0 ? 0 : 1);
+}
+</pre></div>
+
+<p>Revision 1.6 of <samp>driver.c</samp> contains this:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdio.h&gt;
+
+int main(int argc,
+         char **argv)
+{
+    parse();
+    if (argc != 1)
+    {
+        fprintf(stderr, &quot;tc: No args expected.\n&quot;);
+        exit(1);
+    }
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(!!nerr);
+}
+</pre></div>
+
+<p>Your working copy of <samp>driver.c</samp>, based on revision
+1.4, contains this before you run &lsquo;<samp>cvs update</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+
+void main()
+{
+    init_scanner();
+    parse();
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+</pre></div>
+
+<p>You run &lsquo;<samp>cvs update</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cvs update driver.c
+RCS file: /usr/local/cvsroot/yoyodyne/tc/driver.c,v
+retrieving revision 1.4
+retrieving revision 1.6
+Merging differences between 1.4 and 1.6 into driver.c
+rcsmerge warning: overlaps during merge
+cvs update: conflicts found in driver.c
+C driver.c
+</pre></div>
+
+<a name="index-Conflicts-_0028merge-example_0029"></a>
+<p><small>CVS</small> tells you that there were some conflicts.
+Your original working file is saved unmodified in
+<samp>.#driver.c.1.4</samp>.  The new version of
+<samp>driver.c</samp> contains this:
+</p>
+<div class="example">
+<pre class="example">#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+
+int main(int argc,
+         char **argv)
+{
+    init_scanner();
+    parse();
+    if (argc != 1)
+    {
+        fprintf(stderr, &quot;tc: No args expected.\n&quot;);
+        exit(1);
+    }
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+&lt;&lt;&lt;&lt;&lt;&lt;&lt; driver.c
+    exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+=======
+    exit(!!nerr);
+&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1.6
+}
+</pre></div>
+
+<a name="index-Markers_002c-conflict"></a>
+<a name="index-Conflict-markers"></a>
+<a name="index-_003c_003c_003c_003c_003c_003c_003c"></a>
+<a name="index-_003e_003e_003e_003e_003e_003e_003e"></a>
+<a name="index-_003d_003d_003d_003d_003d_003d_003d"></a>
+
+<p>Note how all non-overlapping modifications are incorporated in your working
+copy, and that the overlapping section is clearly marked with
+&lsquo;<samp>&lt;&lt;&lt;&lt;&lt;&lt;&lt;</samp>&rsquo;, 
&lsquo;<samp>=======</samp>&rsquo; and 
&lsquo;<samp>&gt;&gt;&gt;&gt;&gt;&gt;&gt;</samp>&rsquo;.
+</p>
+<a name="index-Resolving-a-conflict"></a>
+<a name="index-Conflict-resolution"></a>
+<p>You resolve the conflict by editing the file, removing the markers and
+the erroneous line.  Suppose you end up with this file:
+</p><div class="example">
+<pre class="example">#include &lt;stdlib.h&gt;
+#include &lt;stdio.h&gt;
+
+int main(int argc,
+         char **argv)
+{
+    init_scanner();
+    parse();
+    if (argc != 1)
+    {
+        fprintf(stderr, &quot;tc: No args expected.\n&quot;);
+        exit(1);
+    }
+    if (nerr == 0)
+        gencode();
+    else
+        fprintf(stderr, &quot;No code generated.\n&quot;);
+    exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+</pre></div>
+
+<p>You can now go ahead and commit this as revision 1.7.
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Initialize scanner. Use symbolic 
exit values.&quot; driver.c
+Checking in driver.c;
+/usr/local/cvsroot/yoyodyne/tc/driver.c,v  &lt;--  driver.c
+new revision: 1.7; previous revision: 1.6
+done
+</pre></div>
+
+<p>For your protection, <small>CVS</small> will refuse to check in a
+file if a conflict occurred and you have not resolved
+the conflict.  Currently to resolve a conflict, you
+must change the timestamp on the file.  In previous
+versions of <small>CVS</small>, you also needed to
+insure that the file contains no conflict markers.
+Because
+your file may legitimately contain conflict markers (that
+is, occurrences of &lsquo;<samp>&gt;&gt;&gt;&gt;&gt;&gt;&gt; </samp>&rsquo; at 
the start of a
+line that don&rsquo;t mark a conflict), the current
+version of <small>CVS</small> will print a warning and proceed to
+check in the file.
+</p>
+<a name="index-emerge"></a>
+<p>If you use release 1.04 or later of pcl-cvs (a <small>GNU</small>
+Emacs front-end for <small>CVS</small>) you can use an Emacs
+package called emerge to help you resolve conflicts.
+See the documentation for pcl-cvs.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Informing-others.html#Informing-others" accesskey="n" 
rel="next">Informing others</a>, Previous: <a 
href="Updating-a-file.html#Updating-a-file" accesskey="p" rel="prev">Updating a 
file</a>, Up: <a href="Multiple-developers.html#Multiple-developers" 
accesskey="u" rel="up">Multiple developers</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Connecting-via-fork.html
===================================================================
RCS file: html_node/Connecting-via-fork.html
diff -N html_node/Connecting-via-fork.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Connecting-via-fork.html  28 Dec 2015 15:57:52 -0000      1.1
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Connecting via 
fork</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Connecting via fork">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Connecting via fork">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Remote-repositories.html#Remote-repositories" rel="up" 
title="Remote repositories">
+<link href="Read_002donly-access.html#Read_002donly-access" rel="next" 
title="Read-only access">
+<link href="Kerberos-authenticated.html#Kerberos-authenticated" rel="prev" 
title="Kerberos authenticated">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Connecting-via-fork"></a>
+<div class="header">
+<p>
+Previous: <a href="Kerberos-authenticated.html#Kerberos-authenticated" 
accesskey="p" rel="prev">Kerberos authenticated</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Connecting-with-fork"></a>
+<h4 class="subsection">2.9.6 Connecting with fork</h4>
+
+<a name="index-fork_002c-access-method"></a>
+<a name="index-_003afork_003a_002c-setting-up"></a>
+<p>This access method allows you to connect to a
+repository on your local disk via the remote protocol.
+In other words it does pretty much the same thing as
+<code>:local:</code>, but various quirks, bugs and the like are
+those of the remote <small>CVS</small> rather than the local
+<small>CVS</small>.
+</p>
+<p>For day-to-day operations you might prefer either
+<code>:local:</code> or <code>:fork:</code>, depending on your
+preferences.  Of course <code>:fork:</code> comes in
+particularly handy in testing or
+debugging <code>cvs</code> and the remote protocol.
+Specifically, we avoid all of the network-related
+setup/configuration, timeouts, and authentication
+inherent in the other remote access methods but still
+create a connection which uses the remote protocol.
+</p>
+<p>To connect using the <code>fork</code> method, use
+&lsquo;<samp>:fork:</samp>&rsquo; and the pathname to your local
+repository.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs -d :fork:/usr/local/cvsroot checkout foo
+</pre></div>
+
+<a name="index-CVS_005fSERVER_002c-and-_003afork_003a"></a>
+<p>As with <code>:ext:</code>, the server is called 
&lsquo;<samp>cvs</samp>&rsquo;
+by default, or the value of the <code>CVS_SERVER</code>
+environment variable.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Connecting-via-rsh.html
===================================================================
RCS file: html_node/Connecting-via-rsh.html
diff -N html_node/Connecting-via-rsh.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Connecting-via-rsh.html   28 Dec 2015 15:57:52 -0000      1.1
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Connecting via 
rsh</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Connecting via rsh">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Connecting via rsh">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Remote-repositories.html#Remote-repositories" rel="up" 
title="Remote repositories">
+<link href="Password-authenticated.html#Password-authenticated" rel="next" 
title="Password authenticated">
+<link href="Server-requirements.html#Server-requirements" rel="prev" 
title="Server requirements">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Connecting-via-rsh"></a>
+<div class="header">
+<p>
+Next: <a href="Password-authenticated.html#Password-authenticated" 
accesskey="n" rel="next">Password authenticated</a>, Previous: <a 
href="Server-requirements.html#Server-requirements" accesskey="p" 
rel="prev">Server requirements</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Connecting-with-rsh-or-ssh"></a>
+<h4 class="subsection">2.9.2 Connecting with rsh or ssh</h4>
+
+<a name="index-ssh"></a>
+<p><small>CVS</small> may use the &lsquo;<samp>ssh</samp>&rsquo; protocol to 
perform
+these operations, so the remote user host needs to have
+a either an agent like <code>ssh-agent</code> to hold
+credentials or a <samp>.shosts</samp> file which grants
+access to the local user. Note that the program that
+<small>CVS</small> uses for this purpose may be specified using
+the <samp>--with-ssh</samp> flag to configure.
+</p>
+<a name="index-rsh"></a>
+<p><small>CVS</small> uses the &lsquo;<samp>rsh</samp>&rsquo; protocol to 
perform these
+operations, so the remote user host needs to have a
+<samp>.rhosts</samp> file which grants access to the local
+user. Note that the program that <small>CVS</small> uses for this
+purpose may be specified using the <samp>--with-rsh</samp>
+flag to configure.
+</p>
+<p>For example, suppose you are the user &lsquo;<samp>mozart</samp>&rsquo; on
+the local machine &lsquo;<samp>toe.example.com</samp>&rsquo;, and the
+server machine is &lsquo;<samp>faun.example.org</samp>&rsquo;.  On
+faun, put the following line into the file
+<samp>.rhosts</samp> in &lsquo;<samp>bach</samp>&rsquo;&rsquo;s home directory:
+</p>
+<div class="example">
+<pre class="example">toe.example.com  mozart
+</pre></div>
+
+<p>Then test that &lsquo;<samp>rsh</samp>&rsquo; is working with
+</p>
+<div class="example">
+<pre class="example">rsh -l bach faun.example.org 'echo $PATH'
+</pre></div>
+
+<p>To test that &lsquo;<samp>ssh</samp>&rsquo; is working use
+</p>
+<div class="example">
+<pre class="example">ssh -l bach faun.example.org 'echo $PATH'
+</pre></div>
+
+<a name="index-CVS_005fSERVER_002c-environment-variable"></a>
+<p>Next you have to make sure that <code>rsh</code> will be able
+to find the server.  Make sure that the path which
+<code>rsh</code> printed in the above example includes the
+directory containing a program named <code>cvs</code> which
+is the server.  You need to set the path in
+<samp>.bashrc</samp>, <samp>.cshrc</samp>, etc., not <samp>.login</samp>
+or <samp>.profile</samp>.  Alternately, you can set the
+environment variable <code>CVS_SERVER</code> on the client
+machine to the filename of the server you want to use,
+for example <samp>/usr/local/bin/cvs-1.6</samp>.
+</p>
+<p>There is no need to edit <samp>inetd.conf</samp> or start a
+<small>CVS</small> server daemon.
+</p>
+<a name="index-_003aserver_003a_002c-setting-up"></a>
+<a name="index-_003aext_003a_002c-setting-up"></a>
+<a name="index-_003aextssh_003a_002c-setting-up"></a>
+<a name="index-Kerberos_002c-using-kerberized-rsh"></a>
+<a name="index-SSH-_0028rsh-replacement_0029"></a>
+<a name="index-rsh-replacements-_0028Kerberized_002c-SSH_002c-_0026c_0029"></a>
+<p>There are three access methods that you use in <code>CVSROOT</code>
+for rsh or ssh.  <code>:server:</code> specifies an internal rsh
+client, which is supported only by some <small>CVS</small> ports.
+<code>:extssh:</code> specifies an external ssh program. By
+default this is <code>ssh</code> (unless otherwise specified
+by the <samp>--with-ssh</samp> flag to configure) but you may set the
+<code>CVS_SSH</code> environment variable to invoke another
+program or wrapper script.
+<code>:ext:</code> specifies an external rsh program.  By
+default this is <code>rsh</code> (unless otherwise specified
+by the <samp>--with-rsh</samp> flag to configure) but you may set the
+<code>CVS_RSH</code> environment variable to invoke another
+program which can access the remote server (for
+example, <code>remsh</code> on HP-UX 9 because <code>rsh</code> is
+something different).  It must be a program which can
+transmit data to and from the server without modifying
+it; for example the Windows NT <code>rsh</code> is not
+suitable since it by default translates between CRLF
+and LF.  The OS/2 <small>CVS</small> port has a hack to pass 
&lsquo;<samp>-b</samp>&rsquo;
+to <code>rsh</code> to get around this, but since this could
+potentially cause problems for programs other than the
+standard <code>rsh</code>, it may change in the future.  If
+you set <code>CVS_RSH</code> to <code>SSH</code> or some other rsh
+replacement, the instructions in the rest of this
+section concerning <samp>.rhosts</samp> and so on are likely
+to be inapplicable; consult the documentation for your rsh
+replacement.
+</p>
+<p>Continuing our example, supposing you want to access
+the module <samp>foo</samp> in the repository
+<samp>/usr/local/cvsroot/</samp>, on machine
+<samp>faun.example.org</samp>, you are ready to go:
+</p>
+<div class="example">
+<pre class="example">cvs -d :ext:address@hidden:/usr/local/cvsroot checkout foo
+</pre></div>
+
+<p>(The <samp>bach@</samp> can be omitted if the username is
+the same on both the local and remote hosts.)
+</p>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Password-authenticated.html#Password-authenticated" 
accesskey="n" rel="next">Password authenticated</a>, Previous: <a 
href="Server-requirements.html#Server-requirements" accesskey="p" 
rel="prev">Server requirements</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Connection.html
===================================================================
RCS file: html_node/Connection.html
diff -N html_node/Connection.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Connection.html   28 Dec 2015 15:57:52 -0000      1.1
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Connection</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Connection">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Connection">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Troubleshooting.html#Troubleshooting" rel="up" 
title="Troubleshooting">
+<link href="Other-problems.html#Other-problems" rel="next" title="Other 
problems">
+<link href="Error-messages.html#Error-messages" rel="prev" title="Error 
messages">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Connection"></a>
+<div class="header">
+<p>
+Next: <a href="Other-problems.html#Other-problems" accesskey="n" 
rel="next">Other problems</a>, Previous: <a 
href="Error-messages.html#Error-messages" accesskey="p" rel="prev">Error 
messages</a>, Up: <a href="Troubleshooting.html#Troubleshooting" accesskey="u" 
rel="up">Troubleshooting</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Trouble-making-a-connection-to-a-CVS-server"></a>
+<h3 class="appendixsec">F.2 Trouble making a connection to a CVS server</h3>
+
+<p>This section concerns what to do if you are having
+trouble making a connection to a <small>CVS</small> server.  If
+you are running the <small>CVS</small> command line client
+running on Windows, first upgrade the client to
+<small>CVS</small> 1.9.12 or later.  The error reporting in
+earlier versions provided much less information about
+what the problem was.  If the client is non-Windows,
+<small>CVS</small> 1.9 should be fine.
+</p>
+<p>If the error messages are not sufficient to track down
+the problem, the next steps depend largely on which
+access method you are using.
+</p>
+<dl compact="compact">
+<dd><a name="index-_003aext_003a_002c-troubleshooting"></a>
+</dd>
+<dt><code>:ext:</code></dt>
+<dd><p>Try running the rsh program from the command line.  For
+example: &quot;rsh servername cvs -v&quot; should print <small>CVS</small>
+version information.  If this doesn&rsquo;t work, you need to
+fix it before you can worry about <small>CVS</small> problems.
+</p>
+<a name="index-_003aserver_003a_002c-troubleshooting"></a>
+</dd>
+<dt><code>:server:</code></dt>
+<dd><p>You don&rsquo;t need a command line rsh program to use this
+access method, but if you have an rsh program around,
+it may be useful as a debugging tool.  Follow the
+directions given for :ext:.
+</p>
+<a name="index-_003apserver_003a_002c-troubleshooting"></a>
+</dd>
+<dt><code>:pserver:</code></dt>
+<dd><p>Errors along the lines of &quot;connection refused&quot; typically 
indicate
+that inetd isn&rsquo;t even listening for connections on port 2401
+whereas errors like &quot;connection reset by peer&quot;,
+&quot;received broken pipe signal&quot;, &quot;recv() from server: EOF&quot;,
+or &quot;end of file from server&quot;
+typically indicate that inetd is listening for
+connections but is unable to start <small>CVS</small> (this is frequently
+caused by having an incorrect path in <samp>inetd.conf</samp>
+or by firewall software rejecting the connection).
+&quot;unrecognized auth response&quot; errors are caused by a bad command
+line in <samp>inetd.conf</samp>, typically an invalid option or forgetting
+to put the &lsquo;<samp>pserver</samp>&rsquo; command at the end of the line.
+Another less common problem is invisible control characters that
+your editor &quot;helpfully&quot; added without you noticing.
+</p>
+<p>One good debugging tool is to &quot;telnet servername
+2401&quot;.  After connecting, send any text (for example
+&quot;foo&quot; followed by return).  If <small>CVS</small> is working
+correctly, it will respond with
+</p>
+<div class="example">
+<pre class="example">cvs [pserver aborted]: bad auth protocol start: foo
+</pre></div>
+
+<p>If instead you get:
+</p>
+<div class="example">
+<pre class="example">Usage: cvs [cvs-options] command 
[command-options-and-arguments]
+...
+</pre></div>
+
+<p>then you&rsquo;re missing the &lsquo;<samp>pserver</samp>&rsquo; command at 
the end of the
+line in <samp>inetd.conf</samp>; check to make sure that the entire command
+is on one line and that it&rsquo;s complete.
+</p>
+<p>Likewise, if you get something like:
+</p>
+<div class="example">
+<pre class="example">Unknown command: `pserved'
+
+CVS commands are:
+        add          Add a new file/directory to the repository
+...
+</pre></div>
+
+<p>then you&rsquo;ve misspelled &lsquo;<samp>pserver</samp>&rsquo; in some 
way.  If it isn&rsquo;t
+obvious, check for invisible control characters (particularly
+carriage returns) in <samp>inetd.conf</samp>.
+</p>
+<p>If it fails to work at all, then make sure inetd is working
+right.  Change the invocation in <samp>inetd.conf</samp> to run the
+echo program instead of cvs.  For example:
+</p>
+<div class="example">
+<pre class="example">2401  stream  tcp  nowait  root /bin/echo echo hello
+</pre></div>
+
+<p>After making that change and instructing inetd to
+re-read its configuration file, &quot;telnet servername
+2401&quot; should show you the text hello and then the
+server should close the connection.  If this doesn&rsquo;t
+work, you need to fix it before you can worry about
+<small>CVS</small> problems.
+</p>
+<p>On AIX systems, the system will often have its own
+program trying to use port 2401.  This is AIX&rsquo;s problem
+in the sense that port 2401 is registered for use with
+<small>CVS</small>.  I hear that there is an AIX patch available
+to address this problem.
+</p>
+<p>Another good debugging tool is the &lsquo;<samp>-d</samp>&rsquo;
+(debugging) option to inetd.  Consult your system
+documentation for more information.
+</p>
+<p>If you seem to be connecting but get errors like:
+</p>
+<div class="example">
+<pre class="example">cvs server: cannot open /root/.cvsignore: Permission 
denied
+cvs [server aborted]: can't chdir(/root): Permission denied
+</pre></div>
+
+<p>then you probably haven&rsquo;t specified &lsquo;<samp>-f</samp>&rsquo; in 
<samp>inetd.conf</samp>.
+(In releases prior to <small>CVS</small> 1.11.1, this problem can be caused by
+your system setting the <code>$HOME</code> environment variable
+for programs being run by inetd.  In this case, you can either
+have inetd run a shell script that unsets <code>$HOME</code> and then runs
+<small>CVS</small>, or you can use <code>env</code> to run <small>CVS</small> 
with a pristine
+environment.)
+</p>
+<p>If you can connect successfully for a while but then can&rsquo;t,
+you&rsquo;ve probably hit inetd&rsquo;s rate limit.
+(If inetd receives too many requests for the same service
+in a short period of time, it assumes that something is wrong
+and temporarily disables the service.)
+Check your inetd documentation to find out how to adjust the
+rate limit (some versions of inetd have a single rate limit,
+others allow you to set the limit for each service separately.)
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Other-problems.html#Other-problems" accesskey="n" 
rel="next">Other problems</a>, Previous: <a 
href="Error-messages.html#Error-messages" accesskey="p" rel="prev">Error 
messages</a>, Up: <a href="Troubleshooting.html#Troubleshooting" accesskey="u" 
rel="up">Troubleshooting</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Creating-a-branch.html
===================================================================
RCS file: html_node/Creating-a-branch.html
diff -N html_node/Creating-a-branch.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Creating-a-branch.html    28 Dec 2015 15:57:52 -0000      1.1
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Creating a branch</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Creating a branch">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Creating a branch">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Accessing-branches.html#Accessing-branches" rel="next" 
title="Accessing branches">
+<link href="Branches-motivation.html#Branches-motivation" rel="prev" 
title="Branches motivation">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Creating-a-branch"></a>
+<div class="header">
+<p>
+Next: <a href="Accessing-branches.html#Accessing-branches" accesskey="n" 
rel="next">Accessing branches</a>, Previous: <a 
href="Branches-motivation.html#Branches-motivation" accesskey="p" 
rel="prev">Branches motivation</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Creating-a-branch-1"></a>
+<h3 class="section">5.2 Creating a branch</h3>
+<a name="index-Creating-a-branch"></a>
+<a name="index-Branch_002c-creating-a"></a>
+<a name="index-tag_002c-creating-a-branch-using"></a>
+<a name="index-rtag_002c-creating-a-branch-using"></a>
+
+<p>You can create a branch with <code>tag -b</code>; for
+example, assuming you&rsquo;re in a working copy:
+</p>
+<div class="example">
+<pre class="example">$ cvs tag -b rel-1-0-patches
+</pre></div>
+
+
+<p>This splits off a branch based on the current revisions
+in the working copy, assigning that branch the name
+&lsquo;<samp>rel-1-0-patches</samp>&rsquo;.
+</p>
+<p>It is important to understand that branches get created
+in the repository, not in the working copy.  Creating a
+branch based on current revisions, as the above example
+does, will <em>not</em> automatically switch the working
+copy to be on the new branch.  For information on how
+to do that, see <a href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a>.
+</p>
+<p>You can also create a branch without reference to any
+working copy, by using <code>rtag</code>:
+</p>
+<div class="example">
+<pre class="example">$ cvs rtag -b -r rel-1-0 rel-1-0-patches tc
+</pre></div>
+
+<p>&lsquo;<samp>-r rel-1-0</samp>&rsquo; says that this branch should be
+rooted at the revision that
+corresponds to the tag &lsquo;<samp>rel-1-0</samp>&rsquo;.  It need not
+be the most recent revision &ndash; it&rsquo;s often useful to
+split a branch off an old revision (for example, when
+fixing a bug in a past release otherwise known to be
+stable).
+</p>
+<p>As with &lsquo;<samp>tag</samp>&rsquo;, the &lsquo;<samp>-b</samp>&rsquo; 
flag tells
+<code>rtag</code> to create a branch (rather than just a
+symbolic revision name).  Note that the numeric
+revision number that matches &lsquo;<samp>rel-1-0</samp>&rsquo; will
+probably be different from file to file.
+</p>
+<p>So, the full effect of the command is to create a new
+branch &ndash; named &lsquo;<samp>rel-1-0-patches</samp>&rsquo; &ndash; in 
module
+&lsquo;<samp>tc</samp>&rsquo;, rooted in the revision tree at the point tagged
+by &lsquo;<samp>rel-1-0</samp>&rsquo;.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Accessing-branches.html#Accessing-branches" accesskey="n" 
rel="next">Accessing branches</a>, Previous: <a 
href="Branches-motivation.html#Branches-motivation" accesskey="p" 
rel="prev">Branches motivation</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Creating-a-repository.html
===================================================================
RCS file: html_node/Creating-a-repository.html
diff -N html_node/Creating-a-repository.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Creating-a-repository.html        28 Dec 2015 15:57:52 -0000      
1.1
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Creating a 
repository</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Creating a repository">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Creating a repository">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Backing-up.html#Backing-up" rel="next" title="Backing up">
+<link href="Multiple-repositories.html#Multiple-repositories" rel="prev" 
title="Multiple repositories">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Creating-a-repository"></a>
+<div class="header">
+<p>
+Next: <a href="Backing-up.html#Backing-up" accesskey="n" rel="next">Backing 
up</a>, Previous: <a href="Multiple-repositories.html#Multiple-repositories" 
accesskey="p" rel="prev">Multiple repositories</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Creating-a-repository-1"></a>
+<h3 class="section">2.6 Creating a repository</h3>
+
+<a name="index-Repository_002c-setting-up"></a>
+<a name="index-Creating-a-repository"></a>
+<a name="index-Setting-up-a-repository"></a>
+
+<p>This section describes how to set up a <small>CVS</small> repository for any
+sort of access method.  After completing the setup described in this
+section, you should be able to access your <small>CVS</small> repository 
immediately
+via the local access method and several remote access methods.  For
+more information on setting up remote access to the repository you create
+in this section, please read the section on See <a 
href="Remote-repositories.html#Remote-repositories">Remote repositories</a>.
+</p>
+<p>To set up a <small>CVS</small> repository, first choose the
+machine and disk on which you want to store the
+revision history of the source files.  CPU and memory
+requirements are modest, so most machines should be
+adequate.  For details see <a 
href="Server-requirements.html#Server-requirements">Server requirements</a>.
+</p>
+<p>To estimate disk space
+requirements, if you are importing RCS files from
+another system, the size of those files is the
+approximate initial size of your repository, or if you
+are starting without any version history, a rule of
+thumb is to allow for the server approximately three
+times the size of the code to be under <small>CVS</small> for the
+repository (you will eventually outgrow this, but not
+for a while).  On the machines on which the developers
+will be working, you&rsquo;ll want disk space for
+approximately one working directory for each developer
+(either the entire tree or a portion of it, depending
+on what each developer uses).
+</p>
+<p>The repository should be accessible
+(directly or via a networked file system) from all
+machines which want to use <small>CVS</small> in server or local
+mode; the client machines need not have any access to
+it other than via the <small>CVS</small> protocol.  It is not
+possible to use <small>CVS</small> to read from a repository
+which one only has read access to; <small>CVS</small> needs to be
+able to create lock files (see <a 
href="Concurrency.html#Concurrency">Concurrency</a>).
+</p>
+<a name="index-init-_0028subcommand_0029"></a>
+<p>To create a repository, run the <code>cvs init</code>
+command.  It will set up an empty repository in the
+<small>CVS</small> root specified in the usual way
+(see <a href="Repository.html#Repository">Repository</a>).  For example,
+</p>
+<div class="example">
+<pre class="example">cvs -d /usr/local/cvsroot init
+</pre></div>
+
+<p><code>cvs init</code> is careful to never overwrite any
+existing files in the repository, so no harm is done if
+you run <code>cvs init</code> on an already set-up
+repository.
+</p>
+<p><code>cvs init</code> will enable history logging; if you
+don&rsquo;t want that, remove the history file after running
+<code>cvs init</code>.  See <a href="history-file.html#history-file">history 
file</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Backing-up.html#Backing-up" accesskey="n" rel="next">Backing 
up</a>, Previous: <a href="Multiple-repositories.html#Multiple-repositories" 
accesskey="p" rel="prev">Multiple repositories</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Credits.html
===================================================================
RCS file: html_node/Credits.html
diff -N html_node/Credits.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Credits.html      28 Dec 2015 15:57:53 -0000      1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Credits</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Credits">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Credits">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="BUGS.html#BUGS" rel="next" title="BUGS">
+<link href="Other-problems.html#Other-problems" rel="prev" title="Other 
problems">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Credits"></a>
+<div class="header">
+<p>
+Next: <a href="BUGS.html#BUGS" accesskey="n" rel="next">BUGS</a>, Previous: <a 
href="Troubleshooting.html#Troubleshooting" accesskey="p" 
rel="prev">Troubleshooting</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Credits-1"></a>
+<h2 class="appendix">Appendix G Credits</h2>
+
+<a name="index-Contributors-_0028manual_0029"></a>
+<a name="index-Credits-_0028manual_0029"></a>
+<p>Roland Pesch, then of Cygnus Support &lt;<tt>address@hidden</tt>&gt;
+wrote the manual pages which were distributed with
+<small>CVS</small> 1.3.  Much of their text was copied into this
+manual.  He also read an early draft
+of this manual and contributed many ideas and
+corrections.
+</p>
+<p>The mailing-list <code>info-cvs</code> is sometimes
+informative. I have included information from postings
+made by the following persons:
+David G. Grubbs &lt;<tt>address@hidden</tt>&gt;.
+</p>
+<p>Some text has been extracted from the man pages for
+<small>RCS</small>.
+</p>
+<p>The <small>CVS</small> <small>FAQ</small> by David G. Grubbs has provided
+useful material.  The <small>FAQ</small> is no longer maintained,
+however, and this manual is about the closest thing there
+is to a successor (with respect to documenting how to
+use <small>CVS</small>, at least).
+</p>
+<p>In addition, the following persons have helped by
+telling me about mistakes I&rsquo;ve made:
+</p>
+<div class="display">
+<pre class="display">Roxanne Brunskill &lt;<tt>address@hidden</tt>&gt;,
+Kathy Dyer &lt;<tt>address@hidden</tt>&gt;,
+Karl Pingle &lt;<tt>address@hidden</tt>&gt;,
+Thomas A Peterson &lt;<tt>address@hidden</tt>&gt;,
+Inge Wallin &lt;<tt>address@hidden</tt>&gt;,
+Dirk Koschuetzki &lt;<tt>address@hidden</tt>&gt;
+and Michael Brown &lt;<tt>address@hidden</tt>&gt;.
+</pre></div>
+
+<p>The list of contributors here is not comprehensive; for a more
+complete list of who has contributed to this manual see
+the file <samp>doc/ChangeLog</samp> in the <small>CVS</small> source
+distribution.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Defining-the-module.html
===================================================================
RCS file: html_node/Defining-the-module.html
diff -N html_node/Defining-the-module.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Defining-the-module.html  28 Dec 2015 15:57:53 -0000      1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Defining the 
module</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Defining the module">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Defining the module">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Starting-a-new-project.html#Starting-a-new-project" rel="up" 
title="Starting a new project">
+<link href="Revisions.html#Revisions" rel="next" title="Revisions">
+<link href="From-scratch.html#From-scratch" rel="prev" title="From scratch">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Defining-the-module"></a>
+<div class="header">
+<p>
+Previous: <a href="Setting-up-the-files.html#Setting-up-the-files" 
accesskey="p" rel="prev">Setting up the files</a>, Up: <a 
href="Starting-a-new-project.html#Starting-a-new-project" accesskey="u" 
rel="up">Starting a new project</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Defining-the-module-1"></a>
+<h3 class="section">3.2 Defining the module</h3>
+<a name="index-Defining-a-module"></a>
+<a name="index-Editing-the-modules-file"></a>
+<a name="index-Module_002c-defining"></a>
+<a name="index-Modules-file_002c-changing"></a>
+
+<p>The next step is to define the module in the
+<samp>modules</samp> file.  This is not strictly necessary,
+but modules can be convenient in grouping together
+related files and directories.
+</p>
+<p>In simple cases these steps are sufficient to define a module.
+</p>
+<ol>
+<li> Get a working copy of the modules file.
+
+<div class="example">
+<pre class="example">$ cvs checkout CVSROOT/modules
+$ cd CVSROOT
+</pre></div>
+
+</li><li> Edit the file and insert a line that defines the module.  See <a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a>, for an introduction.  See <a 
href="modules.html#modules">modules</a>, for a full
+description of the modules file.  You can use the
+following line to define the module &lsquo;<samp>tc</samp>&rsquo;:
+
+<div class="example">
+<pre class="example">tc   yoyodyne/tc
+</pre></div>
+
+</li><li> Commit your changes to the modules file.
+
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Added the tc module.&quot; modules
+</pre></div>
+
+</li><li> Release the modules module.
+
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs release -d CVSROOT
+</pre></div>
+</li></ol>
+
+
+
+
+</body>
+</html>

Index: html_node/Editing-files.html
===================================================================
RCS file: html_node/Editing-files.html
diff -N html_node/Editing-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Editing-files.html        28 Dec 2015 15:57:53 -0000      1.1
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Editing files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Editing files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Editing files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Watches.html#Watches" rel="up" title="Watches">
+<link href="Watch-information.html#Watch-information" rel="next" title="Watch 
information">
+<link href="Getting-Notified.html#Getting-Notified" rel="prev" title="Getting 
Notified">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Editing-files"></a>
+<div class="header">
+<p>
+Next: <a href="Watch-information.html#Watch-information" accesskey="n" 
rel="next">Watch information</a>, Previous: <a 
href="Getting-Notified.html#Getting-Notified" accesskey="p" rel="prev">Getting 
Notified</a>, Up: <a href="Watches.html#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-to-edit-a-file-which-is-being-watched"></a>
+<h4 class="subsection">10.6.3 How to edit a file which is being watched</h4>
+
+<a name="index-Checkout_002c-as-term-for-getting-ready-to-edit"></a>
+<p>Since a file which is being watched is checked out
+read-only, you cannot simply edit it.  To make it
+read-write, and inform others that you are planning to
+edit it, use the <code>cvs edit</code> command.  Some systems
+call this a <em>checkout</em>, but <small>CVS</small> uses that term
+for obtaining a copy of the sources (see <a 
href="Getting-the-source.html#Getting-the-source">Getting the source</a>), an 
operation which those systems call a
+<em>get</em> or a <em>fetch</em>.
+</p>
+<a name="index-edit-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-edit"></a>Command: <strong>cvs edit</strong> 
<em>[<code>-lR</code>] [<code>-a</code> <var>action</var>]&hellip; 
[<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Prepare to edit the working files <var>files</var>.  <small>CVS</small> 
makes the
+<var>files</var> read-write, and notifies users who have requested
+<code>edit</code> notification for any of <var>files</var>.
+</p>
+<p>The <code>cvs edit</code> command accepts the same options as the
+<code>cvs watch add</code> command, and establishes a temporary watch for the
+user on <var>files</var>; <small>CVS</small> will remove the watch when 
<var>files</var> are
+<code>unedit</code>ed or <code>commit</code>ted.  If the user does not wish to
+receive notifications, she should specify <code>-a none</code>.
+</p>
+<p>The <var>files</var> and the options are processed as for the <code>cvs
+watch</code> commands.
+</p>
+
+</dd></dl>
+
+<p>Normally when you are done with a set of changes, you
+use the <code>cvs commit</code> command, which checks in your
+changes and returns the watched files to their usual
+read-only state.  But if you instead decide to abandon
+your changes, or not to make any changes, you can use
+the <code>cvs unedit</code> command.
+</p>
+<a name="index-unedit-_0028subcommand_0029"></a>
+<a name="index-Abandoning-work"></a>
+<a name="index-Reverting-to-repository-version"></a>
+<dl>
+<dt><a name="index-cvs-unedit"></a>Command: <strong>cvs unedit</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Abandon work on the working files <var>files</var>, and revert them to the
+repository versions on which they are based.  <small>CVS</small> makes those
+<var>files</var> read-only for which users have requested notification using
+<code>cvs watch on</code>.  <small>CVS</small> notifies users who have 
requested <code>unedit</code>
+notification for any of <var>files</var>.
+</p>
+<p>The <var>files</var> and options are processed as for the
+<code>cvs watch</code> commands.
+</p>
+<p>If watches are not in use, the <code>unedit</code> command
+probably does not work, and the way to revert to the
+repository version is with the command <code>cvs update -C file</code>
+(see <a href="update.html#update">update</a>).
+The meaning is
+not precisely the same; the latter may also
+bring in some changes which have been made in the
+repository since the last time you updated.
+</p></dd></dl>
+
+<p>When using client/server <small>CVS</small>, you can use the
+<code>cvs edit</code> and <code>cvs unedit</code> commands even if
+<small>CVS</small> is unable to successfully communicate with the
+server; the notifications will be sent upon the next
+successful <small>CVS</small> command.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Watch-information.html#Watch-information" accesskey="n" 
rel="next">Watch information</a>, Previous: <a 
href="Getting-Notified.html#Getting-Notified" accesskey="p" rel="prev">Getting 
Notified</a>, Up: <a href="Watches.html#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Environment-variables.html
===================================================================
RCS file: html_node/Environment-variables.html
diff -N html_node/Environment-variables.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Environment-variables.html        28 Dec 2015 15:57:53 -0000      
1.1
@@ -0,0 +1,262 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Environment 
variables</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Environment variables">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Environment variables">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Compatibility.html#Compatibility" rel="next" title="Compatibility">
+<link href="config.html#config" rel="prev" title="config">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Environment-variables"></a>
+<div class="header">
+<p>
+Next: <a href="Compatibility.html#Compatibility" accesskey="n" 
rel="next">Compatibility</a>, Previous: <a 
href="Administrative-files.html#Administrative-files" accesskey="p" 
rel="prev">Administrative files</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="All-environment-variables-which-affect-CVS"></a>
+<h2 class="appendix">Appendix D All environment variables which affect CVS</h2>
+<a name="index-Environment-variables"></a>
+<a name="index-Reference-manual-for-variables"></a>
+
+<p>This is a complete list of all environment variables
+that affect <small>CVS</small>.
+</p>
+<dl compact="compact">
+<dd><a name="index-CVSIGNORE_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVSIGNORE</code></dt>
+<dd><p>A whitespace-separated list of file name patterns that
+<small>CVS</small> should ignore. See <a 
href="cvsignore.html#cvsignore">cvsignore</a>.
+</p>
+<a name="index-CVSWRAPPERS_002c-environment-variable-1"></a>
+</dd>
+<dt><code>$CVSWRAPPERS</code></dt>
+<dd><p>A whitespace-separated list of file name patterns that
+<small>CVS</small> should treat as wrappers. See <a 
href="Wrappers.html#Wrappers">Wrappers</a>.
+</p>
+<a name="index-CVSREAD_002c-environment-variable"></a>
+<a name="index-Read_002donly-files_002c-and-CVSREAD"></a>
+</dd>
+<dt><code>$CVSREAD</code></dt>
+<dd><p>If this is set, <code>checkout</code> and <code>update</code> will
+try hard to make the files in your working directory
+read-only.  When this is not set, the default behavior
+is to permit modification of your working files.
+</p>
+</dd>
+<dt><code>$CVSUMASK</code></dt>
+<dd><p>Controls permissions of files in the repository.  See
+<a href="File-permissions.html#File-permissions">File permissions</a>.
+</p>
+</dd>
+<dt><code>$CVSROOT</code></dt>
+<dd><p>Should contain the full pathname to the root of the <small>CVS</small>
+source repository (where the <small>RCS</small> files are
+kept).  This information must be available to <small>CVS</small> for
+most commands to execute; if <code>$CVSROOT</code> is not set,
+or if you wish to override it for one invocation, you
+can supply it on the command line: &lsquo;<samp>cvs -d cvsroot
+cvs_command&hellip;</samp>&rsquo; Once you have checked out a working
+directory, <small>CVS</small> stores the appropriate root (in
+the file <samp>CVS/Root</samp>), so normally you only need to
+worry about this when initially checking out a working
+directory.
+</p>
+</dd>
+<dt><code>$CVSEDITOR</code></dt>
+<dd><a name="index-CVSEDITOR_002c-environment-variable-1"></a>
+</dd>
+<dt><code>$EDITOR</code></dt>
+<dd><a name="index-EDITOR_002c-environment-variable-1"></a>
+</dd>
+<dt><code>$VISUAL</code></dt>
+<dd><a name="index-VISUAL_002c-environment-variable-1"></a>
+<p>Specifies the program to use for recording log messages
+during commit.  <code>$CVSEDITOR</code> overrides
+<code>$EDITOR</code>, which overrides <code>$VISUAL</code>.
+See <a href="Committing-your-changes.html#Committing-your-changes">Committing 
your changes</a> for more or
+<a href="Global-options.html#Global-options">Global options</a> for 
alternative ways of specifying a
+log editor.
+</p>
+<a name="index-PATH_002c-environment-variable"></a>
+</dd>
+<dt><code>$PATH</code></dt>
+<dd><p>If <code>$RCSBIN</code> is not set, and no path is compiled
+into <small>CVS</small>, it will use <code>$PATH</code> to try to find all
+programs it uses.
+</p>
+<a name="index-HOME_002c-environment-variable"></a>
+</dd>
+<dt><code>$HOME</code></dt>
+<dd><a name="index-HOMEPATH_002c-environment-variable"></a>
+</dd>
+<dt><code>$HOMEPATH</code></dt>
+<dd><a name="index-HOMEDRIVE_002c-environment-variable"></a>
+</dd>
+<dt><code>$HOMEDRIVE</code></dt>
+<dd><p>Used to locate the directory where the <samp>.cvsrc</samp>
+file, and other such files, are searched.  On Unix, <small>CVS</small>
+just checks for <code>HOME</code>.  On Windows NT, the system will
+set <code>HOMEDRIVE</code>, for example to &lsquo;<samp>d:</samp>&rsquo; and 
<code>HOMEPATH</code>,
+for example to <samp>\joe</samp>.  On Windows 95, you&rsquo;ll
+probably need to set <code>HOMEDRIVE</code> and <code>HOMEPATH</code> yourself.
+</p>
+<a name="index-CVS_005fRSH_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_RSH</code></dt>
+<dd><p>Specifies the external program which <small>CVS</small> connects with,
+when <code>:ext:</code> access method is specified.
+see <a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a>.
+</p>
+<a name="index-CVS_005fSSH_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_SSH</code></dt>
+<dd><p>Specifies the external program which <small>CVS</small> connects with,
+when <code>:extssh:</code> access method is specified.
+see <a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a>.
+</p>
+</dd>
+<dt><code>$CVS_SERVER</code></dt>
+<dd><p>Used in client-server mode when accessing a remote
+repository using <small>RSH</small>.  It specifies the name of
+the program to start on the server side (and any
+necessary arguments) when accessing a remote repository
+using the <code>:ext:</code>, <code>:fork:</code>, or <code>:server:</code> 
access methods.
+The default value for <code>:ext:</code> and <code>:server:</code> is 
<code>cvs</code>;
+the default value for <code>:fork:</code> is the name used to run the client.
+see <a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via rsh</a>
+</p>
+</dd>
+<dt><code>$CVS_PASSFILE</code></dt>
+<dd><p>Used in client-server mode when accessing the <code>cvs
+login server</code>.  Default value is <samp>$HOME/.cvspass</samp>.
+see <a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a>
+</p>
+</dd>
+<dt><code>$CVS_CLIENT_PORT</code></dt>
+<dd><p>Used in client-server mode to set the port to use when accessing the 
server
+via Kerberos, GSSAPI, or <small>CVS</small>&rsquo;s password authentication 
protocol
+if the port is not specified in the CVSROOT.
+see <a href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a>
+</p>
+<a name="index-CVS_005fRCMD_005fPORT_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_RCMD_PORT</code></dt>
+<dd><p>Used in client-server mode.  If set, specifies the port
+number to be used when accessing the <small>RCMD</small> demon on
+the server side. (Currently not used for Unix clients).
+</p>
+<a name="index-CVS_005fCLIENT_005fLOG_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_CLIENT_LOG</code></dt>
+<dd><p>Used for debugging only in client-server
+mode.  If set, everything sent to the server is logged
+into <samp><code>$CVS_CLIENT_LOG</code>.in</samp> and everything
+sent from the server is logged into
+<samp><code>$CVS_CLIENT_LOG</code>.out</samp>.
+</p>
+<a name="index-CVS_005fSERVER_005fSLEEP_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_SERVER_SLEEP</code></dt>
+<dd><p>Used only for debugging the server side in
+client-server mode.  If set, delays the start of the
+server child process the specified amount of
+seconds so that you can attach to it with a debugger.
+</p>
+<a 
name="index-CVS_005fIGNORE_005fREMOTE_005fROOT_002c-environment-variable"></a>
+</dd>
+<dt><code>$CVS_IGNORE_REMOTE_ROOT</code></dt>
+<dd><p>For <small>CVS</small> 1.10 and older, setting this variable
+prevents <small>CVS</small> from overwriting the <samp>CVS/Root</samp>
+file when the &lsquo;<samp>-d</samp>&rsquo; global option is specified.
+Later versions of <small>CVS</small> do not rewrite
+<samp>CVS/Root</samp>, so <code>CVS_IGNORE_REMOTE_ROOT</code> has no
+effect.
+</p>
+<a name="index-COMSPEC_002c-environment-variable"></a>
+</dd>
+<dt><code>$COMSPEC</code></dt>
+<dd><p>Used under OS/2 only.  It specifies the name of the
+command interpreter and defaults to <small>CMD.EXE</small>.
+</p>
+<a name="index-TMPDIR_002c-environment-variable"></a>
+</dd>
+<dt><code>$TMPDIR</code></dt>
+<dd><a name="index-TMP_002c-environment-variable"></a>
+</dd>
+<dt><code>$TMP</code></dt>
+<dd><a name="index-TEMP_002c-environment-variable"></a>
+</dd>
+<dt><code>$TEMP</code></dt>
+<dd><a name="index-Temporary-files_002c-location-of"></a>
+<p>Directory in which temporary files are located.
+The <small>CVS</small> server uses
+<code>TMPDIR</code>.  See <a href="Global-options.html#Global-options">Global 
options</a>, for a
+description of how to specify this.
+Some parts of <small>CVS</small> will always use <samp>/tmp</samp> (via
+the <code>tmpnam</code> function provided by the system).
+</p>
+<p>On Windows NT, <code>TMP</code> is used (via the <code>_tempnam</code>
+function provided by the system).
+</p>
+<p>The <code>patch</code> program which is used by the <small>CVS</small>
+client uses <code>TMPDIR</code>, and if it is not set, uses
+<samp>/tmp</samp> (at least with GNU patch 2.1).  Note that
+if your server and client are both running <small>CVS</small>
+1.9.10 or later, <small>CVS</small> will not invoke an external
+<code>patch</code> program.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Compatibility.html#Compatibility" accesskey="n" 
rel="next">Compatibility</a>, Previous: <a 
href="Administrative-files.html#Administrative-files" accesskey="p" 
rel="prev">Administrative files</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Error-messages.html
===================================================================
RCS file: html_node/Error-messages.html
diff -N html_node/Error-messages.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Error-messages.html       28 Dec 2015 15:57:53 -0000      1.1
@@ -0,0 +1,508 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Error messages</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Error messages">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Error messages">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Troubleshooting.html#Troubleshooting" rel="up" 
title="Troubleshooting">
+<link href="Connection.html#Connection" rel="next" title="Connection">
+<link href="Troubleshooting.html#Troubleshooting" rel="prev" 
title="Troubleshooting">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Error-messages"></a>
+<div class="header">
+<p>
+Next: <a href="Connection.html#Connection" accesskey="n" 
rel="next">Connection</a>, Up: <a href="Troubleshooting.html#Troubleshooting" 
accesskey="u" rel="up">Troubleshooting</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Partial-list-of-error-messages"></a>
+<h3 class="appendixsec">F.1 Partial list of error messages</h3>
+
+<p>Here is a partial list of error messages that you may
+see from <small>CVS</small>.  It is not a complete 
list&mdash;<small>CVS</small>
+is capable of printing many, many error messages, often
+with parts of them supplied by the operating system,
+but the intention is to list the common and/or
+potentially confusing error messages.
+</p>
+<p>The messages are alphabetical, but introductory text
+such as &lsquo;<samp>cvs update: </samp>&rsquo; is not considered in
+ordering them.
+</p>
+<p>In some cases the list includes messages printed by old
+versions of <small>CVS</small> (partly because users may not be
+sure which version of <small>CVS</small> they are using at any
+particular moment).
+</p>
+<dl compact="compact">
+<dt><code><var>file</var>:<var>line</var>: Assertion '<var>text</var>' 
failed</code></dt>
+<dd><p>The exact format of this message may vary depending on
+your system.  It indicates a bug in <small>CVS</small>, which can
+be handled as described in <a href="BUGS.html#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>cvs <var>command</var>: authorization failed: server <var>host</var> 
rejected access</code></dt>
+<dd><p>This is a generic response when trying to connect to a
+pserver server which chooses not to provide a
+specific reason for denying authorization.  Check that
+the username and password specified are correct and
+that the <code>CVSROOT</code> specified is allowed by 
&lsquo;<samp>--allow-root</samp>&rsquo;
+in <samp>inetd.conf</samp>.  See <a 
href="Password-authenticated.html#Password-authenticated">Password 
authenticated</a>.
+</p>
+</dd>
+<dt><code>cvs <var>command</var>: conflict: removed <var>file</var> was 
modified by second party</code></dt>
+<dd><p>This message indicates that you removed a file, and
+someone else modified it.  To resolve the conflict,
+first run &lsquo;<samp>cvs add <var>file</var></samp>&rsquo;.  If desired, look
+at the other party&rsquo;s modification to decide whether you
+still want to remove it.  If you don&rsquo;t want to remove
+it, stop here.  If you do want to remove it, proceed
+with &lsquo;<samp>cvs remove <var>file</var></samp>&rsquo; and commit your
+removal.
+</p>
+</dd>
+<dt><code>cannot change permissions on temporary directory</code></dt>
+<dd><div class="example">
+<pre class="example">Operation not permitted
+</pre></div>
+<p>This message has been happening in a non-reproducible,
+occasional way when we run the client/server testsuite,
+both on Red Hat Linux 3.0.3 and 4.1.  We haven&rsquo;t been
+able to figure out what causes it, nor is it known
+whether it is specific to Linux (or even to this
+particular machine!).  If the problem does occur on
+other unices, &lsquo;<samp>Operation not permitted</samp>&rsquo; would be
+likely to read &lsquo;<samp>Not owner</samp>&rsquo; or whatever the system
+in question uses for the unix <code>EPERM</code> error.  If
+you have any information to add, please let us know as
+described in <a href="BUGS.html#BUGS">BUGS</a>.  If you experience this error
+while using <small>CVS</small>, retrying the operation which
+produced it should work fine.
+</p>
+</dd>
+<dt><code>cvs [server aborted]: Cannot check out files into the repository 
itself</code></dt>
+<dd><p>The obvious cause for this message (especially for
+non-client/server <small>CVS</small>) is that the <small>CVS</small> root
+is, for example, <samp>/usr/local/cvsroot</samp> and you try
+to check out files when you are in a subdirectory, such
+as <samp>/usr/local/cvsroot/test</samp>.  However, there is a
+more subtle cause, which is that the temporary
+directory on the server is set to a subdirectory of the
+root (which is also not allowed).  If this is the
+problem, set the temporary directory to somewhere else,
+for example <samp>/var/tmp</samp>; see <code>TMPDIR</code> in
+<a href="Environment-variables.html#Environment-variables">Environment 
variables</a>, for how to set the
+temporary directory.
+</p>
+</dd>
+<dt><code>cannot commit files as 'root'</code></dt>
+<dd><p>See &lsquo;<samp>'root' is not allowed to commit files</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>cannot open CVS/Entries for reading: No such file or 
directory</code></dt>
+<dd><p>This generally indicates a <small>CVS</small> internal error, and
+can be handled as with other <small>CVS</small> bugs
+(see <a href="BUGS.html#BUGS">BUGS</a>).  Usually there is a 
workaround&mdash;the
+exact nature of which would depend on the situation but
+which hopefully could be figured out.
+</p>
+</dd>
+<dt><code>cvs [init aborted]: cannot open CVS/Root: No such file or 
directory</code></dt>
+<dd><p>This message is harmless.  Provided it is not
+accompanied by other errors, the operation has
+completed successfully.  This message should not occur
+with current versions of <small>CVS</small>, but it is documented
+here for the benefit of <small>CVS</small> 1.9 and older.
+</p>
+</dd>
+<dt><code>cvs server: cannot open /root/.cvsignore: Permission 
denied</code></dt>
+<dt><code>cvs [server aborted]: can't chdir(/root): Permission 
denied</code></dt>
+<dd><p>See <a href="Connection.html#Connection">Connection</a>.
+</p>
+</dd>
+<dt><code>cvs [checkout aborted]: cannot rename file <var>file</var> to 
CVS/,,<var>file</var>: Invalid argument</code></dt>
+<dd><p>This message has been reported as intermittently
+happening with <small>CVS</small> 1.9 on Solaris 2.5.  The cause is
+unknown; if you know more about what causes it, let us
+know as described in <a href="BUGS.html#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>cvs [<var>command</var> aborted]: cannot start server via 
rcmd</code></dt>
+<dd><p>This, unfortunately, is a rather nonspecific error
+message which <small>CVS</small> 1.9 will print if you are
+running the <small>CVS</small> client and it is having trouble
+connecting to the server.  Current versions of <small>CVS</small>
+should print a much more specific error message.  If
+you get this message when you didn&rsquo;t mean to run the
+client at all, you probably forgot to specify
+<code>:local:</code>, as described in <a 
href="Repository.html#Repository">Repository</a>.
+</p>
+</dd>
+<dt><code>ci: <var>file</var>,v: bad diff output line: Binary files - and 
/tmp/T2a22651 differ</code></dt>
+<dd><p><small>CVS</small> 1.9 and older will print this message
+when trying to check in a binary file if
+<small>RCS</small> is not correctly installed.  Re-read the
+instructions that came with your <small>RCS</small> distribution
+and the <small>INSTALL</small> file in the <small>CVS</small>
+distribution.  Alternately, upgrade to a current
+version of <small>CVS</small>, which checks in files itself
+rather than via <small>RCS</small>.
+</p>
+</dd>
+<dt><code>cvs checkout: could not check out <var>file</var></code></dt>
+<dd><p>With <small>CVS</small> 1.9, this can mean that the <code>co</code> 
program
+(part of <small>RCS</small>) returned a failure.  It should be
+preceded by another error message, however it has been
+observed without another error message and the cause is
+not well-understood.  With the current version of <small>CVS</small>,
+which does not run <code>co</code>, if this message occurs
+without another error message, it is definitely a <small>CVS</small>
+bug (see <a href="BUGS.html#BUGS">BUGS</a>).
+</p>
+</dd>
+<dt><code>cvs [login aborted]: could not find out home directory</code></dt>
+<dd><p>This means that you need to set the environment
+variables that <small>CVS</small> uses to locate your home directory.
+See the discussion of <code>HOME</code>, <code>HOMEDRIVE</code>, and 
<code>HOMEPATH</code> in
+<a href="Environment-variables.html#Environment-variables">Environment 
variables</a>.
+</p>
+</dd>
+<dt><code>cvs update: could not merge revision <var>rev</var> of 
<var>file</var>: No such file or directory</code></dt>
+<dd><p><small>CVS</small> 1.9 and older will print this message if there was
+a problem finding the <code>rcsmerge</code> program.  Make
+sure that it is in your <code>PATH</code>, or upgrade to a
+current version of <small>CVS</small>, which does not require
+an external <code>rcsmerge</code> program.
+</p>
+</dd>
+<dt><code>cvs [update aborted]: could not patch <var>file</var>: No such file 
or directory</code></dt>
+<dd><p>This means that there was a problem finding the
+<code>patch</code> program.  Make sure that it is in your
+<code>PATH</code>.  Note that despite appearances the message
+is <em>not</em> referring to whether it can find <var>file</var>.
+If both the client and the server are running a current
+version of <small>CVS</small>, then there is no need for an
+external patch program and you should not see this
+message.  But if either client or server is running
+<small>CVS</small> 1.9, then you need <code>patch</code>.
+</p>
+</dd>
+<dt><code>cvs update: could not patch <var>file</var>; will refetch</code></dt>
+<dd><p>This means that for whatever reason the client was
+unable to apply a patch that the server sent.  The
+message is nothing to be concerned about, because
+inability to apply the patch only slows things down and
+has no effect on what <small>CVS</small> does.
+</p>
+</dd>
+<dt><code>dying gasps from <var>server</var> unexpected</code></dt>
+<dd><p>There is a known bug in the server for <small>CVS</small> 1.9.18
+and older which can cause this.  For me, this was
+reproducible if I used the &lsquo;<samp>-t</samp>&rsquo; global option.  It
+was fixed by Andy Piper&rsquo;s 14 Nov 1997 change to
+src/filesubr.c, if anyone is curious.
+If you see the message,
+you probably can just retry the operation which failed,
+or if you have discovered information concerning its
+cause, please let us know as described in <a href="BUGS.html#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>end of file from server (consult above messages if any)</code></dt>
+<dd><p>The most common cause for this message is if you are
+using an external <code>rsh</code> or <code>ssh</code> program and it exited 
with
+an error.  In this case the <code>rsh</code> program should
+have printed a message, which will appear before the
+above message.  For more information on setting up a
+<small>CVS</small> client and server, see <a 
href="Remote-repositories.html#Remote-repositories">Remote repositories</a>.
+</p>
+</dd>
+<dt><code>cvs [update aborted]: EOF in key in RCS file 
<var>file</var>,v</code></dt>
+<dt><code>cvs [checkout aborted]: EOF while looking for end of string in RCS 
file <var>file</var>,v</code></dt>
+<dd><p>This means that there is a syntax error in the given
+<small>RCS</small> file.  Note that this might be true even if 
<small>RCS</small> can
+read the file OK; <small>CVS</small> does more error checking of
+errors in the RCS file.  That is why you may see this
+message when upgrading from <small>CVS</small> 1.9 to <small>CVS</small>
+1.10.  The likely cause for the original corruption is
+hardware, the operating system, or the like.  Of
+course, if you find a case in which <small>CVS</small> seems to
+corrupting the file, by all means report it,
+(see <a href="BUGS.html#BUGS">BUGS</a>).
+There are quite a few variations of this error message,
+depending on exactly where in the <small>RCS</small> file <small>CVS</small>
+finds the syntax error.
+</p>
+<a name="index-mkmodules"></a>
+</dd>
+<dt><code>cvs commit: Executing 'mkmodules'</code></dt>
+<dd><p>This means that your repository is set up for a version
+of <small>CVS</small> prior to <small>CVS</small> 1.8.  When using 
<small>CVS</small>
+1.8 or later, the above message will be preceded by
+</p>
+<div class="example">
+<pre class="example">cvs commit: Rebuilding administrative file database
+</pre></div>
+
+<p>If you see both messages, the database is being rebuilt
+twice, which is unnecessary but harmless.  If you wish
+to avoid the duplication, and you have no versions of
+<small>CVS</small> 1.7 or earlier in use, remove <code>-i mkmodules</code>
+every place it appears in your <code>modules</code>
+file.  For more information on the <code>modules</code> file,
+see <a href="modules.html#modules">modules</a>.
+</p>
+</dd>
+<dt><code>missing author</code></dt>
+<dd><p>Typically this can happen if you created an RCS file
+with your username set to empty.  <small>CVS</small> will, bogusly,
+create an illegal RCS file with no value for the author
+field.  The solution is to make sure your username is
+set to a non-empty value and re-create the RCS file.
+</p>
+</dd>
+<dt><code>cvs [checkout aborted]: no such tag <var>tag</var></code></dt>
+<dd><p>This message means that <small>CVS</small> isn&rsquo;t familiar with
+the tag <var>tag</var>.  Usually this means that you have
+mistyped a tag name; however there are (relatively
+obscure) cases in which <small>CVS</small> will require you to
+try a few other <small>CVS</small> commands involving that tag,
+before you find one which will cause <small>CVS</small> to update
+<a name="index-CVSROOT_002fval_002dtags-file_002c-forcing-tags-into"></a>
+<a name="index-val_002dtags-file_002c-forcing-tags-into"></a>
+the <samp>val-tags</samp> file; see discussion of val-tags in
+<a href="File-permissions.html#File-permissions">File permissions</a>.  You 
only need to worry about
+this once for a given tag; when a tag is listed in
+<samp>val-tags</samp>, it stays there.  Note that using
+&lsquo;<samp>-f</samp>&rsquo; to not require tag matches does not override
+this check; see <a href="Common-options.html#Common-options">Common 
options</a>.
+</p>
+</dd>
+<dt><code>cvs [<var>command</var> aborted]: out of memory</code></dt>
+<dd><p>There is insufficient (virtual) memory available to continue.
+In client/server mode, the problem is almost certainly on the server
+rather than the client;
+see <a href="Server-requirements.html#Server-requirements">Server 
requirements</a> for memory estimates.
+Many systems have limits on the amount of virtual memory that a
+single process can use, so a process can run out of virtual memory
+long before the system itself has run out.
+The method of increasing the per-process limits varies depending
+on the operating system.
+</p>
+</dd>
+<dt><code>*PANIC* administration files missing</code></dt>
+<dd><p>This typically means that there is a directory named
+<small>CVS</small> but it does not contain the administrative files
+which <small>CVS</small> puts in a CVS directory.  If the problem is
+that you created a CVS directory via some mechanism
+other than <small>CVS</small>, then the answer is simple, use a name
+other than <small>CVS</small>.  If not, it indicates a <small>CVS</small> bug
+(see <a href="BUGS.html#BUGS">BUGS</a>).
+</p>
+</dd>
+<dt><code>rcs error: Unknown option: -x,v/</code></dt>
+<dd><p>This message will be followed by a usage message for
+<small>RCS</small>.  It means that you have an old version of
+<small>RCS</small> (probably supplied with your operating
+system), as well as an old version of <small>CVS</small>.
+<small>CVS</small> 1.9.18 and earlier only work with <small>RCS</small> 
version 5 and
+later; current versions of <small>CVS</small> do not run <small>RCS</small> 
programs.
+</p>
+</dd>
+<dt><code>cvs [server aborted]: received broken pipe signal</code></dt>
+<dd><p>This message can be caused by a loginfo program that fails to
+read all of the log information from its standard input.
+If you find it happening in any other circumstances,
+please let us know as described in <a href="BUGS.html#BUGS">BUGS</a>.
+</p>
+</dd>
+<dt><code>'root' is not allowed to commit files</code></dt>
+<dd><p>When committing a permanent change, <small>CVS</small> makes a log 
entry of
+who committed the change.  If you are committing the change logged
+in as &quot;root&quot; (not under &quot;su&quot; or other root-priv giving 
program),
+<small>CVS</small> cannot determine who is actually making the change.
+As such, by default, <small>CVS</small> disallows changes to be committed by 
users
+logged in as &quot;root&quot;.  (You can disable this option by passing the
+<code>--enable-rootcommit</code> option to <samp>configure</samp> and 
recompiling <small>CVS</small>.
+On some systems this means editing the appropriate <samp>config.h</samp> file
+before building <small>CVS</small>.)
+</p>
+</dd>
+<dt><code>Terminated with fatal signal 11</code></dt>
+<dd><p>This message usually indicates that <small>CVS</small> (the server, if 
you&rsquo;re
+using client/server mode) has run out of (virtual) memory.
+Although <small>CVS</small> tries to catch the error and issue a more 
meaningful
+message, there are many circumstances where that is not possible.
+If you appear to have lots of memory available to the system,
+the problem is most likely that you&rsquo;re running into a system-wide
+limit on the amount of memory a single process can use or a
+similar process-specific limit.
+The mechanisms for displaying and setting such limits vary from
+system to system, so you&rsquo;ll have to consult an expert for your
+particular system if you don&rsquo;t know how to do that.
+</p>
+</dd>
+<dt><code>Too many arguments!</code></dt>
+<dd><p>This message is typically printed by the <samp>log.pl</samp>
+script which is in the <samp>contrib</samp> directory in the
+<small>CVS</small> source distribution.  In some versions of
+<small>CVS</small>, <samp>log.pl</samp> has been part of the default
+<small>CVS</small> installation.  The <samp>log.pl</samp> script gets
+called from the <samp>loginfo</samp> administrative file.
+Check that the arguments passed in <samp>loginfo</samp> match
+what your version of <samp>log.pl</samp> expects.  In
+particular, the <samp>log.pl</samp> from <small>CVS</small> 1.3 and
+older expects the log file as an argument whereas the
+<samp>log.pl</samp> from <small>CVS</small> 1.5 and newer expects the
+log file to be specified with a &lsquo;<samp>-f</samp>&rsquo; option.  Of
+course, if you don&rsquo;t need <samp>log.pl</samp> you can just
+comment it out of <samp>loginfo</samp>.
+</p>
+</dd>
+<dt><code>cvs [update aborted]: unexpected EOF reading 
<var>file</var>,v</code></dt>
+<dd><p>See &lsquo;<samp>EOF in key in RCS file</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>cvs [login aborted]: unrecognized auth response from 
<var>server</var></code></dt>
+<dd><p>This message typically means that the server is not set
+up properly.  For example, if <samp>inetd.conf</samp> points
+to a nonexistent cvs executable.  To debug it further,
+find the log file which inetd writes
+(<samp>/var/log/messages</samp> or whatever inetd uses on
+your system).  For details, see <a 
href="Connection.html#Connection">Connection</a>, and
+<a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>.
+</p>
+</dd>
+<dt><code>cvs commit: Up-to-date check failed for `<var>file</var>'</code></dt>
+<dd><p>This means that someone else has committed a change to
+that file since the last time that you did a <code>cvs
+update</code>.  So before proceeding with your <code>cvs
+commit</code> you need to <code>cvs update</code>.  <small>CVS</small> will 
merge
+the changes that you made and the changes that the
+other person made.  If it does not detect any conflicts
+it will report &lsquo;<samp>M <var>file</var></samp>&rsquo; and you are ready
+to <code>cvs commit</code>.  If it detects conflicts it will
+print a message saying so, will report &lsquo;<samp>C 
<var>file</var></samp>&rsquo;,
+and you need to manually resolve the
+conflict.  For more details on this process see
+<a href="Conflicts-example.html#Conflicts-example">Conflicts example</a>.
+</p>
+</dd>
+<dt><code>Usage:       diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 
file2 file3</code></dt>
+<dd><div class="example">
+<pre class="example">Only one of [exEX3] allowed
+</pre></div>
+<p>This indicates a problem with the installation of
+<code>diff3</code> and <code>rcsmerge</code>.  Specifically
+<code>rcsmerge</code> was compiled to look for GNU diff3, but
+it is finding unix diff3 instead.  The exact text of
+the message will vary depending on the system.  The
+simplest solution is to upgrade to a current version of
+<small>CVS</small>, which does not rely on external
+<code>rcsmerge</code> or <code>diff3</code> programs.
+</p>
+</dd>
+<dt><code>warning: unrecognized response `<var>text</var>' from cvs 
server</code></dt>
+<dd><p>If <var>text</var> contains a valid response (such as
+&lsquo;<samp>ok</samp>&rsquo;) followed by an extra carriage return
+character (on many systems this will cause the second
+part of the message to overwrite the first part), then
+it probably means that you are using the &lsquo;<samp>:ext:</samp>&rsquo;
+access method with a version of rsh, such as most
+non-unix rsh versions, which does not by default
+provide a transparent data stream.  In such cases you
+probably want to try &lsquo;<samp>:server:</samp>&rsquo; instead of
+&lsquo;<samp>:ext:</samp>&rsquo;.  If <var>text</var> is something else, this
+may signify a problem with your <small>CVS</small> server.
+Double-check your installation against the instructions
+for setting up the <small>CVS</small> server.
+</p>
+</dd>
+<dt><code>cvs commit: [<var>time</var>] waiting for <var>user</var>'s lock in 
<var>directory</var></code></dt>
+<dd><p>This is a normal message, not an error.  See
+<a href="Concurrency.html#Concurrency">Concurrency</a>, for more details.
+</p>
+</dd>
+<dt><code>cvs commit: warning: editor session failed</code></dt>
+<dd><a name="index-Exit-status_002c-of-editor"></a>
+<p>This means that the editor which <small>CVS</small> is using exits with a 
nonzero
+exit status.  Some versions of vi will do this even when there was not
+a problem editing the file.  If so, point the
+<code>CVSEDITOR</code> environment variable to a small script
+such as:
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+vi $*
+exit 0
+</pre></div>
+
+</dd>
+<dt><code>cvs update: warning: <var>file</var> was lost</code></dt>
+<dd><p>This means that the working copy of <var>file</var> has been deleted
+but it has not been removed from <small>CVS</small>.
+This is nothing to be concerned about,
+the update will just recreate the local file from the repository.
+(This is a convenient way to discard local changes to a file:
+just delete it and then run <code>cvs update</code>.)
+</p>
+</dd>
+<dt><code>cvs update: warning: <var>file</var> is not (any longer) 
pertinent</code></dt>
+<dd><p>This means that the working copy of <var>file</var> has been deleted,
+it has not been removed from <small>CVS</small> in the current working 
directory,
+but it has been removed from <small>CVS</small> in some other working 
directory.
+This is nothing to be concerned about,
+the update would have removed the local file anyway.
+</p>
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Connection.html#Connection" accesskey="n" 
rel="next">Connection</a>, Up: <a href="Troubleshooting.html#Troubleshooting" 
accesskey="u" rel="up">Troubleshooting</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Excluding-directories.html
===================================================================
RCS file: html_node/Excluding-directories.html
diff -N html_node/Excluding-directories.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Excluding-directories.html        28 Dec 2015 15:57:53 -0000      
1.1
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Excluding 
directories</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Excluding directories">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Excluding directories">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="modules.html#modules" rel="up" title="modules">
+<link href="Module-options.html#Module-options" rel="next" title="Module 
options">
+<link href="Ampersand-modules.html#Ampersand-modules" rel="prev" 
title="Ampersand modules">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Excluding-directories"></a>
+<div class="header">
+<p>
+Next: <a href="Module-options.html#Module-options" accesskey="n" 
rel="next">Module options</a>, Previous: <a 
href="Ampersand-modules.html#Ampersand-modules" accesskey="p" 
rel="prev">Ampersand modules</a>, Up: <a href="modules.html#modules" 
accesskey="u" rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Excluding-directories-1"></a>
+<h4 class="appendixsubsec">C.1.4 Excluding directories</h4>
+<a name="index-Excluding-directories_002c-in-modules-file"></a>
+<a name="index-_0021_002c-in-modules-file"></a>
+
+<p>An alias module may exclude particular directories from
+other modules by using an exclamation mark (&lsquo;<samp>!</samp>&rsquo;)
+before the name of each directory to be excluded.
+</p>
+<p>For example, if the modules file contains:
+</p>
+<div class="example">
+<pre class="example">exmodule -a !first-dir/sdir first-dir
+</pre></div>
+
+<p>then checking out the module &lsquo;<samp>exmodule</samp>&rsquo; will check
+out everything in &lsquo;<samp>first-dir</samp>&rsquo; except any files in
+the subdirectory &lsquo;<samp>first-dir/sdir</samp>&rsquo;.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Exit-status.html
===================================================================
RCS file: html_node/Exit-status.html
diff -N html_node/Exit-status.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Exit-status.html  28 Dec 2015 15:57:54 -0000      1.1
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Exit status</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Exit status">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Exit status">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc" rel="next" 
title="~/.cvsrc">
+<link href="Structure.html#Structure" rel="prev" title="Structure">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Exit-status"></a>
+<div class="header">
+<p>
+Next: <a href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc" 
accesskey="n" rel="next">~/.cvsrc</a>, Previous: <a 
href="Structure.html#Structure" accesskey="p" rel="prev">Structure</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="CVS_0027s-exit-status"></a>
+<h3 class="appendixsec">A.2 CVS&rsquo;s exit status</h3>
+<a name="index-Exit-status_002c-of-CVS"></a>
+
+<p><small>CVS</small> can indicate to the calling environment whether it
+succeeded or failed by setting its <em>exit status</em>.
+The exact way of testing the exit status will vary from
+one operating system to another.  For example in a unix
+shell script the &lsquo;<samp>$?</samp>&rsquo; variable will be 0 if the
+last command returned a successful exit status, or
+greater than 0 if the exit status indicated failure.
+</p>
+<p>If <small>CVS</small> is successful, it returns a successful status;
+if there is an error, it prints an error message and
+returns a failure status.  The one exception to this is
+the <code>cvs diff</code> command.  It will return a
+successful status if it found no differences, or a
+failure status if there were differences or if there
+was an error.  Because this behavior provides no good
+way to detect errors, in the future it is possible that
+<code>cvs diff</code> will be changed to behave like the
+other <small>CVS</small> commands.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/File-permissions.html
===================================================================
RCS file: html_node/File-permissions.html
diff -N html_node/File-permissions.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/File-permissions.html     28 Dec 2015 15:57:54 -0000      1.1
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: File permissions</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: File permissions">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
File permissions">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="Windows-permissions.html#Windows-permissions" rel="next" 
title="Windows permissions">
+<link href="Repository-files.html#Repository-files" rel="prev" 
title="Repository files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="File-permissions"></a>
+<div class="header">
+<p>
+Next: <a href="Windows-permissions.html#Windows-permissions" accesskey="n" 
rel="next">Windows permissions</a>, Previous: <a 
href="Repository-files.html#Repository-files" accesskey="p" 
rel="prev">Repository files</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="File-permissions-1"></a>
+<h4 class="subsection">2.2.2 File permissions</h4>
+<a name="index-Security_002c-file-permissions-in-repository"></a>
+<a name="index-File-permissions_002c-general"></a>
+<a name="index-Permissions_002c-general"></a>
+<a name="index-Group_002c-UNIX-file-permissions_002c-in-repository"></a>
+<a name="index-Read_002donly-files_002c-in-repository"></a>
+<p>All &lsquo;<samp>,v</samp>&rsquo; files are created read-only, and you
+should not change the permission of those files.  The
+directories inside the repository should be writable by
+the persons that have permission to modify the files in
+each directory.  This normally means that you must
+create a UNIX group (see group(5)) consisting of the
+persons that are to edit the files in a project, and
+set up the repository so that it is that group that
+owns the directory.
+(On some systems, you also need to set the set-group-ID-on-execution bit
+on the repository directories (see chmod(1)) so that newly-created files
+and directories get the group-ID of the parent directory rather than
+that of the current process.)
+</p>
+
+<p>This means that you can only control access to files on
+a per-directory basis.
+</p>
+<p>Note that users must also have write access to check
+out files, because <small>CVS</small> needs to create lock files
+(see <a href="Concurrency.html#Concurrency">Concurrency</a>).  You can use 
LockDir in CVSROOT/config
+to put the lock files somewhere other than in the repository
+if you want to allow read-only access to some directories
+(see <a href="config.html#config">config</a>).
+</p>
+<a 
name="index-CVSROOT_002fval_002dtags-file_002c-and-read_002donly-access-to-projects"></a>
+<a 
name="index-val_002dtags-file_002c-and-read_002donly-access-to-projects"></a>
+<p>Also note that users must have write access to the
+<samp>CVSROOT/val-tags</samp> file.  <small>CVS</small> uses it to keep
+track of what tags are valid tag names (it is sometimes
+updated when tags are used, as well as when they are
+created).
+</p>
+<p>Each <small>RCS</small> file will be owned by the user who last
+checked it in.  This has little significance; what
+really matters is who owns the directories.
+</p>
+<a name="index-CVSUMASK_002c-environment-variable"></a>
+<a name="index-Umask_002c-for-repository-files"></a>
+<p><small>CVS</small> tries to set up reasonable file permissions
+for new directories that are added inside the tree, but
+you must fix the permissions manually when a new
+directory should have different permissions than its
+parent directory.  If you set the <code>CVSUMASK</code>
+environment variable, that will control the file
+permissions which <small>CVS</small> uses in creating directories
+and/or files in the repository.  <code>CVSUMASK</code> does
+not affect the file permissions in the working
+directory; such files have the permissions which are
+typical for newly created files, except that sometimes
+<small>CVS</small> creates them read-only (see the sections on
+watches, <a href="Setting-a-watch.html#Setting-a-watch">Setting a watch</a>; 
-r, <a href="Global-options.html#Global-options">Global options</a>; or 
<code>CVSREAD</code>, <a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a>).
+</p>
+<p>Note that using the client/server <small>CVS</small>
+(see <a href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a>), there is no good way to
+set <code>CVSUMASK</code>; the setting on the client machine
+has no effect.  If you are connecting with <code>rsh</code>, you
+can set <code>CVSUMASK</code> in <samp>.bashrc</samp> or <samp>.cshrc</samp>, 
as
+described in the documentation for your operating
+system.  This behavior might change in future versions
+of <small>CVS</small>; do not rely on the setting of
+<code>CVSUMASK</code> on the client having no effect.
+</p>
+<p>Using pserver, you will generally need stricter
+permissions on the <small>CVSROOT</small> directory and
+directories above it in the tree; see <a 
href="Password-authentication-security.html#Password-authentication-security">Password
 authentication security</a>.
+</p>
+<a name="index-Setuid"></a>
+<a name="index-Setgid"></a>
+<a name="index-Security_002c-setuid"></a>
+<a name="index-Installed-images-_0028VMS_0029"></a>
+<p>Some operating systems have features which allow a
+particular program to run with the ability to perform
+operations which the caller of the program could not.
+For example, the set user ID (setuid) or set group ID
+(setgid) features of unix or the installed image
+feature of VMS.  <small>CVS</small> was not written to use such
+features and therefore attempting to install <small>CVS</small> in
+this fashion will provide protection against only
+accidental lapses; anyone who is trying to circumvent
+the measure will be able to do so, and depending on how
+you have set it up may gain access to more than just
+<small>CVS</small>.  You may wish to instead consider pserver.  It
+shares some of the same attributes, in terms of
+possibly providing a false sense of security or opening
+security holes wider than the ones you are trying to
+fix, so read the documentation on pserver security
+carefully if you are considering this option
+(<a 
href="Password-authentication-security.html#Password-authentication-security">Password
 authentication security</a>).
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Windows-permissions.html#Windows-permissions" accesskey="n" 
rel="next">Windows permissions</a>, Previous: <a 
href="Repository-files.html#Repository-files" accesskey="p" 
rel="prev">Repository files</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/File-status.html
===================================================================
RCS file: html_node/File-status.html
diff -N html_node/File-status.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/File-status.html  28 Dec 2015 15:57:54 -0000      1.1
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: File status</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: File status">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
File status">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Updating-a-file.html#Updating-a-file" rel="next" title="Updating a 
file">
+<link href="Multiple-developers.html#Multiple-developers" rel="prev" 
title="Multiple developers">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="File-status"></a>
+<div class="header">
+<p>
+Next: <a href="Updating-a-file.html#Updating-a-file" accesskey="n" 
rel="next">Updating a file</a>, Up: <a 
href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="File-status-1"></a>
+<h3 class="section">10.1 File status</h3>
+<a name="index-File-status"></a>
+<a name="index-Status-of-a-file"></a>
+
+<p>Based on what operations you have performed on a
+checked out file, and what operations others have
+performed to that file in the repository, one can
+classify a file in a number of states.  The states, as
+reported by the <code>status</code> command, are:
+</p>
+<dl compact="compact">
+<dd><a name="index-Up_002dto_002ddate"></a>
+</dd>
+<dt>Up-to-date</dt>
+<dd><p>The file is identical with the latest revision in the
+repository for the branch in use.
+</p>
+</dd>
+<dt>Locally Modified</dt>
+<dd><a name="index-Locally-Modified"></a>
+<p>You have edited the file, and not yet committed your changes.
+</p>
+</dd>
+<dt>Locally Added</dt>
+<dd><a name="index-Locally-Added"></a>
+<p>You have added the file with <code>add</code>, and not yet
+committed your changes.
+</p>
+</dd>
+<dt>Locally Removed</dt>
+<dd><a name="index-Locally-Removed"></a>
+<p>You have removed the file with <code>remove</code>, and not yet
+committed your changes.
+</p>
+</dd>
+<dt>Needs Checkout</dt>
+<dd><a name="index-Needs-Checkout"></a>
+<p>Someone else has committed a newer revision to the
+repository.  The name is slightly misleading; you will
+ordinarily use <code>update</code> rather than
+<code>checkout</code> to get that newer revision.
+</p>
+</dd>
+<dt>Needs Patch</dt>
+<dd><a name="index-Needs-Patch"></a>
+<p>Like Needs Checkout, but the <small>CVS</small> server will send
+a patch rather than the entire file.  Sending a patch or
+sending an entire file accomplishes the same thing.
+</p>
+</dd>
+<dt>Needs Merge</dt>
+<dd><a name="index-Needs-Merge"></a>
+<p>Someone else has committed a newer revision to the repository, and you
+have also made modifications to the file.
+</p>
+</dd>
+<dt>Unresolved Conflict</dt>
+<dd><a name="index-Unresolved-Conflict"></a>
+<p>A file with the same name as this new file has been added to the repository
+from a second workspace.  This file will need to be moved out of the way
+to allow an <code>update</code> to complete.
+</p>
+</dd>
+<dt>File had conflicts on merge</dt>
+<dd><a name="index-File-had-conflicts-on-merge"></a>
+<p>This is like Locally Modified, except that a previous
+<code>update</code> command gave a conflict.  If you have not
+already done so, you need to
+resolve the conflict as described in <a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a>.
+</p>
+</dd>
+<dt>Unknown</dt>
+<dd><a name="index-Unknown"></a>
+<p><small>CVS</small> doesn&rsquo;t know anything about this file.  For
+example, you have created a new file and have not run
+<code>add</code>.
+</p>
+</dd>
+</dl>
+
+<p>To help clarify the file status, <code>status</code> also
+reports the <code>Working revision</code> which is the
+revision that the file in the working directory derives
+from, and the <code>Repository revision</code> which is the
+latest revision in the repository for the branch in
+use.
+</p>
+<p>The options to <code>status</code> are listed in
+<a href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>.  For information on 
its <code>Sticky tag</code>
+and <code>Sticky date</code> output, see <a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a>.
+For information on its <code>Sticky options</code> output,
+see the &lsquo;<samp>-k</samp>&rsquo; option in <a 
href="update-options.html#update-options">update options</a>.
+</p>
+<p>You can think of the <code>status</code> and <code>update</code>
+commands as somewhat complementary.  You use
+<code>update</code> to bring your files up to date, and you
+can use <code>status</code> to give you some idea of what an
+<code>update</code> would do (of course, the state of the
+repository might change before you actually run
+<code>update</code>).  In fact, if you want a command to
+display file status in a more brief format than is
+displayed by the <code>status</code> command, you can invoke
+</p>
+<a name="index-update_002c-to-display-file-status"></a>
+<div class="example">
+<pre class="example">$ cvs -n -q update
+</pre></div>
+
+<p>The &lsquo;<samp>-n</samp>&rsquo; option means to not actually do the
+update, but merely to display statuses; the &lsquo;<samp>-q</samp>&rsquo;
+option avoids printing the name of each directory.  For
+more information on the <code>update</code> command, and
+these options, see <a href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Updating-a-file.html#Updating-a-file" accesskey="n" 
rel="next">Updating a file</a>, Up: <a 
href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/First-import.html
===================================================================
RCS file: html_node/First-import.html
diff -N html_node/First-import.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/First-import.html 28 Dec 2015 15:57:54 -0000      1.1
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: First import</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: First import">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
First import">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Tracking-sources.html#Tracking-sources" rel="up" title="Tracking 
sources">
+<link href="Update-imports.html#Update-imports" rel="next" title="Update 
imports">
+<link href="Tracking-sources.html#Tracking-sources" rel="prev" title="Tracking 
sources">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="First-import"></a>
+<div class="header">
+<p>
+Next: <a href="Update-imports.html#Update-imports" accesskey="n" 
rel="next">Update imports</a>, Up: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="u" rel="up">Tracking 
sources</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Importing-for-the-first-time"></a>
+<h3 class="section">13.1 Importing for the first time</h3>
+<a name="index-Importing-modules"></a>
+
+<p>Use the <code>import</code> command to check in the sources
+for the first time.  When you use the <code>import</code>
+command to track third-party sources, the <em>vendor
+tag</em> and <em>release tags</em> are useful.  The
+<em>vendor tag</em> is a symbolic name for the branch
+(which is always 1.1.1, unless you use the &lsquo;<samp>-b
+<var>branch</var></samp>&rsquo; flag&mdash;see <a 
href="Multiple-vendor-branches.html#Multiple-vendor-branches">Multiple vendor 
branches</a>.).  The
+<em>release tags</em> are symbolic names for a particular
+release, such as &lsquo;<samp>FSF_0_04</samp>&rsquo;.
+</p>
+<p>Note that <code>import</code> does <em>not</em> change the
+directory in which you invoke it.  In particular, it
+does not set up that directory as a <small>CVS</small> working
+directory; if you want to work with the sources import
+them first and then check them out into a different
+directory (see <a href="Getting-the-source.html#Getting-the-source">Getting 
the source</a>).
+</p>
+<a name="index-wdiff-_0028import-example_0029"></a>
+<p>Suppose you have the sources to a program called
+<code>wdiff</code> in a directory <samp>wdiff-0.04</samp>,
+and are going to make private modifications that you
+want to be able to use even when new releases are made
+in the future.  You start by importing the source to
+your repository:
+</p>
+<div class="example">
+<pre class="example">$ cd wdiff-0.04
+$ cvs import -m &quot;Import of FSF v. 0.04&quot; fsf/wdiff FSF_DIST WDIFF_0_04
+</pre></div>
+
+<p>The vendor tag is named &lsquo;<samp>FSF_DIST</samp>&rsquo; in the above
+example, and the only release tag assigned is
+&lsquo;<samp>WDIFF_0_04</samp>&rsquo;.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/From-files.html
===================================================================
RCS file: html_node/From-files.html
diff -N html_node/From-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/From-files.html   28 Dec 2015 15:57:54 -0000      1.1
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: From files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: From files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
From files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Setting-up-the-files.html#Setting-up-the-files" rel="up" 
title="Setting up the files">
+<link 
href="From-other-version-control-systems.html#From-other-version-control-systems"
 rel="next" title="From other version control systems">
+<link href="Setting-up-the-files.html#Setting-up-the-files" rel="prev" 
title="Setting up the files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="From-files"></a>
+<div class="header">
+<p>
+Next: <a 
href="From-other-version-control-systems.html#From-other-version-control-systems"
 accesskey="n" rel="next">From other version control systems</a>, Up: <a 
href="Setting-up-the-files.html#Setting-up-the-files" accesskey="u" 
rel="up">Setting up the files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Creating-a-directory-tree-from-a-number-of-files"></a>
+<h4 class="subsection">3.1.1 Creating a directory tree from a number of 
files</h4>
+<a name="index-Importing-files"></a>
+
+<p>When you begin using <small>CVS</small>, you will probably already have 
several
+projects that can be
+put under <small>CVS</small> control.  In these cases the easiest way is to 
use the
+<code>import</code> command.  An example is probably the easiest way to
+explain how to use it.  If the files you want to install in
+<small>CVS</small> reside in <samp><var>wdir</var></samp>, and you want them 
to appear in the
+repository as <samp>$CVSROOT/yoyodyne/<var>rdir</var></samp>, you can do this:
+</p>
+<div class="example">
+<pre class="example">$ cd <var>wdir</var>
+$ cvs import -m &quot;Imported sources&quot; yoyodyne/<var>rdir</var> yoyo 
start
+</pre></div>
+
+<p>Unless you supply a log message with the &lsquo;<samp>-m</samp>&rsquo;
+flag, <small>CVS</small> starts an editor and prompts for a
+message.  The string &lsquo;<samp>yoyo</samp>&rsquo; is a <em>vendor tag</em>,
+and &lsquo;<samp>start</samp>&rsquo; is a <em>release tag</em>.  They may fill
+no purpose in this context, but since <small>CVS</small> requires
+them they must be present.  See <a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a>, for
+more information about them.
+</p>
+<p>You can now verify that it worked, and remove your
+original source directory.
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs checkout yoyodyne/<var>rdir</var>       # <span 
class="roman">Explanation below</span>
+$ diff -r <var>wdir</var> yoyodyne/<var>rdir</var>
+$ rm -r <var>wdir</var>
+</pre></div>
+
+<p>Erasing the original sources is a good idea, to make sure that you do
+not accidentally edit them in <var>wdir</var>, bypassing <small>CVS</small>.
+Of course, it would be wise to make sure that you have
+a backup of the sources before you remove them.
+</p>
+<p>The <code>checkout</code> command can either take a module
+name as argument (as it has done in all previous
+examples) or a path name relative to <code>$CVSROOT</code>,
+as it did in the example above.
+</p>
+<p>It is a good idea to check that the permissions
+<small>CVS</small> sets on the directories inside <code>$CVSROOT</code>
+are reasonable, and that they belong to the proper
+groups.  See <a href="File-permissions.html#File-permissions">File 
permissions</a>.
+</p>
+<p>If some of the files you want to import are binary, you
+may want to use the wrappers features to specify which
+files are binary and which are not.  See <a 
href="Wrappers.html#Wrappers">Wrappers</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a 
href="From-other-version-control-systems.html#From-other-version-control-systems"
 accesskey="n" rel="next">From other version control systems</a>, Up: <a 
href="Setting-up-the-files.html#Setting-up-the-files" accesskey="u" 
rel="up">Setting up the files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/From-other-version-control-systems.html
===================================================================
RCS file: html_node/From-other-version-control-systems.html
diff -N html_node/From-other-version-control-systems.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/From-other-version-control-systems.html   28 Dec 2015 15:57:55 
-0000      1.1
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: From other version 
control systems</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: From other version control systems">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
From other version control systems">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Setting-up-the-files.html#Setting-up-the-files" rel="up" 
title="Setting up the files">
+<link href="From-scratch.html#From-scratch" rel="next" title="From scratch">
+<link href="From-files.html#From-files" rel="prev" title="From files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="From-other-version-control-systems"></a>
+<div class="header">
+<p>
+Next: <a href="From-scratch.html#From-scratch" accesskey="n" rel="next">From 
scratch</a>, Previous: <a href="From-files.html#From-files" accesskey="p" 
rel="prev">From files</a>, Up: <a 
href="Setting-up-the-files.html#Setting-up-the-files" accesskey="u" 
rel="up">Setting up the files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Creating-Files-From-Other-Version-Control-Systems"></a>
+<h4 class="subsection">3.1.2 Creating Files From Other Version Control 
Systems</h4>
+<a name="index-Importing-files_002c-from-other-version-control-systems"></a>
+
+<p>If you have a project which you are maintaining with
+another version control system, such as <small>RCS</small>, you
+may wish to put the files from that project into
+<small>CVS</small>, and preserve the revision history of the
+files.
+</p>
+<dl compact="compact">
+<dd><a name="index-RCS_002c-importing-files-from"></a>
+</dd>
+<dt>From RCS</dt>
+<dd><p>If you have been using <small>RCS</small>, find the <small>RCS</small>
+files&mdash;usually a file named <samp>foo.c</samp> will have its
+<small>RCS</small> file in <samp>RCS/foo.c,v</samp> (but it could be
+other places; consult the <small>RCS</small> documentation for
+details).  Then create the appropriate directories in
+<small>CVS</small> if they do not already exist.  Then copy the
+files into the appropriate directories in the <small>CVS</small>
+repository (the name in the repository must be the name
+of the source file with &lsquo;<samp>,v</samp>&rsquo; added; the files go
+directly in the appropriate directory of the repository,
+not in an <samp>RCS</samp> subdirectory).  This is one of the
+few times when it is a good idea to access the <small>CVS</small>
+repository directly, rather than using <small>CVS</small>
+commands.  Then you are ready to check out a new
+working directory.
+</p>
+<p>The <small>RCS</small> file should not be locked when you move it
+into <small>CVS</small>; if it is, <small>CVS</small> will have trouble
+letting you operate on it.
+</p>
+</dd>
+<dt>From another version control system</dt>
+<dd><p>Many version control systems have the ability to export
+<small>RCS</small> files in the standard format.  If yours does,
+export the <small>RCS</small> files and then follow the above
+instructions.
+</p>
+<p>Failing that, probably your best bet is to write a
+script that will check out the files one revision at a
+time using the command line interface to the other
+system, and then check the revisions into <small>CVS</small>.
+The <samp>sccs2rcs</samp> script mentioned below may be a
+useful example to follow.
+</p>
+<a name="index-SCCS_002c-importing-files-from"></a>
+</dd>
+<dt>From SCCS</dt>
+<dd><p>There is a script in the <samp>contrib</samp> directory of
+the <small>CVS</small> source distribution called <samp>sccs2rcs</samp>
+which converts <small>SCCS</small> files to <small>RCS</small> files.
+Note: you must run it on a machine which has both
+<small>SCCS</small> and <small>RCS</small> installed, and like everything
+else in contrib it is unsupported (your mileage may
+vary).
+</p>
+<a name="index-PVCS_002c-importing-files-from"></a>
+</dd>
+<dt>From PVCS</dt>
+<dd><p>There is a script in the <samp>contrib</samp> directory of
+the <small>CVS</small> source distribution called <samp>pvcs_to_rcs</samp>
+which converts <small>PVCS</small> archives to <small>RCS</small> files.
+You must run it on a machine which has both
+<small>PVCS</small> and <small>RCS</small> installed, and like everything
+else in contrib it is unsupported (your mileage may
+vary).  See the comments in the script for details.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="From-scratch.html#From-scratch" accesskey="n" rel="next">From 
scratch</a>, Previous: <a href="From-files.html#From-files" accesskey="p" 
rel="prev">From files</a>, Up: <a 
href="Setting-up-the-files.html#Setting-up-the-files" accesskey="u" 
rel="up">Setting up the files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/From-scratch.html
===================================================================
RCS file: html_node/From-scratch.html
diff -N html_node/From-scratch.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/From-scratch.html 28 Dec 2015 15:57:55 -0000      1.1
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: From scratch</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: From scratch">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
From scratch">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Setting-up-the-files.html#Setting-up-the-files" rel="up" 
title="Setting up the files">
+<link href="Defining-the-module.html#Defining-the-module" rel="next" 
title="Defining the module">
+<link 
href="From-other-version-control-systems.html#From-other-version-control-systems"
 rel="prev" title="From other version control systems">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="From-scratch"></a>
+<div class="header">
+<p>
+Previous: <a 
href="From-other-version-control-systems.html#From-other-version-control-systems"
 accesskey="p" rel="prev">From other version control systems</a>, Up: <a 
href="Setting-up-the-files.html#Setting-up-the-files" accesskey="u" 
rel="up">Setting up the files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Creating-a-directory-tree-from-scratch"></a>
+<h4 class="subsection">3.1.3 Creating a directory tree from scratch</h4>
+
+<p>For a new project, the easiest thing to do is probably
+to create an empty directory structure, like this:
+</p>
+<div class="example">
+<pre class="example">$ mkdir tc
+$ mkdir tc/man
+$ mkdir tc/testing
+</pre></div>
+
+<p>After that, you use the <code>import</code> command to create
+the corresponding (empty) directory structure inside
+the repository:
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ cvs import -m &quot;Created directory structure&quot; 
yoyodyne/<var>dir</var> yoyo start
+</pre></div>
+
+<p>This will add yoyodyne/<var>dir</var> as a directory under
+<code>$CVSROOT</code>.
+</p>
+<p>Use <code>checkout</code> to get the new project.  Then, use 
<code>add</code>
+to add files (and new directories) as needed.
+</p>
+<div class="example">
+<pre class="example">$ cd ..
+$ cvs co yoyodyne/<var>dir</var>
+</pre></div>
+
+<p>Check that the permissions <small>CVS</small> sets on the
+directories inside <code>$CVSROOT</code> are reasonable.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/GSSAPI-authenticated.html
===================================================================
RCS file: html_node/GSSAPI-authenticated.html
diff -N html_node/GSSAPI-authenticated.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/GSSAPI-authenticated.html 28 Dec 2015 15:57:55 -0000      1.1
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: GSSAPI 
authenticated</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: GSSAPI authenticated">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
GSSAPI authenticated">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Remote-repositories.html#Remote-repositories" rel="up" 
title="Remote repositories">
+<link href="Kerberos-authenticated.html#Kerberos-authenticated" rel="next" 
title="Kerberos authenticated">
+<link 
href="Password-authentication-security.html#Password-authentication-security" 
rel="prev" title="Password authentication security">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="GSSAPI-authenticated"></a>
+<div class="header">
+<p>
+Next: <a href="Kerberos-authenticated.html#Kerberos-authenticated" 
accesskey="n" rel="next">Kerberos authenticated</a>, Previous: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="p" 
rel="prev">Password authenticated</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Direct-connection-with-GSSAPI"></a>
+<h4 class="subsection">2.9.4 Direct connection with GSSAPI</h4>
+
+<a name="index-GSSAPI"></a>
+<a name="index-Security_002c-GSSAPI"></a>
+<a name="index-_003agserver_003a_002c-setting-up"></a>
+<a name="index-Kerberos_002c-using-_003agserver_003a"></a>
+<p>GSSAPI is a generic interface to network security
+systems such as Kerberos 5.
+If you have a working GSSAPI library, you can have
+<small>CVS</small> connect via a direct <small>TCP</small> connection,
+authenticating with GSSAPI.
+</p>
+<p>To do this, <small>CVS</small> needs to be compiled with GSSAPI
+support; when configuring <small>CVS</small> it tries to detect
+whether GSSAPI libraries using Kerberos version 5 are
+present.  You can also use the <samp>--with-gssapi</samp>
+flag to configure.
+</p>
+<p>The connection is authenticated using GSSAPI, but the
+message stream is <em>not</em> authenticated by default.
+You must use the <code>-a</code> global option to request
+stream authentication.
+</p>
+<p>The data transmitted is <em>not</em> encrypted by
+default.  Encryption support must be compiled into both
+the client and the server; use the
+<samp>--enable-encrypt</samp> configure option to turn it on.
+You must then use the <code>-x</code> global option to
+request encryption.
+</p>
+<p>GSSAPI connections are handled on the server side by
+the same server which handles the password
+authentication server; see <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>.  If you are using a GSSAPI mechanism such as
+Kerberos which provides for strong authentication, you
+will probably want to disable the ability to
+authenticate via cleartext passwords.  To do so, create
+an empty <samp>CVSROOT/passwd</samp> password file, and set
+<code>SystemAuth=no</code> in the config file
+(see <a href="config.html#config">config</a>).
+</p>
+<p>The GSSAPI server uses a principal name of
+cvs/<var>hostname</var>, where <var>hostname</var> is the
+canonical name of the server host.  You will have to
+set this up as required by your GSSAPI mechanism.
+</p>
+<p>To connect using GSSAPI, use the &lsquo;<samp>:gserver:</samp>&rsquo; 
method.  For
+example,
+</p>
+<div class="example">
+<pre class="example">cvs -d :gserver:faun.example.org:/usr/local/cvsroot 
checkout foo
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Kerberos-authenticated.html#Kerberos-authenticated" 
accesskey="n" rel="next">Kerberos authenticated</a>, Previous: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="p" 
rel="prev">Password authenticated</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Getting-Notified.html
===================================================================
RCS file: html_node/Getting-Notified.html
diff -N html_node/Getting-Notified.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Getting-Notified.html     28 Dec 2015 15:57:55 -0000      1.1
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Getting Notified</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Getting Notified">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Getting Notified">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Watches.html#Watches" rel="up" title="Watches">
+<link href="Editing-files.html#Editing-files" rel="next" title="Editing files">
+<link href="Setting-a-watch.html#Setting-a-watch" rel="prev" title="Setting a 
watch">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Getting-Notified"></a>
+<div class="header">
+<p>
+Next: <a href="Editing-files.html#Editing-files" accesskey="n" 
rel="next">Editing files</a>, Previous: <a 
href="Setting-a-watch.html#Setting-a-watch" accesskey="p" rel="prev">Setting a 
watch</a>, Up: <a href="Watches.html#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Telling-CVS-to-notify-you"></a>
+<h4 class="subsection">10.6.2 Telling CVS to notify you</h4>
+
+<p>You can tell <small>CVS</small> that you want to receive
+notifications about various actions taken on a file.
+You can do this without using <code>cvs watch on</code> for
+the file, but generally you will want to use <code>cvs
+watch on</code>, to remind developers to use the <code>cvs edit</code>
+command.
+</p>
+<a name="index-watch-add-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watch-add"></a>Command: <strong>cvs watch add</strong> 
<em>[<code>-lR</code>] [<code>-a</code> <var>action</var>]&hellip; 
[<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Add the current user to the list of people to receive notification of
+work done on <var>files</var>.
+</p>
+<p>The <code>-a</code> option specifies what kinds of events 
<small>CVS</small> should notify
+the user about.  <var>action</var> is one of the following:
+</p>
+<dl compact="compact">
+<dt><code>edit</code></dt>
+<dd><p>Another user has applied the <code>cvs edit</code> command (described
+below) to a watched file.
+</p>
+</dd>
+<dt><code>commit</code></dt>
+<dd><p>Another user has committed changes to one of the named <var>files</var>.
+</p>
+</dd>
+<dt><code>unedit</code></dt>
+<dd><p>Another user has abandoned editing a file (other than by committing 
changes).
+They can do this in several ways, by:
+</p>
+<ul>
+<li> applying the <code>cvs unedit</code> command (described below) to the file
+
+</li><li> applying the <code>cvs release</code> command (see <a 
href="release.html#release">release</a>) to the file&rsquo;s parent directory
+(or recursively to a directory more than one level up)
+
+</li><li> deleting the file and allowing <code>cvs update</code> to recreate it
+
+</li></ul>
+
+</dd>
+<dt><code>all</code></dt>
+<dd><p>All of the above.
+</p>
+</dd>
+<dt><code>none</code></dt>
+<dd><p>None of the above.  (This is useful with <code>cvs edit</code>,
+described below.)
+</p>
+</dd>
+</dl>
+
+<p>The <code>-a</code> option may appear more than once, or not at all.  If
+omitted, the action defaults to <code>all</code>.
+</p>
+<p>The <var>files</var> and options are processed as for
+<code>cvs watch on</code>.
+</p>
+</dd></dl>
+
+
+<a name="index-watch-remove-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watch-remove"></a>Command: <strong>cvs watch 
remove</strong> <em>[<code>-lR</code>] [<code>-a</code> 
<var>action</var>]&hellip; [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Remove a notification request established using <code>cvs watch add</code>;
+the arguments are the same.  If the <code>-a</code> option is present, only
+watches for the specified actions are removed.
+</p>
+</dd></dl>
+
+<a name="index-notify-_0028admin-file_0029"></a>
+<p>When the conditions exist for notification, <small>CVS</small>
+calls the <samp>notify</samp> administrative file.  Edit
+<samp>notify</samp> as one edits the other administrative
+files (see <a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a>).  This
+file follows the usual conventions for administrative
+files (see <a href="syntax.html#syntax">syntax</a>), where each line is a 
regular
+expression followed by a command to execute.  The
+command should contain a single occurrence of &lsquo;<samp>%s</samp>&rsquo;
+which will be replaced by the user to notify; the rest
+of the information regarding the notification will be
+supplied to the command on standard input.  The
+standard thing to put in the <code>notify</code> file is the
+single line:
+</p>
+<div class="example">
+<pre class="example">ALL mail %s -s &quot;CVS notification&quot;
+</pre></div>
+
+<p>This causes users to be notified by electronic mail.
+</p>
+<a name="index-users-_0028admin-file_0029"></a>
+<p>Note that if you set this up in the straightforward
+way, users receive notifications on the server machine.
+One could of course write a <samp>notify</samp> script which
+directed notifications elsewhere, but to make this
+easy, <small>CVS</small> allows you to associate a notification
+address for each user.  To do so create a file
+<samp>users</samp> in <samp>CVSROOT</samp> with a line for each
+user in the format <var>user</var>:<var>value</var>.  Then
+instead of passing the name of the user to be notified
+to <samp>notify</samp>, <small>CVS</small> will pass the <var>value</var>
+(normally an email address on some other machine).
+</p>
+<p><small>CVS</small> does not notify you for your own changes.
+Currently this check is done based on whether the user
+name of the person taking the action which triggers
+notification matches the user name of the person
+getting notification.  In fact, in general, the watches
+features only track one edit by each user.  It probably
+would be more useful if watches tracked each working
+directory separately, so this behavior might be worth
+changing.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Editing-files.html#Editing-files" accesskey="n" 
rel="next">Editing files</a>, Previous: <a 
href="Setting-a-watch.html#Setting-a-watch" accesskey="p" rel="prev">Setting a 
watch</a>, Up: <a href="Watches.html#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Getting-the-source.html
===================================================================
RCS file: html_node/Getting-the-source.html
diff -N html_node/Getting-the-source.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Getting-the-source.html   28 Dec 2015 15:57:55 -0000      1.1
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Getting the 
source</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Getting the source">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Getting the source">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="A-sample-session.html#A-sample-session" rel="up" title="A sample 
session">
+<link href="Committing-your-changes.html#Committing-your-changes" rel="next" 
title="Committing your changes">
+<link href="A-sample-session.html#A-sample-session" rel="prev" title="A sample 
session">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Getting-the-source"></a>
+<div class="header">
+<p>
+Next: <a href="Committing-your-changes.html#Committing-your-changes" 
accesskey="n" rel="next">Committing your changes</a>, Up: <a 
href="A-sample-session.html#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Getting-the-source-1"></a>
+<h4 class="subsection">1.3.1 Getting the source</h4>
+<a name="index-Getting-the-source"></a>
+<a name="index-Checking-out-source"></a>
+<a name="index-Fetching-source"></a>
+<a name="index-Source_002c-getting-from-CVS"></a>
+<a name="index-Checkout_002c-example"></a>
+
+<p>The first thing you must do is to get your own working copy of the
+source for &lsquo;<samp>tc</samp>&rsquo;.  For this, you use the 
<code>checkout</code> command:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout tc
+</pre></div>
+
+<p>This will create a new directory called <samp>tc</samp> and populate it with
+the source files.
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ ls
+CVS         Makefile    backend.c   driver.c    frontend.c  parser.c
+</pre></div>
+
+<p>The <samp>CVS</samp> directory is used internally by
+<small>CVS</small>.  Normally, you should not modify or remove
+any of the files in it.
+</p>
+<p>You start your favorite editor, hack away at <samp>backend.c</samp>, and a 
couple
+of hours later you have added an optimization pass to the compiler.
+A note to <small>RCS</small> and <small>SCCS</small> users: There is no need 
to lock the files that
+you want to edit.  See <a 
href="Multiple-developers.html#Multiple-developers">Multiple developers</a>, 
for an explanation.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Global-options.html
===================================================================
RCS file: html_node/Global-options.html
diff -N html_node/Global-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Global-options.html       28 Dec 2015 15:57:56 -0000      1.1
@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Global options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Global options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Global options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="Common-options.html#Common-options" rel="next" title="Common 
options">
+<link href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc" rel="prev" 
title="~/.cvsrc">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Global-options"></a>
+<div class="header">
+<p>
+Next: <a href="Common-options.html#Common-options" accesskey="n" 
rel="next">Common options</a>, Previous: <a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc" accesskey="p" 
rel="prev">~/.cvsrc</a>, Up: <a href="CVS-commands.html#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Global-options-1"></a>
+<h3 class="appendixsec">A.4 Global options</h3>
+<a name="index-Options_002c-global"></a>
+<a name="index-Global-options"></a>
+<a name="index-Left_002dhand-options"></a>
+
+<p>The available &lsquo;<samp>cvs_options</samp>&rsquo; (that are given to the
+left of &lsquo;<samp>cvs_command</samp>&rsquo;) are:
+</p>
+<dl compact="compact">
+<dt><code>--allow-root=<var>rootdir</var></code></dt>
+<dd><p>Specify legal <small>CVSROOT</small> directory.  See
+<a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>.
+</p>
+<a name="index-Authentication_002c-stream"></a>
+<a name="index-Stream-authentication"></a>
+</dd>
+<dt><code>-a</code></dt>
+<dd><p>Authenticate all communication between the client and
+the server.  Only has an effect on the <small>CVS</small> client.
+As of this writing, this is only implemented when using
+a GSSAPI connection (see <a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated">GSSAPI authenticated</a>).
+Authentication prevents certain sorts of attacks
+involving hijacking the active <small>TCP</small> connection.
+Enabling authentication does not enable encryption.
+</p>
+<a name="index-RCSBIN_002c-overriding"></a>
+<a name="index-Overriding-RCSBIN"></a>
+</dd>
+<dt><code>-b <var>bindir</var></code></dt>
+<dd><p>In <small>CVS</small> 1.9.18 and older, this specified that
+<small>RCS</small> programs are in the <var>bindir</var> directory.
+Current versions of <small>CVS</small> do not run <small>RCS</small>
+programs; for compatibility this option is accepted,
+but it does nothing.
+</p>
+<a name="index-TMPDIR_002c-overriding"></a>
+<a name="index-Overriding-TMPDIR"></a>
+</dd>
+<dt><code>-T <var>tempdir</var></code></dt>
+<dd><p>Use <var>tempdir</var> as the directory where temporary files are
+located.  Overrides the setting of the <code>$TMPDIR</code> environment
+variable and any precompiled directory.  This parameter should be
+specified as an absolute pathname.
+(When running client/server, &lsquo;<samp>-T</samp>&rsquo; affects only the 
local process;
+specifying &lsquo;<samp>-T</samp>&rsquo; for the client has no effect on the 
server and
+vice versa.)
+</p>
+<a name="index-CVSROOT_002c-overriding"></a>
+<a name="index-Overriding-CVSROOT"></a>
+</dd>
+<dt><code>-d <var>cvs_root_directory</var></code></dt>
+<dd><p>Use <var>cvs_root_directory</var> as the root directory
+pathname of the repository.  Overrides the setting of
+the <code>$CVSROOT</code> environment variable.  See <a 
href="Repository.html#Repository">Repository</a>.
+</p>
+<a name="index-EDITOR_002c-overriding"></a>
+<a name="index-Overriding-EDITOR"></a>
+</dd>
+<dt><code>-e <var>editor</var></code></dt>
+<dd><p>Use <var>editor</var> to enter revision log information.  Overrides the
+setting of the <code>$CVSEDITOR</code> and <code>$EDITOR</code>
+environment variables.  For more information, see
+<a href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Do not read the <samp>~/.cvsrc</samp> file.  This
+option is most often used because of the
+non-orthogonality of the <small>CVS</small> option set.  For
+example, the &lsquo;<samp>cvs log</samp>&rsquo; option 
&lsquo;<samp>-N</samp>&rsquo; (turn off
+display of tag names) does not have a corresponding
+option to turn the display on.  So if you have
+&lsquo;<samp>-N</samp>&rsquo; in the <samp>~/.cvsrc</samp> entry for 
&lsquo;<samp>log</samp>&rsquo;,
+you may need to use &lsquo;<samp>-f</samp>&rsquo; to show the tag names.
+</p>
+</dd>
+<dt><code>-H</code></dt>
+<dt><code>--help</code></dt>
+<dd><p>Display usage information about the specified 
&lsquo;<samp>cvs_command</samp>&rsquo;
+(but do not actually execute the command).  If you don&rsquo;t specify
+a command name, &lsquo;<samp>cvs -H</samp>&rsquo; displays overall help for
+<small>CVS</small>, including a list of other help options.
+</p>
+<a name="index-Read_002donly-mode"></a>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not change any files.  Attempt to execute the
+&lsquo;<samp>cvs_command</samp>&rsquo;, but only to issue reports; do not 
remove,
+update, or merge any existing files, or create any new files.
+</p>
+<p>Note that <small>CVS</small> will not necessarily produce exactly
+the same output as without &lsquo;<samp>-n</samp>&rsquo;.  In some cases
+the output will be the same, but in other cases
+<small>CVS</small> will skip some of the processing that would
+have been required to produce the exact same output.
+</p>
+</dd>
+<dt><code>-Q</code></dt>
+<dd><p>Cause the command to be really quiet; the command will only
+generate output for serious problems.
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Cause the command to be somewhat quiet; informational messages,
+such as reports of recursion through subdirectories, are
+suppressed.
+</p>
+<a name="index-Read_002donly-files_002c-and-_002dr"></a>
+</dd>
+<dt><code>-r</code></dt>
+<dd><p>Make new working files read-only.  Same effect
+as if the <code>$CVSREAD</code> environment variable is set
+(see <a href="Environment-variables.html#Environment-variables">Environment 
variables</a>).  The default is to
+make working files writable, unless watches are on
+(see <a href="Watches.html#Watches">Watches</a>).
+</p>
+</dd>
+<dt><code>-s <var>variable</var>=<var>value</var></code></dt>
+<dd><p>Set a user variable (see <a 
href="Variables.html#Variables">Variables</a>).
+</p>
+<a name="index-Trace"></a>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Trace program execution; display messages showing the steps of
+<small>CVS</small> activity.  Particularly useful with 
&lsquo;<samp>-n</samp>&rsquo; to explore the
+potential impact of an unfamiliar command.
+</p>
+</dd>
+<dt><code>-v</code></dt>
+<dt><code>--version</code></dt>
+<dd><p>Display version and copyright information for <small>CVS</small>.
+</p>
+<a name="index-CVSREAD_002c-overriding"></a>
+<a name="index-Overriding-CVSREAD"></a>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Make new working files read-write.  Overrides the
+setting of the <code>$CVSREAD</code> environment variable.
+Files are created read-write by default, unless <code>$CVSREAD</code> is
+set or &lsquo;<samp>-r</samp>&rsquo; is given.
+</p>
+</dd>
+<dt><code>-x</code></dt>
+<dd><a name="index-Encryption"></a>
+<p>Encrypt all communication between the client and the
+server.  Only has an effect on the <small>CVS</small> client.  As
+of this writing, this is only implemented when using a
+GSSAPI connection (see <a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated">GSSAPI authenticated</a>) 
or a
+Kerberos connection (see <a 
href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a>).
+Enabling encryption implies that message traffic is
+also authenticated.  Encryption support is not
+available by default; it must be enabled using a
+special configure option, <samp>--enable-encryption</samp>,
+when you build <small>CVS</small>.
+</p>
+</dd>
+<dt><code>-z <var>gzip-level</var></code></dt>
+<dd><a name="index-Compression"></a>
+<a name="index-Gzip"></a>
+<p>Set the compression level.
+Valid levels are 1 (high speed, low compression) to
+9 (low speed, high compression), or 0 to disable
+compression (the default).
+Only has an effect on the <small>CVS</small> client.
+</p>
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Common-options.html#Common-options" accesskey="n" 
rel="next">Common options</a>, Previous: <a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc" accesskey="p" 
rel="prev">~/.cvsrc</a>, Up: <a href="CVS-commands.html#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/History-browsing.html
===================================================================
RCS file: html_node/History-browsing.html
diff -N html_node/History-browsing.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/History-browsing.html     28 Dec 2015 15:57:56 -0000      1.1
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: History browsing</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: History browsing">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
History browsing">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="log-messages.html#log-messages" rel="next" title="log messages">
+<link href="Moving-directories.html#Moving-directories" rel="prev" 
title="Moving directories">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="History-browsing"></a>
+<div class="header">
+<p>
+Next: <a href="Binary-files.html#Binary-files" accesskey="n" rel="next">Binary 
files</a>, Previous: <a href="Adding-and-removing.html#Adding-and-removing" 
accesskey="p" rel="prev">Adding and removing</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="History-browsing-1"></a>
+<h2 class="chapter">8 History browsing</h2>
+<a name="index-History-browsing"></a>
+<a name="index-Traceability"></a>
+<a name="index-Isolation"></a>
+
+
+<p>Once you have used <small>CVS</small> to store a version control
+history&mdash;what files have changed when, how, and by
+whom, there are a variety of mechanisms for looking
+through the history.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="log-messages.html#log-messages" accesskey="1">log 
messages</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Log 
messages
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="history-database.html#history-database" accesskey="2">history 
database</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The 
history database
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="user_002ddefined-logging.html#user_002ddefined-logging" 
accesskey="3">user-defined logging</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">User-defined logging
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Index.html
===================================================================
RCS file: html_node/Index.html
diff -N html_node/Index.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Index.html        28 Dec 2015 15:57:56 -0000      1.1
@@ -0,0 +1,926 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Index</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Index">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Index">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="BUGS.html#BUGS" rel="prev" title="BUGS">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Index"></a>
+<div class="header">
+<p>
+Previous: <a href="BUGS.html#BUGS" accesskey="p" rel="prev">BUGS</a>, Up: <a 
href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Index-1"></a>
+<h2 class="unnumbered">Index</h2>
+<a name="index-Index"></a>
+
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" 
href="#Index_cp_symbol-1"><b>!</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-2"><b>#</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-3"><b>&amp;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-4"><b>-</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-5"><b>.</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-6"><b>/</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-7"><b>:</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-8"><b>&lt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-9"><b>=</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-10"><b>&gt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-11"><b>_</b></a>
+ &nbsp; 
+<br>
+<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+<table class="index-cp" border="0">
+<tr><td></td><th align="left">Index Entry</th><td>&nbsp;</td><th align="left"> 
Section</th></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-1">!</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Excluding-directories.html#index-_0021_002c-in-modules-file">!, in 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Excluding-directories.html#Excluding-directories">Excluding 
directories</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-2">#</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Concurrency.html#index-_0023cvs_002elock_002c-removing">#cvs.lock, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Concurrency.html#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Locks.html#index-_0023cvs_002elock_002c-technical-details">#cvs.lock, 
technical details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Locks.html#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Backing-up.html#index-_0023cvs_002erfl_002c-and-backups">#cvs.rfl, and 
backups</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Backing-up.html#Backing-up">Backing up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Concurrency.html#index-_0023cvs_002erfl_002c-removing">#cvs.rfl, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Concurrency.html#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Locks.html#index-_0023cvs_002erfl_002c-technical-details">#cvs.rfl, 
technical details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Locks.html#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Locks.html#index-_0023cvs_002etfl">#cvs.tfl</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Locks.html#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Concurrency.html#index-_0023cvs_002ewfl_002c-removing">#cvs.wfl, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Concurrency.html#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Locks.html#index-_0023cvs_002ewfl_002c-technical-details">#cvs.wfl, 
technical details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Locks.html#Locks">Locks</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-3">&amp;</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Ampersand-modules.html#index-_0026_002c-in-modules-file">&amp;, in 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Ampersand-modules.html#Ampersand-modules">Ampersand modules</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-4">-</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Alias-modules.html#index-_002da_002c-in-modules-file">-a, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Alias-modules.html#Alias-modules">Alias modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-_002dd_002c-in-modules-file">-d, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-_002de_002c-in-modules-file">-e, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-program-options.html#index-_002de_002c-in-modules-file-1">-e, in 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-program-options.html#Module-program-options">Module program 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-a-branch.html#index-_002dj-_0028merging-branches_0029">-j 
(merging branches)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-a-branch.html#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-and-keywords.html#index-_002dj-_0028merging-branches_0029_002c-and-keyword-substitution">-j
 (merging branches), and keyword substitution</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Merging-and-keywords.html#Merging-and-keywords">Merging 
and keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Substitution-modes.html#index-_002dk-_0028keyword-substitution_0029">-k 
(keyword substitution)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Substitution-modes.html#Substitution-modes">Substitution 
modes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-and-keywords.html#index-_002dkk_002c-to-avoid-conflicts-during-a-merge">-kk,
 to avoid conflicts during a merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-and-keywords.html#Merging-and-keywords">Merging and 
keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-_002do_002c-in-modules-file">-o, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-program-options.html#index-_002do_002c-in-modules-file-1">-o, in 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-program-options.html#Module-program-options">Module program 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-_002ds_002c-in-modules-file">-s, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-_002dt_002c-in-modules-file">-t, in modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-program-options.html#index-_002dt_002c-in-modules-file-1">-t, in 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-program-options.html#Module-program-options">Module program 
options</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-5">.</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="update-output.html#index-_002e_0023-files">.# 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="update-output.html#update-output">update output</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-_002ebashrc_002c-setting-CVSROOT-in">.bashrc,
 setting CVSROOT in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-_002ecshrc_002c-setting-CVSROOT-in">.cshrc,
 setting CVSROOT in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="_007e_002f_002ecvsrc.html#index-_002ecvsrc-file">.cvsrc 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc">~/.cvsrc</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-_002eprofile_002c-setting-CVSROOT-in">.profile,
 setting CVSROOT in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-_002etcshrc_002c-setting-CVSROOT-in">.tcshrc,
 setting CVSROOT in</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-6">/</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-_002fusr_002flocal_002fcvsroot_002c-as-example-repository">/usr/local/cvsroot,
 as example repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-7">:</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-_003aext_003a_002c-setting-up">:ext:, 
setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connection.html#index-_003aext_003a_002c-troubleshooting">:ext:, 
troubleshooting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connection.html#Connection">Connection</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-_003aextssh_003a_002c-setting-up">:extssh:, 
setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-fork.html#index-_003afork_003a_002c-setting-up">:fork:, 
setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-fork.html#Connecting-via-fork">Connecting via 
fork</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="GSSAPI-authenticated.html#index-_003agserver_003a_002c-setting-up">:gserver:,
 setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated">GSSAPI 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Kerberos-authenticated.html#index-_003akserver_003a_002c-setting-up">:kserver:,
 setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-_003alocal_003a_002c-setting-up">:local:, setting 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-client.html#index-_003apserver_003a_002c-setting-up">:pserver:,
 setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connection.html#index-_003apserver_003a_002c-troubleshooting">:pserver:, 
troubleshooting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connection.html#Connection">Connection</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-_003aserver_003a_002c-setting-up">:server:, 
setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connection.html#index-_003aserver_003a_002c-troubleshooting">:server:, 
troubleshooting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connection.html#Connection">Connection</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-8">&lt;</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-_003c_003c_003c_003c_003c_003c_003c">&lt;&lt;&lt;&lt;&lt;&lt;&lt;</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Conflicts-example.html#Conflicts-example">Conflicts 
example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-9">=</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-_003d_003d_003d_003d_003d_003d_003d">=======</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Conflicts-example.html#Conflicts-example">Conflicts 
example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-10">&gt;</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-_003e_003e_003e_003e_003e_003e_003e">&gt;&gt;&gt;&gt;&gt;&gt;&gt;</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Conflicts-example.html#Conflicts-example">Conflicts 
example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_symbol-11">_</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="update-output.html#index-_005f_005f-files-_0028VMS_0029">__ files 
(VMS)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="update-output.html#update-output">update output</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Editing-files.html#index-Abandoning-work">Abandoning 
work</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Editing-files.html#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Access-a-branch">Access a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Adding-files.html#index-add-_0028subcommand_0029">add 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Adding-files.html#Adding-files">Adding files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="add.html#index-add-_0028subcommand_0029-1">add 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="add.html#add">add</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tags.html#index-Adding-a-tag">Adding a 
tag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Adding-files.html#index-Adding-files">Adding 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Adding-files.html#Adding-files">Adding files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin.html#index-Admin-_0028subcommand_0029">Admin 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin.html#admin">admin</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Intro-administrative-files.html#index-Administrative-files-_0028intro_0029">Administrative
 files (intro)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Administrative-files.html#index-Administrative-files-_0028reference_0029">Administrative
 files (reference)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Administrative-files.html#Administrative-files">Administrative 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Intro-administrative-files.html#index-Administrative-files_002c-editing-them">Administrative
 files, editing them</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Alias-modules.html#index-Alias-modules">Alias 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Alias-modules.html#Alias-modules">Alias modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-ALL-in-commitinfo">ALL in 
commitinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Ampersand-modules.html#index-Ampersand-modules">Ampersand 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Ampersand-modules.html#Ampersand-modules">Ampersand modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="annotate.html#index-annotate-_0028subcommand_0029">annotate 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="annotate.html#annotate">annotate</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Concurrency.html#index-Atomic-transactions_002c-lack-of">Atomic 
transactions, lack of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Concurrency.html#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Attic.html#index-Attic">Attic</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Attic.html#Attic">Attic</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-client.html#index-Authenticated-client_002c-using">Authenticated
 client, using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-Authenticating-server_002c-setting-up">Authenticating
 server, setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Authentication_002c-stream">Authentication, 
stream</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Author-keyword">Author 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="cvsignore.html#index-Automatically-ignored-files">Automatically ignored 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="cvsignore.html#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Avoiding-editor-invocation">Avoiding editor 
invocation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Backing-up.html#index-Backing-up_002c-repository">Backing up, 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Backing-up.html#Backing-up">Backing up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Base-directory_002c-in-CVS-directory">Base
 directory, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-BASE_002c-as-reserved-tag-name">BASE, as reserved tag 
name</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-BASE_002c-special-tag">BASE, special 
tag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Baserev-file_002c-in-CVS-directory">Baserev
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Baserev_002etmp-file_002c-in-CVS-directory">Baserev.tmp
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Builds.html#index-Bill-of-materials">Bill of 
materials</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Builds.html#Builds">Builds</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Binary-files.html#index-Binary-files">Binary 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Binary-files.html#Binary-files">Binary files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-a-branch.html#index-Branch-merge-example">Branch merge 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-a-branch.html#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Branch-number">Branch 
number</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branches-and-revisions.html#index-Branch-number-1">Branch 
number</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branches-and-revisions.html#Branches-and-revisions">Branches and 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Branch-tags_002c-deleting">Branch tags, 
deleting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Branch-tags_002c-moving">Branch tags, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Branch_002c-accessing">Branch, 
accessing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Branch_002c-check-out">Branch, check 
out</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-branch.html#index-Branch_002c-creating-a">Branch, creating 
a</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-branch.html#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Branch_002c-identifying">Branch, 
identifying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Branch_002c-retrieving">Branch, 
retrieving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tracking-sources.html#index-Branch_002c-vendor_002d">Branch, 
vendor-</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branches-motivation.html#index-Branches-motivation">Branches 
motivation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branches-motivation.html#Branches-motivation">Branches 
motivation</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Branches_002c-copying-changes-between">Branches,
 copying changes between</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Branches_002c-sticky">Branches, 
sticky</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Branching">Branching</a>:</td><td>&nbsp;</td><td
 valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Updating-a-file.html#index-Bringing-a-file-up-to-date">Bringing a file up 
to date</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Updating-a-file.html#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Bugs-in-this-manual-or-CVS">Bugs in this manual or 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Bugs_002c-reporting">Bugs, 
reporting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Builds.html#index-Builds">Builds</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Builds.html#Builds">Builds</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Changes_002c-copying-between-branches">Changes,
 copying between branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Changing-a-log-message">Changing a log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Check-out-a-branch">Check out a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keeping-a-checked-out-copy.html#index-Checked-out-copy_002c-keeping">Checked
 out copy, keeping</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy">Keeping a 
checked out copy</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-the-source.html#index-Checking-out-source">Checking out 
source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-the-source.html#Getting-the-source">Getting the 
source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="checkout.html#index-checkout-_0028subcommand_0029">checkout 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="checkout.html#checkout">checkout</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-Checkout-program">Checkout 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Editing-files.html#index-Checkout_002c-as-term-for-getting-ready-to-edit">Checkout,
 as term for getting ready to edit</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Editing-files.html#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-the-source.html#index-Checkout_002c-example">Checkout, 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-the-source.html#Getting-the-source">Getting the 
source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="checkoutlist.html#index-checkoutlist">checkoutlist</a>:</td><td>&nbsp;</td><td
 valign="top"><a 
href="checkoutlist.html#checkoutlist">checkoutlist</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Choosing-a-model.html#index-Choosing_002c-reserved-or-unreserved-checkouts">Choosing,
 reserved or unreserved checkouts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Choosing-a-model.html#Choosing-a-model">Choosing a model</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Cleaning-up.html#index-Cleaning-up">Cleaning 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Cleaning-up.html#Cleaning-up">Cleaning up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Client_002fServer-Operation">Client/Server 
Operation</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Client_002fServer-Operation_002c-port-specification">Client/Server
 Operation, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-Client_002fServer-Operation_002c-port-specification-1">Client/Server
 Operation, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="checkout.html#index-co-_0028subcommand_0029">co 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="checkout.html#checkout">checkout</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Invoking-CVS.html#index-Command-reference">Command 
reference</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Structure.html#index-Command-structure">Command 
structure</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Structure.html#Structure">Structure</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Comment-leader">Comment 
leader</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commit.html#index-commit-_0028subcommand_0029">commit 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commit.html#commit">commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-commitinfo"><samp>commitinfo</samp></a>:</td><td>&nbsp;</td><td
 valign="top"><a href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-commitinfo_002c-command-environment"><samp>commitinfo</samp>,
 command environment</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-commitinfo_002c-working-directory"><samp>commitinfo</samp>,
 working directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-Commits_002c-precommit-verification-of">Commits, 
precommit verification of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Committing-your-changes.html#index-Committing-changes-to-files">Committing
 changes to files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commit-files.html#index-Committing_002c-administrative-support-files">Committing,
 administrative support files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commit-files.html#commit-files">commit files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="When-to-commit.html#index-Committing_002c-when-to">Committing, when 
to</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="When-to-commit.html#When-to-commit">When to commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Common-options">Common 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="syntax.html#index-Common-syntax-of-info-files">Common syntax of info 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="syntax.html#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Compatibility.html#index-Compatibility_002c-between-CVS-versions">Compatibility,
 between CVS versions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Compatibility.html#Compatibility">Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Compression">Compression</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Global-options.html#Global-options">Global 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Invoking-CVS.html#index-Compression-1">Compression</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Invoking-CVS.html#Invoking-CVS">Invoking 
CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-COMSPEC_002c-environment-variable">COMSPEC,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-config_002c-in-CVSROOT">config, in 
CVSROOT</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Conflict-markers">Conflict 
markers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Conflict-resolution">Conflict 
resolution</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Conflicts-_0028merge-example_0029">Conflicts 
(merge example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-Contributors-_0028CVS-program_0029">Contributors
 (CVS program)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Credits.html#index-Contributors-_0028manual_0029">Contributors 
(manual)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Credits.html#Credits">Credits</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-a-repository.html#index-Copying-a-repository">Copying a 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-a-repository.html#Moving-a-repository">Moving a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Copying-changes">Copying 
changes</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Correcting-a-log-message">Correcting a log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-branch.html#index-Creating-a-branch">Creating a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-branch.html#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Starting-a-new-project.html#index-Creating-a-project">Creating a 
project</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Starting-a-new-project.html#Starting-a-new-project">Starting a new 
project</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-repository.html#index-Creating-a-repository">Creating a 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-Credits-_0028CVS-program_0029">Credits (CVS 
program)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Credits.html#index-Credits-_0028manual_0029">Credits 
(manual)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Credits.html#Credits">Credits</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Watches-Compatibility.html#index-CVS-1_002e6_002c-and-watches">CVS 1.6, 
and watches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Watches-Compatibility.html#Watches-Compatibility">Watches 
Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Structure.html#index-CVS-command-structure">CVS command 
structure</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Structure.html#Structure">Structure</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="CVS-in-repository.html#index-CVS-directory_002c-in-repository">CVS 
directory, in repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="CVS-in-repository.html#CVS-in-repository">CVS in repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS-directory_002c-in-working-directory">CVS
 directory, in working directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-CVS-passwd-file">CVS passwd 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-CVS_002c-history-of">CVS, history 
of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-CVS_002c-introduction-to">CVS, introduction 
to</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Compatibility.html#index-CVS_002c-versions-of">CVS, versions 
of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Compatibility.html#Compatibility">Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fBase-directory">CVS/Base 
directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fBaserev-file">CVS/Baserev 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fBaserev_002etmp-file">CVS/Baserev.tmp
 file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fEntries-file">CVS/Entries 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fEntries_002eBackup-file">CVS/Entries.Backup
 file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fEntries_002eLog-file">CVS/Entries.Log
 file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fEntries_002eStatic-file">CVS/Entries.Static
 file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fNotify-file">CVS/Notify 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fNotify_002etmp-file">CVS/Notify.tmp
 file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fRepository-file">CVS/Repository
 file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-CVS_002fRoot-file">CVS/Root 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fTag-file">CVS/Tag 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVS_002fTemplate-file">CVS/Template 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin.html#index-cvsadmin">cvsadmin</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="admin.html#admin">admin</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Committing-your-changes.html#index-CVSEDITOR_002c-environment-variable">CVSEDITOR,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVSEDITOR_002c-environment-variable-1">CVSEDITOR,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-CVSEDITOR_002c-internal-variable">CVSEDITOR, 
internal variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="cvsignore.html#index-cvsignore-_0028admin-file_0029_002c-global">cvsignore
 (admin file), global</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="cvsignore.html#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVSIGNORE_002c-environment-variable">CVSIGNORE,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVSREAD_002c-environment-variable">CVSREAD,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-CVSREAD_002c-overriding">CVSREAD, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-cvsroot">cvsroot</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Administrative-files.html#index-CVSROOT-_0028file_0029">CVSROOT 
(file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Administrative-files.html#Administrative-files">Administrative 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-CVSROOT_002c-environment-variable">CVSROOT,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-CVSROOT_002c-internal-variable">CVSROOT, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Intro-administrative-files.html#index-CVSROOT_002c-module-name">CVSROOT, 
module name</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-repositories.html#index-CVSROOT_002c-multiple-repositories">CVSROOT,
 multiple repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-repositories.html#Multiple-repositories">Multiple 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-CVSROOT_002c-overriding">CVSROOT, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="CVSROOT-storage.html#index-CVSROOT_002c-storage-of-files">CVSROOT, 
storage of files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="CVSROOT-storage.html#CVSROOT-storage">CVSROOT storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-CVSROOT_002fconfig">CVSROOT/config</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-CVSROOT_002fEmptydir-directory">CVSROOT/Emptydir
 directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-CVSROOT_002fval_002dtags-file_002c-and-read_002donly-access-to-projects">CVSROOT/val-tags
 file, and read-only access to projects</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="File-permissions.html#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Error-messages.html#index-CVSROOT_002fval_002dtags-file_002c-forcing-tags-into">CVSROOT/val-tags
 file, forcing tags into</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Error-messages.html#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-CVSUMASK_002c-environment-variable">CVSUMASK, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Wrappers.html#index-cvswrappers-_0028admin-file_0029">cvswrappers (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Wrappers.html#Wrappers">Wrappers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Wrappers.html#index-CVSWRAPPERS_002c-environment-variable">CVSWRAPPERS, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Wrappers.html#Wrappers">Wrappers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVSWRAPPERS_002c-environment-variable-1">CVSWRAPPERS,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVS_005fCLIENT_005fLOG_002c-environment-variable">CVS_CLIENT_LOG,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Kerberos-authenticated.html#index-CVS_005fCLIENT_005fPORT">CVS_CLIENT_PORT</a>:</td><td>&nbsp;</td><td
 valign="top"><a 
href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVS_005fIGNORE_005fREMOTE_005fROOT_002c-environment-variable">CVS_IGNORE_REMOTE_ROOT,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-client.html#index-CVS_005fPASSFILE_002c-environment-variable">CVS_PASSFILE,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVS_005fRCMD_005fPORT_002c-environment-variable">CVS_RCMD_PORT,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVS_005fRSH_002c-environment-variable">CVS_RSH,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-fork.html#index-CVS_005fSERVER_002c-and-_003afork_003a">CVS_SERVER,
 and :fork:</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-fork.html#Connecting-via-fork">Connecting via 
fork</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-CVS_005fSERVER_002c-environment-variable">CVS_SERVER,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVS_005fSERVER_005fSLEEP_002c-environment-variable">CVS_SERVER_SLEEP,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-CVS_005fSSH_002c-environment-variable">CVS_SSH,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-CVS_005fUSER_002c-environment-variable">CVS_USER, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Date-keyword">Date 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Dates">Dates</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Common-options.html#Common-options">Common 
options</a></td></tr>
+<tr><td></td><td valign="top"><a href="Attic.html#index-Dead-state">Dead 
state</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Attic.html#Attic">Attic</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Decimal-revision-number">Decimal revision 
number</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-DEFAULT-in-commitinfo">DEFAULT in 
commitinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="editinfo.html#index-DEFAULT-in-editinfo">DEFAULT in 
editinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="editinfo.html#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="verifymsg.html#index-DEFAULT-in-verifymsg">DEFAULT in 
<samp>verifymsg</samp></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="verifymsg.html#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Defining-the-module.html#index-Defining-a-module">Defining a 
module</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Defining-the-module.html#Defining-the-module">Defining the 
module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Intro-administrative-files.html#index-Defining-modules-_0028intro_0029">Defining
 modules (intro)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="modules.html#index-Defining-modules-_0028reference-manual_0029">Defining 
modules (reference manual)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="modules.html#modules">modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Deleting-branch-tags">Deleting branch 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Removing-files.html#index-Deleting-files">Deleting 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Removing-files.html#Removing-files">Removing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Deleting-revisions">Deleting 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Sticky-tags.html#index-Deleting-sticky-tags">Deleting sticky 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Deleting-tags">Deleting 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Recursive-behavior.html#index-Descending-directories">Descending 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Recursive-behavior.html#Recursive-behavior">Recursive 
behavior</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Special-Files.html#index-Device-nodes">Device 
nodes</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Special-Files.html#Special-Files">Special Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Viewing-differences.html#index-Diff">Diff</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Viewing-differences.html#Viewing-differences">Viewing 
differences</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="diff.html#index-diff-_0028subcommand_0029">diff 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="diff.html#diff">diff</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Differences_002c-merging">Differences, 
merging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-directories.html#index-Directories_002c-moving">Directories, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-directories.html#Moving-directories">Moving 
directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Removing-directories.html#index-Directories_002c-removing">Directories, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Removing-directories.html#Removing-directories">Removing 
directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Recursive-behavior.html#index-Directory_002c-descending">Directory, 
descending</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Recursive-behavior.html#Recursive-behavior">Recursive 
behavior</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-repositories.html#index-Disjoint-repositories">Disjoint 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-repositories.html#Multiple-repositories">Multiple 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="loginfo.html#index-Distributing-log-messages">Distributing log 
messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="loginfo.html#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-driver_002ec-_0028merge-example_0029">driver.c
 (merge example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Editing-files.html#index-edit-_0028subcommand_0029">edit 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Editing-files.html#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="editinfo.html#index-editinfo-_0028admin-file_0029">editinfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="editinfo.html#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Intro-administrative-files.html#index-Editing-administrative-files">Editing
 administrative files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Defining-the-module.html#index-Editing-the-modules-file">Editing the 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Defining-the-module.html#Defining-the-module">Defining the 
module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Editor_002c-avoiding-invocation-of">Editor, 
avoiding invocation of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Committing-your-changes.html#index-EDITOR_002c-environment-variable">EDITOR,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-EDITOR_002c-environment-variable-1">EDITOR,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-EDITOR_002c-internal-variable">EDITOR, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-EDITOR_002c-overriding">EDITOR, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="editinfo.html#index-Editor_002c-specifying-per-module">Editor, specifying 
per module</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="editinfo.html#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Watch-information.html#index-editors-_0028subcommand_0029">editors 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Watch-information.html#Watch-information">Watch information</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-emerge">emerge</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Conflicts-example.html#Conflicts-example">Conflicts 
example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Emptydir_002c-in-CVSROOT-directory">Emptydir,
 in CVSROOT directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Encryption">Encryption</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Global-options.html#Global-options">Global 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Entries-file_002c-in-CVS-directory">Entries
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Entries_002eBackup-file_002c-in-CVS-directory">Entries.Backup
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Entries_002eLog-file_002c-in-CVS-directory">Entries.Log
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Entries_002eStatic-file_002c-in-CVS-directory">Entries.Static
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-Environment-variables">Environment 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-environment-variables_002c-passed-to-administrative-files">environment
 variables, passed to administrative files</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Errors_002c-reporting">Errors, 
reporting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="A-sample-session.html#index-Example-of-a-work_002dsession">Example of a 
work-session</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="A-sample-session.html#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Example-of-merge">Example of 
merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-a-branch.html#index-Example_002c-branch-merge">Example, branch 
merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-a-branch.html#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Excluding-directories.html#index-Excluding-directories_002c-in-modules-file">Excluding
 directories, in modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Excluding-directories.html#Excluding-directories">Excluding 
directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-Exit-status_002c-of-commitinfo">Exit status, of 
commitinfo</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Exit-status.html#index-Exit-status_002c-of-CVS">Exit status, of 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Exit-status.html#Exit-status">Exit status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Error-messages.html#index-Exit-status_002c-of-editor">Exit status, of 
editor</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Error-messages.html#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="verifymsg.html#index-Exit-status_002c-of-verifymsg">Exit status, of 
<samp>verifymsg</samp></a>:</td><td>&nbsp;</td><td valign="top"><a 
href="verifymsg.html#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="export.html#index-export-_0028subcommand_0029">export 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="export.html#export">export</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-Export-program">Export 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-the-source.html#index-Fetching-source">Fetching 
source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-the-source.html#Getting-the-source">Getting the 
source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-File-had-conflicts-on-merge">File had conflicts on 
merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-File-locking">File 
locking</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-File-permissions_002c-general">File 
permissions, general</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Windows-permissions.html#index-File-permissions_002c-Windows_002dspecific">File
 permissions, Windows-specific</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Windows-permissions.html#Windows-permissions">Windows 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-File-status">File 
status</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-files.html#index-Files_002c-moving">Files, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-files.html#Moving-files">Moving files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Administrative-files.html#index-Files_002c-reference-manual">Files, 
reference manual</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Administrative-files.html#Administrative-files">Administrative 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Fixing-a-log-message">Fixing a log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Forcing-a-tag-match">Forcing a tag 
match</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-fork.html#index-fork_002c-access-method">fork, access 
method</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-fork.html#Connecting-via-fork">Connecting via 
fork</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="rcsinfo.html#index-Form-for-log-message">Form for log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="rcsinfo.html#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Structure.html#index-Format-of-CVS-commands">Format of CVS 
commands</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Structure.html#Structure">Structure</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="A-sample-session.html#index-Getting-started">Getting 
started</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="A-sample-session.html#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-the-source.html#index-Getting-the-source">Getting the 
source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-the-source.html#Getting-the-source">Getting the 
source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="cvsignore.html#index-Global-cvsignore">Global 
cvsignore</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="cvsignore.html#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Global-options">Global 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Group_002c-UNIX-file-permissions_002c-in-repository">Group,
 UNIX file permissions, in repository</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="File-permissions.html#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification">gserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1">gserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="GSSAPI-authenticated.html#index-GSSAPI">GSSAPI</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="GSSAPI-authenticated.html#GSSAPI-authenticated">GSSAPI 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Gzip">Gzip</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Global-options.html#Global-options">Global 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Invoking-CVS.html#index-Gzip-1">Gzip</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-H">H</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Special-Files.html#index-Hard-links">Hard 
links</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Special-Files.html#Special-Files">Special Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-HEAD_002c-as-reserved-tag-name">HEAD, as reserved tag 
name</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-HEAD_002c-special-tag">HEAD, special 
tag</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Header-keyword">Header 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="history.html#index-history-_0028subcommand_0029">history 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="history.html#history">history</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="History-browsing.html#index-History-browsing">History 
browsing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="History-browsing.html#History-browsing">History browsing</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="history-file.html#index-History-file">History 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="history-file.html#history-file">history file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository-files.html#index-History-files">History 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository-files.html#Repository-files">Repository files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-History-of-CVS">History of 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-HOME_002c-environment-variable">HOME, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-HOMEDRIVE_002c-environment-variable">HOMEDRIVE,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-HOMEPATH_002c-environment-variable">HOMEPATH,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="Keyword-list.html#index-Id-keyword">Id 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Using-keywords.html#index-Ident-_0028shell-command_0029">Ident (shell 
command)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Using-keywords.html#Using-keywords">Using keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Identifying-a-branch">Identifying a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-substitution.html#index-Identifying-files">Identifying 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="cvsignore.html#index-Ignored-files">Ignored 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="cvsignore.html#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-IgnoreUnknownConfigKeys_002c-in-CVSROOT_002fconfig">IgnoreUnknownConfigKeys,
 in CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="cvsignore.html#index-Ignoring-files">Ignoring 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="cvsignore.html#cvsignore">cvsignore</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="import.html#index-import-_0028subcommand_0029">import 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="import.html#import">import</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="From-files.html#index-Importing-files">Importing 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="From-files.html#From-files">From files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="From-other-version-control-systems.html#index-Importing-files_002c-from-other-version-control-systems">Importing
 files, from other version control systems</a>:</td><td>&nbsp;</td><td 
valign="top"><a 
href="From-other-version-control-systems.html#From-other-version-control-systems">From
 other version control systems</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="First-import.html#index-Importing-modules">Importing 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="First-import.html#First-import">First import</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="#index-Index">Index</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="#Index">Index</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-inetd_002c-configuring-for-pserver">inetd,
 configuring for pserver</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Trigger-Scripts.html#index-Info-files">Info 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Trigger-Scripts.html#Trigger-Scripts">Trigger Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="syntax.html#index-Info-files-_0028syntax_0029">Info files 
(syntax)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="syntax.html#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Trigger-Script-Security.html#index-Info-files_002c-security">Info files, 
security</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Trigger-Script-Security.html#Trigger-Script-Security">Trigger Script 
Security</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Informing-others.html#index-Informing-others">Informing 
others</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Informing-others.html#Informing-others">Informing others</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-repository.html#index-init-_0028subcommand_0029">init 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Installed-images-_0028VMS_0029">Installed 
images (VMS)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-Internal-variables">Internal 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-Introduction-to-CVS">Introduction to 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Invoking-CVS.html#index-Invoking-CVS">Invoking 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="History-browsing.html#index-Isolation">Isolation</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="History-browsing.html#History-browsing">History 
browsing</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-J">J</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-a-branch.html#index-Join">Join</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Merging-a-branch.html#Merging-a-branch">Merging a 
branch</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keeping-a-checked-out-copy.html#index-Keeping-a-checked-out-copy">Keeping 
a checked out copy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy">Keeping a 
checked out copy</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="GSSAPI-authenticated.html#index-Kerberos_002c-using-_003agserver_003a">Kerberos,
 using :gserver:</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated">GSSAPI 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Kerberos-authenticated.html#index-Kerberos_002c-using-_003akserver_003a">Kerberos,
 using :kserver:</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-Kerberos_002c-using-kerberized-rsh">Kerberos,
 using kerberized rsh</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-substitution.html#index-Keyword-expansion">Keyword 
expansion</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Keyword-List">Keyword 
List</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-substitution.html#index-Keyword-substitution">Keyword 
substitution</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-and-keywords.html#index-Keyword-substitution_002c-and-merging">Keyword
 substitution, and merging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-and-keywords.html#Merging-and-keywords">Merging and 
keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Substitution-modes.html#index-Keyword-substitution_002c-changing-modes">Keyword
 substitution, changing modes</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Substitution-modes.html#Substitution-modes">Substitution 
modes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Substitution-modes.html#index-Kflag">Kflag</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Substitution-modes.html#Substitution-modes">Substitution 
modes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Kerberos-authenticated.html#index-kinit">kinit</a>:</td><td>&nbsp;</td><td
 valign="top"><a 
href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Known-bugs-in-this-manual-or-CVS">Known bugs in this 
manual or CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification">kserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1">kserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-Layout-of-repository">Layout of 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Left_002dhand-options">Left-hand 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Linear-development">Linear 
development</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="import-output.html#index-Link_002c-symbolic_002c-importing">Link, 
symbolic, importing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="import-output.html#import-output">import output</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-List_002c-mailing-list">List, mailing 
list</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Locally-Added">Locally 
Added</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Locally-Modified">Locally 
Modified</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Locally-Removed">Locally 
Removed</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-LockDir_002c-in-CVSROOT_002fconfig">LockDir, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Locker-keyword">Locker 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-Locking-files">Locking 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Backing-up.html#index-Locks_002c-cvs_002c-and-backups">Locks, cvs, and 
backups</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Backing-up.html#Backing-up">Backing up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Concurrency.html#index-Locks_002c-cvs_002c-introduction">Locks, cvs, 
introduction</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Concurrency.html#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Locks.html#index-Locks_002c-cvs_002c-technical-details">Locks, cvs, 
technical details</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Locks.html#Locks">Locks</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="log.html#index-log-_0028subcommand_0029">log 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="log.html#log">log</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="history-file.html#index-Log-information_002c-saving">Log information, 
saving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="history-file.html#history-file">history file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Log-keyword">Log 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Committing-your-changes.html#index-Log-message-entry">Log message 
entry</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="rcsinfo.html#index-Log-message-template">Log message 
template</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="rcsinfo.html#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Log-message_002c-correcting">Log message, 
correcting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="verifymsg.html#index-Log-message_002c-verifying">Log message, 
verifying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="verifymsg.html#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a href="loginfo.html#index-Log-messages">Log 
messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="loginfo.html#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="editinfo.html#index-Log-messages_002c-editing">Log messages, 
editing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="editinfo.html#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-LogHistory_002c-in-CVSROOT_002fconfig">LogHistory, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-client.html#index-Login-_0028subcommand_0029">Login
 (subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="loginfo.html#index-loginfo-_0028admin-file_0029">loginfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="loginfo.html#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-LOGNAME_002c-environment-variable">LOGNAME, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-client.html#index-Logout-_0028subcommand_0029">Logout
 (subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Informing-others.html#index-Mail_002c-automatic-mail-on-commit">Mail, 
automatic mail on commit</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Informing-others.html#Informing-others">Informing others</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-Mailing-list">Mailing 
list</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="loginfo.html#index-Mailing-log-messages">Mailing log 
messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="loginfo.html#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Main-trunk-and-branches">Main trunk and 
branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Builds.html#index-make">make</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Builds.html#Builds">Builds</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-repositories.html#index-Many-repositories">Many 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-repositories.html#Multiple-repositories">Multiple 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Markers_002c-conflict">Markers, 
conflict</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Merge_002c-an-example">Merge, an 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-a-branch.html#index-Merge_002c-branch-example">Merge, branch 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-a-branch.html#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Merging">Merging</a>:</td><td>&nbsp;</td><td
 valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-a-branch.html#index-Merging-a-branch">Merging a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-a-branch.html#Merging-a-branch">Merging a branch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Updating-a-file.html#index-Merging-a-file">Merging a 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Updating-a-file.html#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Merging-two-revisions">Merging two 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-and-keywords.html#index-Merging_002c-and-keyword-substitution">Merging,
 and keyword substitution</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-and-keywords.html#Merging-and-keywords">Merging and 
keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Error-messages.html#index-mkmodules">mkmodules</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Error-messages.html#Error-messages">Error 
messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Modifications_002c-copying-between-branches">Modifications,
 copying between branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-Module-status">Module 
status</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Defining-the-module.html#index-Module_002c-defining">Module, 
defining</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Defining-the-module.html#Defining-the-module">Defining the 
module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="modules.html#index-Modules-_0028admin-file_0029">Modules (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="modules.html#modules">modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Intro-administrative-files.html#index-Modules-file">Modules 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-program-options.html#index-Modules-file-program-options">Modules 
file program options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-program-options.html#Module-program-options">Module program 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Defining-the-module.html#index-Modules-file_002c-changing">Modules file, 
changing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Defining-the-module.html#Defining-the-module">Defining the 
module</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="CVSROOT-storage.html#index-modules_002edb">modules.db</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="CVSROOT-storage.html#CVSROOT-storage">CVSROOT 
storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="CVSROOT-storage.html#index-modules_002edir">modules.dir</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="CVSROOT-storage.html#CVSROOT-storage">CVSROOT 
storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="CVSROOT-storage.html#index-modules_002epag">modules.pag</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="CVSROOT-storage.html#CVSROOT-storage">CVSROOT 
storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branches-motivation.html#index-Motivation-for-branches">Motivation for 
branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branches-motivation.html#Branches-motivation">Branches 
motivation</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-a-repository.html#index-Moving-a-repository">Moving a 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-a-repository.html#Moving-a-repository">Moving a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Moving-branch-tags">Moving branch 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-directories.html#index-Moving-directories">Moving 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-directories.html#Moving-directories">Moving 
directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-files.html#index-Moving-files">Moving 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-files.html#Moving-files">Moving files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Moving-tags">Moving 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-Multiple-developers">Multiple 
developers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-repositories.html#index-Multiple-repositories">Multiple 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-repositories.html#Multiple-repositories">Multiple 
repositories</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Name-keyword">Name 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-Name_002c-symbolic-_0028tag_0029">Name, symbolic 
(tag)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Needs-Checkout">Needs 
Checkout</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Needs-Merge">Needs 
Merge</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Needs-Patch">Needs 
Patch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-Newsgroups">Newsgroups</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="What-is-CVS_003f.html#What-is-CVS_003f">What is 
CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-Notified.html#index-notify-_0028admin-file_0029">notify (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-Notified.html#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Notify-file_002c-in-CVS-directory">Notify
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Notify_002etmp-file_002c-in-CVS-directory">Notify.tmp
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Number_002c-branch">Number, 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branches-and-revisions.html#index-Number_002c-branch-1">Number, 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branches-and-revisions.html#Branches-and-revisions">Branches and 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Number_002c-revision_002d">Number, 
revision-</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="_007e_002f_002ecvsrc.html#index-Option-defaults">Option 
defaults</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc">~/.cvsrc</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Options_002c-global">Options, 
global</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-Options_002c-in-modules-file">Options, in 
modules file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Outdating-revisions">Outdating 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Updating-a-file.html#index-Overlap">Overlap</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Updating-a-file.html#Updating-a-file">Updating a 
file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Overriding-CVSREAD">Overriding 
CVSREAD</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Overriding-CVSROOT">Overriding 
CVSROOT</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Overriding-EDITOR">Overriding 
EDITOR</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Overriding-RCSBIN">Overriding 
RCSBIN</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Overriding-TMPDIR">Overriding 
TMPDIR</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Overview.html#index-Overview">Overview</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Overview.html#Overview">Overview</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Special-Files.html#index-Ownership_002c-saving-in-CVS">Ownership, saving 
in CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Special-Files.html#Special-Files">Special Files</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-repositories.html#index-Parallel-repositories">Parallel 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-repositories.html#Multiple-repositories">Multiple 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-passwd-_0028admin-file_0029">passwd
 (admin file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-client.html#index-Password-client_002c-using">Password
 client, using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-Password-server_002c-setting-up">Password
 server, setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-PATH_002c-environment-variable">PATH, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Per_002ddirectory-sticky-tags_002fdates">Per-directory
 sticky tags/dates</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="editinfo.html#index-Per_002dmodule-editor">Per-module 
editor</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="editinfo.html#editinfo">editinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Permissions_002c-general">Permissions, 
general</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Special-Files.html#index-Permissions_002c-saving-in-CVS">Permissions, 
saving in CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Special-Files.html#Special-Files">Special Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Windows-permissions.html#index-Permissions_002c-Windows_002dspecific">Permissions,
 Windows-specific</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Windows-permissions.html#Windows-permissions">Windows 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="When-to-commit.html#index-Policy">Policy</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="When-to-commit.html#When-to-commit">When to 
commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-port_002c-specifying-for-remote-repositories">port,
 specifying for remote repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-port_002c-specifying-for-remote-repositories-1">port,
 specifying for remote repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="commitinfo.html#index-Precommit-checking">Precommit 
checking</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="commitinfo.html#commitinfo">commitinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification">pserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1">pserver
 (client/server connection method), port 
specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-pserver-_0028subcommand_0029">pserver
 (subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="From-other-version-control-systems.html#index-PVCS_002c-importing-files-from">PVCS,
 importing files from</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="From-other-version-control-systems.html#From-other-version-control-systems">From
 other version control systems</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository-files.html#index-RCS-history-files">RCS history 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository-files.html#Repository-files">Repository files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-RCS-revision-numbers">RCS revision 
numbers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="From-other-version-control-systems.html#index-RCS_002c-importing-files-from">RCS,
 importing files from</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="From-other-version-control-systems.html#From-other-version-control-systems">From
 other version control systems</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-RCS_002dstyle-locking">RCS-style 
locking</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-RCSBIN_002c-in-CVSROOT_002fconfig">RCSBIN, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-RCSBIN_002c-internal-variable">RCSBIN, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-RCSBIN_002c-overriding">RCSBIN, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-RCSfile-keyword">RCSfile 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="rcsinfo.html#index-rcsinfo-_0028admin-file_0029">rcsinfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="rcsinfo.html#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="rdiff.html#index-rdiff-_0028subcommand_0029">rdiff 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="rdiff.html#rdiff">rdiff</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Read_002donly-files_002c-and-_002dr">Read-only 
files, and -r</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-Read_002donly-files_002c-and-CVSREAD">Read-only
 files, and CVSREAD</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Setting-a-watch.html#index-Read_002donly-files_002c-and-watches">Read-only
 files, and watches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Setting-a-watch.html#Setting-a-watch">Setting a watch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Read_002donly-files_002c-in-repository">Read-only
 files, in repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Read_002donly-mode">Read-only 
mode</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Read_002donly-access.html#index-Read_002donly-repository-access">Read-only
 repository access</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Read_002donly-access.html#Read_002donly-access">Read-only 
access</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Read_002donly-access.html#index-readers-_0028admin-file_0029">readers 
(admin file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Read_002donly-access.html#Read_002donly-access">Read-only 
access</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Recursive-behavior.html#index-Recursive-_0028directory-descending_0029">Recursive
 (directory descending)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Recursive-behavior.html#Recursive-behavior">Recursive 
behavior</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Administrative-files.html#index-Reference-manual-_0028files_0029">Reference
 manual (files)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Administrative-files.html#Administrative-files">Administrative 
files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-Reference-manual-for-variables">Reference
 manual for variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Invoking-CVS.html#index-Reference_002c-commands">Reference, 
commands</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="syntax.html#index-Regular-expression-syntax">Regular expression 
syntax</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="syntax.html#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Regular-modules.html#index-Regular-modules">Regular 
modules</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Regular-modules.html#Regular-modules">Regular modules</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="release.html#index-release-_0028subcommand_0029">release 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="release.html#release">release</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Versions-revisions-releases.html#index-Releases_002c-revisions-and-versions">Releases,
 revisions and versions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Versions-revisions-releases.html#Versions-revisions-releases">Versions 
revisions releases</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Cleaning-up.html#index-Releasing-your-working-copy">Releasing your 
working copy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Cleaning-up.html#Cleaning-up">Cleaning up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Remote-repositories">Remote 
repositories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Remote-repositories_002c-port-specification">Remote
 repositories, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-Remote-repositories_002c-port-specification-1">Remote
 repositories, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Removing-files.html#index-Remove-_0028subcommand_0029">Remove 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Removing-files.html#Removing-files">Removing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="remove.html#index-remove-_0028subcommand_0029">remove 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="remove.html#remove">remove</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Removing-a-change">Removing a 
change</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Removing-branch-tags">Removing branch 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Removing-directories.html#index-Removing-directories">Removing 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Removing-directories.html#Removing-directories">Removing 
directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Removing-files.html#index-Removing-files">Removing 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Removing-files.html#Removing-files">Removing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Removing-tags">Removing 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Cleaning-up.html#index-Removing-your-working-copy">Removing your working 
copy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Cleaning-up.html#Cleaning-up">Cleaning up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-directories.html#index-Renaming-directories">Renaming 
directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-directories.html#Moving-directories">Moving 
directories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-files.html#index-Renaming-files">Renaming 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-files.html#Moving-files">Moving files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Renaming-tags">Renaming 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Replacing-a-log-message">Replacing a log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Reporting-bugs">Reporting 
bugs</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-repositories.html#index-Repositories_002c-multiple">Repositories,
 multiple</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-repositories.html#Multiple-repositories">Multiple 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Repositories_002c-remote">Repositories, 
remote</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Repositories_002c-remote_002c-port-specification">Repositories,
 remote, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-Repositories_002c-remote_002c-port-specification-1">Repositories,
 remote, port specification</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-Repository-_0028intro_0029">Repository 
(intro)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Repository-file_002c-in-CVS-directory">Repository
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Backing-up.html#index-Repository_002c-backing-up">Repository, backing 
up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Backing-up.html#Backing-up">Backing up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-Repository_002c-example">Repository, 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository-storage.html#index-Repository_002c-how-data-is-stored">Repository,
 how data is stored</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository-storage.html#Repository-storage">Repository 
storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Moving-a-repository.html#index-Repository_002c-moving">Repository, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Moving-a-repository.html#Moving-a-repository">Moving a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-repository.html#index-Repository_002c-setting-up">Repository, 
setting up</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-RereadLogAfterVerify_002c-in-CVSROOT_002fconfig">RereadLogAfterVerify,
 in CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-Reserved-checkouts">Reserved 
checkouts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Sticky-tags.html#index-Resetting-sticky-tags">Resetting sticky 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Conflicts-example.html#index-Resolving-a-conflict">Resolving a 
conflict</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Restoring-old-version-of-removed-file">Restoring
 old version of removed file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Resurrecting-old-version-of-dead-file">Resurrecting
 old version of dead file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Accessing-branches.html#index-Retrieve-a-branch">Retrieve a 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Accessing-branches.html#Accessing-branches">Accessing 
branches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-Retrieving-an-old-revision-using-tags">Retrieving an old 
revision using tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Editing-files.html#index-Reverting-to-repository-version">Reverting to 
repository version</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Editing-files.html#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Revision-keyword">Revision 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-management.html#index-Revision-management">Revision 
management</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-management.html#Revision-management">Revision 
management</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Revision-numbers">Revision 
numbers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branches-and-revisions.html#index-Revision-numbers-_0028branches_0029">Revision
 numbers (branches)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branches-and-revisions.html#Branches-and-revisions">Branches and 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Revision-numbers.html#index-Revision-tree">Revision 
tree</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branching-and-merging.html#index-Revision-tree_002c-making-branches">Revision
 tree, making branches</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Revisions_002c-merging-differences-between">Revisions,
 merging differences between</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Versions-revisions-releases.html#index-Revisions_002c-versions-and-releases">Revisions,
 versions and releases</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Versions-revisions-releases.html#Versions-revisions-releases">Versions 
revisions releases</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Right_002dhand-options">Right-hand 
options</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Specifying-a-repository.html#index-Root-file_002c-in-CVS-directory">Root 
file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-rsh">rsh</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting 
via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-rsh-replacements-_0028Kerberized_002c-SSH_002c-_0026c_0029">rsh
 replacements (Kerberized, SSH, &amp;c)</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting 
via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tagging-by-date_002ftag.html#index-rtag-_0028subcommand_0029">rtag 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-branch.html#index-rtag_002c-creating-a-branch-using">rtag, 
creating a branch using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-branch.html#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="admin-options.html#index-Saving-space">Saving 
space</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="admin-options.html#admin-options">admin options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="From-other-version-control-systems.html#index-SCCS_002c-importing-files-from">SCCS,
 importing files from</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="From-other-version-control-systems.html#From-other-version-control-systems">From
 other version control systems</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Security_002c-file-permissions-in-repository">Security,
 file permissions in repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="GSSAPI-authenticated.html#index-Security_002c-GSSAPI">Security, 
GSSAPI</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated">GSSAPI 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Kerberos-authenticated.html#index-Security_002c-Kerberos">Security, 
Kerberos</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-security.html#index-Security_002c-of-pserver">Security,
 of pserver</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-security.html#Password-authentication-security">Password
 authentication security</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Security_002c-setuid">Security, 
setuid</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Remote-repositories.html#index-Server_002c-CVS">Server, 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Server-temporary-directory.html#index-Server_002c-temporary-directories">Server,
 temporary directories</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Server-temporary-directory.html#Server-temporary-directory">Server 
temporary directory</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Setgid">Setgid</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="File-permissions.html#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-repository.html#index-Setting-up-a-repository">Setting up a 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Setuid">Setuid</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="File-permissions.html#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-Source-keyword">Source 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-Source_002c-getting-CVS-source">Source, 
getting CVS source</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-the-source.html#index-Source_002c-getting-from-CVS">Source, 
getting from CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-the-source.html#Getting-the-source">Getting the 
source</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Special-Files.html#index-Special-files">Special 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Special-Files.html#Special-Files">Special Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Specifying-dates">Specifying 
dates</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Informing-others.html#index-Spreading-information">Spreading 
information</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Informing-others.html#Informing-others">Informing others</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-ssh">ssh</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting 
via rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Connecting-via-rsh.html#index-SSH-_0028rsh-replacement_0029">SSH (rsh 
replacement)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via 
rsh</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Starting-a-new-project.html#index-Starting-a-project-with-CVS">Starting a 
project with CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Starting-a-new-project.html#Starting-a-new-project">Starting a new 
project</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keyword-list.html#index-State-keyword">State 
keyword</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keyword-list.html#Keyword-list">Keyword list</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Status-of-a-file">Status of a 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-Status-of-a-module">Status of a 
module</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Sticky-tags.html#index-Sticky-date">Sticky 
date</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Sticky-tags.html#index-Sticky-tags">Sticky 
tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Sticky-tags.html#index-Sticky-tags_002c-resetting">Sticky tags, 
resetting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Sticky-tags_002fdates_002c-per_002ddirectory">Sticky
 tags/dates, per-directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="loginfo.html#index-Storing-log-messages">Storing log 
messages</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="loginfo.html#loginfo">loginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Stream-authentication">Stream 
authentication</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Structure.html#index-Structure">Structure</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Structure.html#Structure">Structure</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Recursive-behavior.html#index-Subdirectories">Subdirectories</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="Recursive-behavior.html#Recursive-behavior">Recursive 
behavior</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Support_002c-getting-CVS-support">Support, getting CVS 
support</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="import-output.html#index-Symbolic-link_002c-importing">Symbolic link, 
importing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="import-output.html#import-output">import output</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Special-Files.html#index-Symbolic-links">Symbolic 
links</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Special-Files.html#Special-Files">Special Files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-Symbolic-name-_0028tag_0029">Symbolic name 
(tag)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="syntax.html#index-Syntax-of-info-files">Syntax of info 
files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="syntax.html#syntax">syntax</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-SystemAuth_002c-in-CVSROOT_002fconfig">SystemAuth, in 
CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tagging-the-working-directory.html#index-tag-_0028subcommand_0029">tag 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tagging-the-working-directory.html#Tagging-the-working-directory">Tagging 
the working directory</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Tag-file_002c-in-CVS-directory">Tag 
file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Module-options.html#index-Tag-program">Tag 
program</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Module-options.html#Module-options">Module options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-tag_002c-command_002c-introduction">tag, command, 
introduction</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Creating-a-branch.html#index-tag_002c-creating-a-branch-using">tag, 
creating a branch using</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Creating-a-branch.html#Creating-a-branch">Creating a branch</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tags.html#index-Tag_002c-example">Tag, 
example</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-Tag_002c-retrieving-old-revisions">Tag, retrieving old 
revisions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-Tag_002c-symbolic-name">Tag, symbolic 
name</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="taginfo.html#index-taginfo-_0028admin-file_0029">taginfo (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="taginfo.html#taginfo">taginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tags.html#index-Tags">Tags</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tags.html#Tags">Tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Tags_002c-deleting">Tags, 
deleting</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="taginfo.html#index-Tags_002c-logging">Tags, 
logging</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="taginfo.html#taginfo">taginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Tags_002c-moving">Tags, 
moving</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Modifying-tags.html#index-Tags_002c-renaming">Tags, 
renaming</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Sticky-tags.html#index-Tags_002c-sticky">Tags, 
sticky</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="taginfo.html#index-Tags_002c-verifying">Tags, 
verifying</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="taginfo.html#taginfo">taginfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="A-sample-session.html#index-tc_002c-Trivial-Compiler-_0028example_0029">tc,
 Trivial Compiler (example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="A-sample-session.html#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-Team-of-developers">Team of 
developers</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-TEMP_002c-environment-variable">TEMP, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Working-directory-storage.html#index-Template-file_002c-in-CVS-directory">Template
 file, in CVS directory</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="rcsinfo.html#index-Template-for-log-message">Template for log 
message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="rcsinfo.html#rcsinfo">rcsinfo</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Server-temporary-directory.html#index-Temporary-directories_002c-and-server">Temporary
 directories, and server</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Server-temporary-directory.html#Server-temporary-directory">Server 
temporary directory</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-Temporary-files_002c-location-of">Temporary
 files, location of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tracking-sources.html#index-Third_002dparty-sources">Third-party 
sources</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Time">Time</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Common-options.html#Common-options">Common 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Timezone_002c-in-input">Timezone, in 
input</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="log.html#index-Timezone_002c-in-output">Timezone, in 
output</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="log.html#log">log</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-TMP_002c-environment-variable">TMP, 
environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-TMPDIR_002c-environment-variable">TMPDIR,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-TMPDIR_002c-overriding">TMPDIR, 
overriding</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Global-options.html#Global-options">Global options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-TopLevelAdmin_002c-in-CVSROOT_002fconfig">TopLevelAdmin,
 in CVSROOT/config</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Global-options.html#index-Trace">Trace</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Global-options.html#Global-options">Global 
options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="History-browsing.html#index-Traceability">Traceability</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="History-browsing.html#History-browsing">History 
browsing</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tracking-sources.html#index-Tracking-sources">Tracking 
sources</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Concurrency.html#index-Transactions_002c-atomic_002c-lack-of">Transactions,
 atomic, lack of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Concurrency.html#Concurrency">Concurrency</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Trigger-Scripts.html#index-Trigger-scripts">Trigger 
scripts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Trigger-Scripts.html#Trigger-Scripts">Trigger Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Trigger-Script-Security.html#index-Trigger-scripts_002c-security">Trigger 
scripts, security</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Trigger-Script-Security.html#Trigger-Script-Security">Trigger Script 
Security</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="A-sample-session.html#index-Trivial-Compiler-_0028example_0029">Trivial 
Compiler (example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="A-sample-session.html#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Repository.html#index-Typical-repository">Typical 
repository</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Repository.html#Repository">Repository</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-Umask_002c-for-repository-files">Umask, for 
repository files</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-permissions.html#File-permissions">File permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Merging-two-revisions.html#index-Undoing-a-change">Undoing a 
change</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Editing-files.html#index-unedit-_0028subcommand_0029">unedit 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Editing-files.html#Editing-files">Editing files</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Unknown">Unknown</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-Unreserved-checkouts">Unreserved 
checkouts</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Unresolved-Conflict">Unresolved 
Conflict</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-Up_002dto_002ddate">Up-to-date</a>:</td><td>&nbsp;</td><td
 valign="top"><a href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="update.html#index-update-_0028subcommand_0029">update 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="update.html#update">update</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Updating-a-file.html#index-Update_002c-introduction">Update, 
introduction</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Updating-a-file.html#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-status.html#index-update_002c-to-display-file-status">update, to 
display file status</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="File-status.html#File-status">File status</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Updating-a-file.html#index-Updating-a-file">Updating a 
file</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Updating-a-file.html#Updating-a-file">Updating a file</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-User-aliases">User 
aliases</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-User-variables">User 
variables</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-USER_002c-environment-variable">USER, environment 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-USER_002c-internal-variable">USER, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-Notified.html#index-users-_0028admin-file_0029">users (admin 
file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-Notified.html#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="File-permissions.html#index-val_002dtags-file_002c-and-read_002donly-access-to-projects">val-tags
 file, and read-only access to projects</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="File-permissions.html#File-permissions">File 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Error-messages.html#index-val_002dtags-file_002c-forcing-tags-into">val-tags
 file, forcing tags into</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Error-messages.html#Error-messages">Error messages</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-Variables">Variables</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tracking-sources.html#index-Vendor">Vendor</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Tracking-sources.html#Tracking-sources">Tracking 
sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Tracking-sources.html#index-Vendor-branch">Vendor 
branch</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="verifymsg.html#index-verifymsg-_0028admin-file_0029"><samp>verifymsg</samp>
 (admin file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="verifymsg.html#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="verifymsg.html#index-verifymsg_002c-changing-the-log-message"><samp>verifymsg</samp>,
 changing the log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="verifymsg.html#verifymsg">verifymsg</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="config.html#index-verifymsg_002c-changing-the-log-message-1"><samp>verifymsg</samp>,
 changing the log message</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="config.html#config">config</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Invoking-CVS.html#index-version-_0028subcommand_0029">version 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Compatibility.html#index-Versions_002c-of-CVS">Versions, of 
CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Compatibility.html#Compatibility">Compatibility</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Versions-revisions-releases.html#index-Versions_002c-revisions-and-releases">Versions,
 revisions and releases</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Versions-revisions-releases.html#Versions-revisions-releases">Versions 
revisions releases</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Viewing-differences.html#index-Viewing-differences">Viewing 
differences</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Viewing-differences.html#Viewing-differences">Viewing 
differences</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Committing-your-changes.html#index-VISUAL_002c-environment-variable">VISUAL,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Environment-variables.html#index-VISUAL_002c-environment-variable-1">VISUAL,
 environment variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Variables.html#index-VISUAL_002c-internal-variable">VISUAL, internal 
variable</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Variables.html#Variables">Variables</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-Notified.html#index-watch-add-_0028subcommand_0029">watch add 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-Notified.html#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Setting-a-watch.html#index-watch-off-_0028subcommand_0029">watch off 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Setting-a-watch.html#Setting-a-watch">Setting a watch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Setting-a-watch.html#index-watch-on-_0028subcommand_0029">watch on 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Setting-a-watch.html#Setting-a-watch">Setting a watch</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Getting-Notified.html#index-watch-remove-_0028subcommand_0029">watch 
remove (subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Getting-Notified.html#Getting-Notified">Getting Notified</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Watch-information.html#index-watchers-_0028subcommand_0029">watchers 
(subcommand)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Watch-information.html#Watch-information">Watch information</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Watches.html#index-Watches">Watches</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Watches.html#Watches">Watches</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="First-import.html#index-wdiff-_0028import-example_0029">wdiff (import 
example)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="First-import.html#First-import">First import</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Keeping-a-checked-out-copy.html#index-Web-pages_002c-maintaining-with-CVS">Web
 pages, maintaining with CVS</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy">Keeping a 
checked out copy</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Using-keywords.html#index-What-_0028shell-command_0029">What (shell 
command)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Using-keywords.html#Using-keywords">Using keywords</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Branches-motivation.html#index-What-branches-are-good-for">What branches 
are good for</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Branches-motivation.html#Branches-motivation">Branches 
motivation</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS-not_003f.html#index-What-is-CVS-not_003f">What is CVS 
not?</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS-not_003f.html#What-is-CVS-not_003f">What is CVS 
not?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="What-is-CVS_003f.html#index-What-is-CVS_003f">What is 
CVS?</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="What-is-CVS_003f.html#What-is-CVS_003f">What is CVS?</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="When-to-commit.html#index-When-to-commit">When to 
commit</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="When-to-commit.html#When-to-commit">When to commit</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Windows-permissions.html#index-Windows_002c-and-permissions">Windows, and 
permissions</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Windows-permissions.html#Windows-permissions">Windows 
permissions</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="A-sample-session.html#index-Work_002dsession_002c-example-of">Work-session,
 example of</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="A-sample-session.html#A-sample-session">A sample session</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Multiple-developers.html#index-Working-copy">Working 
copy</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Cleaning-up.html#index-Working-copy_002c-removing">Working copy, 
removing</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Cleaning-up.html#Cleaning-up">Cleaning up</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Wrappers.html#index-Wrappers">Wrappers</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="Wrappers.html#Wrappers">Wrappers</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Read_002donly-access.html#index-writers-_0028admin-file_0029">writers 
(admin file)</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Read_002donly-access.html#Read_002donly-access">Read-only 
access</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="BUGS.html#index-Ximbiot">Ximbiot</a>:</td><td>&nbsp;</td><td 
valign="top"><a href="BUGS.html#BUGS">BUGS</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="Password-authentication-server.html#index-xinetd_002c-configuring-for-pserver">xinetd,
 configuring for pserver</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+<tr><th><a name="Index_cp_letter-Z">Z</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a 
href="Common-options.html#index-Zone_002c-time_002c-in-input">Zone, time, in 
input</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="Common-options.html#Common-options">Common options</a></td></tr>
+<tr><td></td><td valign="top"><a 
href="log.html#index-Zone_002c-time_002c-in-output">Zone, time, in 
output</a>:</td><td>&nbsp;</td><td valign="top"><a 
href="log.html#log">log</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
+</table>
+<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" 
href="#Index_cp_symbol-1"><b>!</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-2"><b>#</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-3"><b>&amp;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-4"><b>-</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-5"><b>.</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-6"><b>/</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-7"><b>:</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-8"><b>&lt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-9"><b>=</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-10"><b>&gt;</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_symbol-11"><b>_</b></a>
+ &nbsp; 
+<br>
+<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a>
+ &nbsp; 
+<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a>
+ &nbsp; 
+</td></tr></table>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="BUGS.html#BUGS" accesskey="p" rel="prev">BUGS</a>, Up: <a 
href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Informing-others.html
===================================================================
RCS file: html_node/Informing-others.html
diff -N html_node/Informing-others.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Informing-others.html     28 Dec 2015 15:57:56 -0000      1.1
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Informing others</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Informing others">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Informing others">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Concurrency.html#Concurrency" rel="next" title="Concurrency">
+<link href="Conflicts-example.html#Conflicts-example" rel="prev" 
title="Conflicts example">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Informing-others"></a>
+<div class="header">
+<p>
+Next: <a href="Concurrency.html#Concurrency" accesskey="n" 
rel="next">Concurrency</a>, Previous: <a 
href="Conflicts-example.html#Conflicts-example" accesskey="p" 
rel="prev">Conflicts example</a>, Up: <a 
href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Informing-others-about-commits"></a>
+<h3 class="section">10.4 Informing others about commits</h3>
+<a name="index-Informing-others"></a>
+<a name="index-Spreading-information"></a>
+<a name="index-Mail_002c-automatic-mail-on-commit"></a>
+
+<p>It is often useful to inform others when you commit a
+new revision of a file.  The <samp>loginfo</samp> file can be
+used to automate this process.
+See <a href="loginfo.html#loginfo">loginfo</a>.  You can use these features of 
<small>CVS</small>
+to, for instance, instruct <small>CVS</small> to mail a
+message to all developers, or post a message to a local
+newsgroup.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Inside.html
===================================================================
RCS file: html_node/Inside.html
diff -N html_node/Inside.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Inside.html       28 Dec 2015 15:57:56 -0000      1.1
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Inside</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Inside">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Inside">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Moving-files.html#Moving-files" rel="up" title="Moving files">
+<link href="Rename-by-copying.html#Rename-by-copying" rel="next" title="Rename 
by copying">
+<link href="Outside.html#Outside" rel="prev" title="Outside">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Inside"></a>
+<div class="header">
+<p>
+Next: <a href="Rename-by-copying.html#Rename-by-copying" accesskey="n" 
rel="next">Rename by copying</a>, Previous: <a href="Outside.html#Outside" 
accesskey="p" rel="prev">Outside</a>, Up: <a 
href="Moving-files.html#Moving-files" accesskey="u" rel="up">Moving files</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Moving-the-history-file"></a>
+<h4 class="subsection">7.4.2 Moving the history file</h4>
+
+<p>This method is more dangerous, since it involves moving
+files inside the repository.  Read this entire section
+before trying it out!
+</p>
+<div class="example">
+<pre class="example">$ cd $CVSROOT/<var>dir</var>
+$ mv <var>old</var>,v <var>new</var>,v
+</pre></div>
+
+<p>Advantages:
+</p>
+<ul>
+<li> The log of changes is maintained intact.
+
+</li><li> The revision numbers are not affected.
+</li></ul>
+
+<p>Disadvantages:
+</p>
+<ul>
+<li> Old releases cannot easily be fetched from the
+repository.  (The file will show up as <var>new</var> even
+in revisions from the time before it was renamed).
+
+</li><li> There is no log information of when the file was renamed.
+
+</li><li> Nasty things might happen if someone accesses the history file
+while you are moving it.  Make sure no one else runs any of the 
<small>CVS</small>
+commands while you move it.
+</li></ul>
+
+
+
+
+</body>
+</html>

Index: html_node/Intro-administrative-files.html
===================================================================
RCS file: html_node/Intro-administrative-files.html
diff -N html_node/Intro-administrative-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Intro-administrative-files.html   28 Dec 2015 15:57:57 -0000      
1.1
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Intro administrative 
files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Intro administrative files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Intro administrative files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Multiple-repositories.html#Multiple-repositories" rel="next" 
title="Multiple repositories">
+<link href="Working-directory-storage.html#Working-directory-storage" 
rel="prev" title="Working directory storage">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Intro-administrative-files"></a>
+<div class="header">
+<p>
+Next: <a href="Multiple-repositories.html#Multiple-repositories" accesskey="n" 
rel="next">Multiple repositories</a>, Previous: <a 
href="Working-directory-storage.html#Working-directory-storage" accesskey="p" 
rel="prev">Working directory storage</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-administrative-files"></a>
+<h3 class="section">2.4 The administrative files</h3>
+<a name="index-Administrative-files-_0028intro_0029"></a>
+<a name="index-Modules-file"></a>
+<a name="index-CVSROOT_002c-module-name"></a>
+<a name="index-Defining-modules-_0028intro_0029"></a>
+
+
+<p>The directory <samp>$CVSROOT/CVSROOT</samp> contains some <em>administrative
+files</em>.  See <a 
href="Administrative-files.html#Administrative-files">Administrative files</a>, 
for a complete description.
+You can use <small>CVS</small> without any of these files, but
+some commands work better when at least the
+<samp>modules</samp> file is properly set up.
+</p>
+<p>The most important of these files is the <samp>modules</samp>
+file.  It defines all modules in the repository.  This
+is a sample <samp>modules</samp> file.
+</p>
+<div class="example">
+<pre class="example">CVSROOT         CVSROOT
+modules         CVSROOT modules
+cvs             gnu/cvs
+rcs             gnu/rcs
+diff            gnu/diff
+tc              yoyodyne/tc
+</pre></div>
+
+<p>The <samp>modules</samp> file is line oriented.  In its
+simplest form each line contains the name of the
+module, whitespace, and the directory where the module
+resides.  The directory is a path relative to
+<code>$CVSROOT</code>.  The last four lines in the example
+above are examples of such lines.
+</p>
+
+<p>The line that defines the module called &lsquo;<samp>modules</samp>&rsquo;
+uses features that are not explained here.
+See <a href="modules.html#modules">modules</a>, for a full explanation of all 
the
+available features.
+</p>
+<a name="Editing-administrative-files"></a>
+<h4 class="subsection">2.4.1 Editing administrative files</h4>
+<a name="index-Editing-administrative-files"></a>
+<a name="index-Administrative-files_002c-editing-them"></a>
+
+<p>You edit the administrative files in the same way that you would edit
+any other module.  Use &lsquo;<samp>cvs checkout CVSROOT</samp>&rsquo; to get 
a working
+copy, edit it, and commit your changes in the normal way.
+</p>
+<p>It is possible to commit an erroneous administrative
+file.  You can often fix the error and check in a new
+revision, but sometimes a particularly bad error in the
+administrative file makes it impossible to commit new
+revisions.  If and when this happens, you can correct
+the problem by temporarily copying a corrected administrative file
+directly into the <code>$CVSROOT/CVSROOT</code> repository directory,
+then committing the same correction via a checkout of the <samp>CVSROOT</samp>
+module.  It is important that the correction also be made via the
+checked out copy, or the next checkout and commit to the
+&lt;code&gt;CVSROOT&lt;/code&gt; module will overwrite the correction that was
+copied directly into the repository, possibly breaking things in such
+a way as to prevent commits again.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Multiple-repositories.html#Multiple-repositories" accesskey="n" 
rel="next">Multiple repositories</a>, Previous: <a 
href="Working-directory-storage.html#Working-directory-storage" accesskey="p" 
rel="prev">Working directory storage</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Invoking-CVS.html
===================================================================
RCS file: html_node/Invoking-CVS.html
diff -N html_node/Invoking-CVS.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Invoking-CVS.html 28 Dec 2015 15:57:57 -0000      1.1
@@ -0,0 +1,1135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Invoking CVS</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Invoking CVS">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Invoking CVS">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Administrative-files.html#Administrative-files" rel="next" 
title="Administrative files">
+<link href="update-output.html#update-output" rel="prev" title="update output">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Invoking-CVS"></a>
+<div class="header">
+<p>
+Next: <a href="Administrative-files.html#Administrative-files" accesskey="n" 
rel="next">Administrative files</a>, Previous: <a 
href="CVS-commands.html#CVS-commands" accesskey="p" rel="prev">CVS 
commands</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Quick-reference-to-CVS-commands"></a>
+<h2 class="appendix">Appendix B Quick reference to CVS commands</h2>
+<a name="index-Command-reference"></a>
+<a name="index-Reference_002c-commands"></a>
+<a name="index-Invoking-CVS"></a>
+
+<p>This appendix describes how to invoke <small>CVS</small>, with
+references to where each command or feature is
+described in detail.  For other references run the
+<code>cvs --help</code> command, or see <a href="Index.html#Index">Index</a>.
+</p>
+<p>A <small>CVS</small> command looks like:
+</p>
+<div class="example">
+<pre class="example">cvs [ <var>global_options</var> ] <var>command</var> [ 
<var>command_options</var> ] [ <var>command_args</var> ]
+</pre></div>
+
+<p>Global options:
+</p>
+<dl compact="compact">
+<dt><code>--allow-root=<var>rootdir</var></code></dt>
+<dd><p>Specify legal <small>CVSROOT</small> directory (server only) (not
+in <small>CVS</small> 1.9 and older).  See <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>.
+</p>
+</dd>
+<dt><code>-a</code></dt>
+<dd><p>Authenticate all communication (client only) (not in <small>CVS</small>
+1.9 and older).  See <a href="Global-options.html#Global-options">Global 
options</a>.
+</p>
+</dd>
+<dt><code>-b</code></dt>
+<dd><p>Specify RCS location (<small>CVS</small> 1.9 and older).  See
+<a href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-d <var>root</var></code></dt>
+<dd><p>Specify the <small>CVSROOT</small>.  See <a 
href="Repository.html#Repository">Repository</a>.
+</p>
+</dd>
+<dt><code>-e <var>editor</var></code></dt>
+<dd><p>Edit messages with <var>editor</var>.  See <a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Do not read the <samp>~/.cvsrc</samp> file.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-H</code></dt>
+<dt><code>--help</code></dt>
+<dd><p>Print a help message.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not change any files.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-Q</code></dt>
+<dd><p>Be really quiet.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Be somewhat quiet.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-r</code></dt>
+<dd><p>Make new working files read-only.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-s <var>variable</var>=<var>value</var></code></dt>
+<dd><p>Set a user variable.  See <a 
href="Variables.html#Variables">Variables</a>.
+</p>
+</dd>
+<dt><code>-T <var>tempdir</var></code></dt>
+<dd><p>Put temporary files in <var>tempdir</var>.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Trace <small>CVS</small> execution.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-v</code></dt>
+<dt><code>--version</code></dt>
+<dd><p>Display version and copyright information for <small>CVS</small>.
+</p>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Make new working files read-write.  See <a 
href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-x</code></dt>
+<dd><p>Encrypt all communication (client only).
+See <a href="Global-options.html#Global-options">Global options</a>.
+</p>
+</dd>
+<dt><code>-z <var>gzip-level</var></code></dt>
+<dd><a name="index-Compression-1"></a>
+<a name="index-Gzip-1"></a>
+<p>Set the compression level (client only).
+See <a href="Global-options.html#Global-options">Global options</a>.
+</p></dd>
+</dl>
+
+<p>Keyword expansion modes (see <a 
href="Substitution-modes.html#Substitution-modes">Substitution modes</a>):
+</p>
+<div class="example">
+<pre class="example">-kkv  $<i></i>Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp 
$
+-kkvl $<i></i>Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+-kk   $<i></i>Id$
+-kv   file1,v 1.1 1993/12/09 03:21:13 joe Exp
+-ko   <i>no expansion</i>
+-kb   <i>no expansion, file is binary</i>
+</pre></div>
+
+<p>Keywords (see <a href="Keyword-list.html#Keyword-list">Keyword list</a>):
+</p>
+<div class="example">
+<pre class="example">$<i></i>Author: joe $
+$<i></i>Date: 1993/12/09 03:21:13 $
+$<i></i>Header: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+$<i></i>Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
+$<i></i>Locker: harry $
+$<i></i>Name: snapshot_1_14 $
+$<i></i>RCSfile: file1,v $
+$<i></i>Revision: 1.1 $
+$<i></i>Source: /home/files/file1,v $
+$<i></i>State: Exp $
+$<i></i>Log: file1,v $
+Revision 1.1  1993/12/09 03:30:17  joe
+Initial revision
+
+</pre></div>
+
+<p>Commands, command options, and command arguments:
+</p>
+<dl compact="compact">
+<dt><code>add [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Add a new file/directory.  See <a 
href="Adding-files.html#Adding-files">Adding files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Set keyword expansion.
+</p>
+</dd>
+<dt><code>-m <var>msg</var></code></dt>
+<dd><p>Set file description.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>admin [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Administration of history files in the repository.  See
+<a href="admin.html#admin">admin</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b[<var>rev</var>]</code></dt>
+<dd><p>Set default branch.  See <a 
href="Reverting-local-changes.html#Reverting-local-changes">Reverting local 
changes</a>.
+</p>
+</dd>
+<dt><code>-c<var>string</var></code></dt>
+<dd><p>Set comment leader.
+</p>
+</dd>
+<dt><code>-k<var>subst</var></code></dt>
+<dd><p>Set keyword substitution.  See <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-l[<var>rev</var>]</code></dt>
+<dd><p>Lock revision <var>rev</var>, or latest revision.
+</p>
+</dd>
+<dt><code>-m<var>rev</var>:<var>msg</var></code></dt>
+<dd><p>Replace the log message of revision <var>rev</var> with
+<var>msg</var>.
+</p>
+</dd>
+<dt><code>-o<var>range</var></code></dt>
+<dd><p>Delete revisions from the repository.  See
+<a href="admin-options.html#admin-options">admin options</a>.
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Run quietly; do not print diagnostics.
+</p>
+</dd>
+<dt><code>-s<var>state</var>[:<var>rev</var>]</code></dt>
+<dd><p>Set the state.  See <a href="admin-options.html#admin-options">admin 
options</a> for more information on possible
+states.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Set file description from standard input.
+</p>
+</dd>
+<dt><code>-t<var>file</var></code></dt>
+<dd><p>Set file description from <var>file</var>.
+</p>
+</dd>
+<dt><code>-t-<var>string</var></code></dt>
+<dd><p>Set file description to <var>string</var>.
+</p>
+</dd>
+<dt><code>-u[<var>rev</var>]</code></dt>
+<dd><p>Unlock revision <var>rev</var>, or latest revision.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>annotate [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Show last revision where each line was modified.  See
+<a href="annotate.html#annotate">annotate</a>.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Annotate the most recent revision no later than
+<var>date</var>.  See <a href="Common-options.html#Common-options">Common 
options</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Force annotation of binary files.  (Without this option,
+binary files are skipped with a message.)
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Annotate revision <var>tag</var>.  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>checkout [<var>options</var>] <var>modules</var>&hellip;</code></dt>
+<dd><p>Get a copy of the sources.  See <a 
href="checkout.html#checkout">checkout</a>.
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags/date/options.  See <a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a> and <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Output the module database.  See <a 
href="checkout-options.html#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Check out revisions as of <var>date</var> (is sticky).  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Check out into <var>dir</var>.  See <a 
href="checkout-options.html#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-j <var>rev</var></code></dt>
+<dd><p>Merge in changes.  See <a 
href="checkout-options.html#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Use <var>kflag</var> keyword expansion.  See
+<a href="Substitution-modes.html#Substitution-modes">Substitution modes</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Don&rsquo;t &ldquo;shorten&rdquo; module paths if -d specified.  See
+<a href="checkout-options.html#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run module program (if any).  See <a 
href="checkout-options.html#checkout-options">checkout options</a>.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a 
href="Moving-directories.html#Moving-directories">Moving directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Check out files to standard output (avoids
+stickiness).  See <a href="checkout-options.html#checkout-options">checkout 
options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Checkout revision <var>tag</var> (is sticky).  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Like -c, but include module status.  See <a 
href="checkout-options.html#checkout-options">checkout options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>commit [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Check changes into the repository.  See <a 
href="commit.html#commit">commit</a>.
+</p>
+<dl compact="compact">
+<dt><code>-F <var>file</var></code></dt>
+<dd><p>Read log message from <var>file</var>.  See <a 
href="commit-options.html#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Force the file to be committed; disables recursion.
+See <a href="commit-options.html#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-m <var>msg</var></code></dt>
+<dd><p>Use <var>msg</var> as log message.  See <a 
href="commit-options.html#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run module program (if any).  See <a 
href="commit-options.html#commit-options">commit options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Commit to <var>rev</var>.  See <a 
href="commit-options.html#commit-options">commit options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>diff [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Show differences between revisions.  See <a 
href="diff.html#diff">diff</a>.
+In addition to the options shown below, accepts a wide
+variety of options to control output style, for example
+&lsquo;<samp>-c</samp>&rsquo; for context diffs.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date1</var></code></dt>
+<dd><p>Diff revision for date against working file.  See
+<a href="diff-options.html#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date2</var></code></dt>
+<dd><p>Diff <var>rev1</var>/<var>date1</var> against <var>date2</var>.  See
+<a href="diff-options.html#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Include diffs for added and removed files.  See
+<a href="diff-options.html#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev1</var></code></dt>
+<dd><p>Diff revision for <var>rev1</var> against working file.  See
+<a href="diff-options.html#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev2</var></code></dt>
+<dd><p>Diff <var>rev1</var>/<var>date1</var> against <var>rev2</var>.  See <a 
href="diff-options.html#diff-options">diff options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>edit [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Get ready to edit a watched file.  See <a 
href="Editing-files.html#Editing-files">Editing files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a <var>actions</var></code></dt>
+<dd><p>Specify actions for temporary watch, where
+<var>actions</var> is <code>edit</code>, <code>unedit</code>,
+<code>commit</code>, <code>all</code>, or <code>none</code>.  See
+<a href="Editing-files.html#Editing-files">Editing files</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>editors [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>See who is editing a watched file.  See <a 
href="Watch-information.html#Watch-information">Watch information</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>export [<var>options</var>] <var>modules</var>&hellip;</code></dt>
+<dd><p>Export files from <small>CVS</small>.  See <a 
href="export.html#export">export</a>.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Check out revisions as of <var>date</var>.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Check out into <var>dir</var>.  See <a 
href="export-options.html#export-options">export options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Use <var>kflag</var> keyword expansion.  See
+<a href="Substitution-modes.html#Substitution-modes">Substitution modes</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Don&rsquo;t &ldquo;shorten&rdquo; module paths if -d specified.  See
+<a href="export-options.html#export-options">export options</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run module program (if any).  See <a 
href="export-options.html#export-options">export options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Checkout revision <var>tag</var>.  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>history [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Show repository access history.  See <a 
href="history.html#history">history</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a</code></dt>
+<dd><p>All users (default is self).  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-b <var>str</var></code></dt>
+<dd><p>Back to record with <var>str</var> in module/file/repos
+field.  See <a href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Report on committed (modified) files.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Since <var>date</var>.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-e</code></dt>
+<dd><p>Report on all record types.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Last modified (committed or modified report).  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-m <var>module</var></code></dt>
+<dd><p>Report on <var>module</var> (repeatable).  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-n <var>module</var></code></dt>
+<dd><p>In <var>module</var>.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-o</code></dt>
+<dd><p>Report on checked out modules.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-p <var>repository</var></code></dt>
+<dd><p>In <var>repository</var>.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Since revision <var>rev</var>.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-T</code></dt>
+<dd><p>Produce report on all TAGs.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-t <var>tag</var></code></dt>
+<dd><p>Since tag record placed in history file (by anyone).
+See <a href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-u <var>user</var></code></dt>
+<dd><p>For user <var>user</var> (repeatable).  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Working directory must match.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-x <var>types</var></code></dt>
+<dd><p>Report on <var>types</var>, one or more of
+<code>TOEFWUPCGMAR</code>.  See <a 
href="history-options.html#history-options">history options</a>.
+</p>
+</dd>
+<dt><code>-z <var>zone</var></code></dt>
+<dd><p>Output for time zone <var>zone</var>.  See <a 
href="history-options.html#history-options">history options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>import [<var>options</var>] <var>repository</var> 
<var>vendor-tag</var> <var>release-tags</var>&hellip;</code></dt>
+<dd><p>Import files into <small>CVS</small>, using vendor branches.  See
+<a href="import.html#import">import</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b <var>bra</var></code></dt>
+<dd><p>Import to vendor branch <var>bra</var>.  See
+<a href="Multiple-vendor-branches.html#Multiple-vendor-branches">Multiple 
vendor branches</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Use the file&rsquo;s modification time as the time of
+import.  See <a href="import-options.html#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Set default keyword substitution mode.  See
+<a href="import-options.html#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-m <var>msg</var></code></dt>
+<dd><p>Use <var>msg</var> for log message.  See
+<a href="import-options.html#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-I <var>ign</var></code></dt>
+<dd><p>More files to ignore (! to reset).  See
+<a href="import-options.html#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-W <var>spec</var></code></dt>
+<dd><p>More wrappers.  See <a href="import-options.html#import-options">import 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>init</code></dt>
+<dd><p>Create a <small>CVS</small> repository if it doesn&rsquo;t exist.  See
+<a href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a>.
+</p>
+</dd>
+<dt><code>kserver</code></dt>
+<dd><p>Kerberos authenticated server.
+See <a href="Kerberos-authenticated.html#Kerberos-authenticated">Kerberos 
authenticated</a>.
+</p>
+</dd>
+<dt><code>log [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Print out history information for files.  See <a 
href="log.html#log">log</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Only list revisions on the default branch.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dates</var></code></dt>
+<dd><p>Specify dates (<var>d1</var>&lt;<var>d2</var> for range, <var>d</var> 
for
+latest before).  See <a href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-h</code></dt>
+<dd><p>Only print header.  See <a href="log-options.html#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Do not list tags.  See <a href="log-options.html#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Only print name of RCS file.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-r<var>revs</var></code></dt>
+<dd><p>Only list revisions <var>revs</var>.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-s <var>states</var></code></dt>
+<dd><p>Only list revisions with specified states.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Only print header and descriptive text.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-w<var>logins</var></code></dt>
+<dd><p>Only list revisions checked in by specified logins.  See <a 
href="log-options.html#log-options">log options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>login</code></dt>
+<dd><p>Prompt for password for authenticating server.  See
+<a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a>.
+</p>
+</dd>
+<dt><code>logout</code></dt>
+<dd><p>Remove stored password for authenticating server.  See
+<a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a>.
+</p>
+</dd>
+<dt><code>pserver</code></dt>
+<dd><p>Password authenticated server.
+See <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>.
+</p>
+</dd>
+<dt><code>rannotate [<var>options</var>] 
[<var>modules</var>&hellip;]</code></dt>
+<dd><p>Show last revision where each line was modified.  See
+<a href="annotate.html#annotate">annotate</a>.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Annotate the most recent revision no later than
+<var>date</var>.  See <a href="Common-options.html#Common-options">Common 
options</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Force annotation of binary files.  (Without this option,
+binary files are skipped with a message.)
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Annotate revision <var>tag</var>.  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>rdiff [<var>options</var>] <var>modules</var>&hellip;</code></dt>
+<dd><p>Show differences between releases.  See <a 
href="rdiff.html#rdiff">rdiff</a>.
+</p>
+<dl compact="compact">
+<dt><code>-c</code></dt>
+<dd><p>Context diff output format (default).  See <a 
href="rdiff-options.html#rdiff-options">rdiff options</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Select revisions based on <var>date</var>.  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Select revisions based on <var>rev</var>.  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Short patch - one liner per file.  See <a 
href="rdiff-options.html#rdiff-options">rdiff options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Top two diffs - last change made to the file.  See
+<a href="diff-options.html#diff-options">diff options</a>.
+</p>
+</dd>
+<dt><code>-u</code></dt>
+<dd><p>Unidiff output format.  See <a 
href="rdiff-options.html#rdiff-options">rdiff options</a>.
+</p>
+</dd>
+<dt><code>-V <var>vers</var></code></dt>
+<dd><p>Use RCS Version <var>vers</var> for keyword expansion (obsolete).  See
+<a href="rdiff-options.html#rdiff-options">rdiff options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>release [<var>options</var>] <var>directory</var></code></dt>
+<dd><p>Indicate that a directory is no longer in use.  See
+<a href="release.html#release">release</a>.
+</p>
+<dl compact="compact">
+<dt><code>-d</code></dt>
+<dd><p>Delete the given directory.  See <a 
href="release-options.html#release-options">release options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>remove [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Remove an entry from the repository.  See <a 
href="Removing-files.html#Removing-files">Removing files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-f</code></dt>
+<dd><p>Delete the file before removing it.  See <a 
href="Removing-files.html#Removing-files">Removing files</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>rlog [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Print out history information for modules.  See <a 
href="log.html#log">log</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Only list revisions on the default branch.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-d <var>dates</var></code></dt>
+<dd><p>Specify dates (<var>d1</var>&lt;<var>d2</var> for range, <var>d</var> 
for
+latest before).  See <a href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-h</code></dt>
+<dd><p>Only print header.  See <a href="log-options.html#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Do not list tags.  See <a href="log-options.html#log-options">log 
options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Only print name of RCS file.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-r<var>revs</var></code></dt>
+<dd><p>Only list revisions <var>revs</var>.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-s <var>states</var></code></dt>
+<dd><p>Only list revisions with specified states.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Only print header and descriptive text.  See <a 
href="log-options.html#log-options">log options</a>.
+</p>
+</dd>
+<dt><code>-w<var>logins</var></code></dt>
+<dd><p>Only list revisions checked in by specified logins.  See <a 
href="log-options.html#log-options">log options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>rtag [<var>options</var>] <var>tag</var> 
<var>modules</var>&hellip;</code></dt>
+<dd><p>Add a symbolic tag to a module.
+See <a href="Revisions.html#Revisions">Revisions</a> and <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a</code></dt>
+<dd><p>Clear tag from removed files that would not otherwise
+be tagged.  See <a 
href="Tagging-add_002fremove.html#Tagging-add_002fremove">Tagging 
add/remove</a>.
+</p>
+</dd>
+<dt><code>-b</code></dt>
+<dd><p>Create a branch named <var>tag</var>.  See <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>.
+</p>
+</dd>
+<dt><code>-B</code></dt>
+<dd><p>Used in conjunction with -F or -d, enables movement and deletion of
+branch tags.  Use with extreme caution. 
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Tag revisions as of <var>date</var>.  See <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Delete <var>tag</var>.  See <a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Move <var>tag</var> if it already exists.  See <a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Force a head revision match if tag/date not found.
+See <a href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>No execution of tag program.  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Tag existing tag <var>rev</var>.  See <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>server</code></dt>
+<dd><p>Rsh server.  See <a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via rsh</a>.
+</p>
+</dd>
+<dt><code>status [<var>options</var>] <var>files</var>&hellip;</code></dt>
+<dd><p>Display status information in a working directory.  See
+<a href="File-status.html#File-status">File status</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-v</code></dt>
+<dd><p>Include tag information for file.  See <a 
href="Tags.html#Tags">Tags</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>tag [<var>options</var>] <var>tag</var> 
[<var>files</var>&hellip;]</code></dt>
+<dd><p>Add a symbolic tag to checked out version of files.
+See <a href="Revisions.html#Revisions">Revisions</a> and <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Create a branch named <var>tag</var>.  See <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Check that working files are unmodified.  See
+<a 
href="Tagging-the-working-directory.html#Tagging-the-working-directory">Tagging 
the working directory</a>.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Tag revisions as of <var>date</var>.  See <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Delete <var>tag</var>.  See <a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a>.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Move <var>tag</var> if it already exists.  See <a 
href="Modifying-tags.html#Modifying-tags">Modifying tags</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Force a head revision match if tag/date not found.
+See <a href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Tag existing tag <var>rev</var>.  See <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">Tagging by 
date/tag</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>unedit [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Undo an edit command.  See <a 
href="Editing-files.html#Editing-files">Editing files</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>update [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>Bring work tree in sync with repository.  See
+<a href="update.html#update">update</a>.
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags/date/options.  See <a 
href="Sticky-tags.html#Sticky-tags">Sticky tags</a> and <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-C</code></dt>
+<dd><p>Overwrite locally modified files with clean copies from
+the repository (the modified file is saved in
+<samp>.#<var>file</var>.<var>revision</var></samp>, however).
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Check out revisions as of <var>date</var> (is sticky).  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Create directories.  See <a 
href="update-options.html#update-options">update options</a>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.  See
+<a href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-I <var>ign</var></code></dt>
+<dd><p>More files to ignore (! to reset).  See
+<a href="import-options.html#import-options">import options</a>.
+</p>
+</dd>
+<dt><code>-j <var>rev</var></code></dt>
+<dd><p>Merge in changes.  See <a 
href="update-options.html#update-options">update options</a>.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Use <var>kflag</var> keyword expansion.  See
+<a href="Substitution-modes.html#Substitution-modes">Substitution modes</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a 
href="Moving-directories.html#Moving-directories">Moving directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Check out files to standard output (avoids
+stickiness).  See <a href="update-options.html#update-options">update 
options</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Checkout revision <var>tag</var> (is sticky).  See <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+</dd>
+<dt><code>-W <var>spec</var></code></dt>
+<dd><p>More wrappers.  See <a href="import-options.html#import-options">import 
options</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>version</code></dt>
+<dd><a name="index-version-_0028subcommand_0029"></a>
+
+<p>Display the version of <small>CVS</small> being used.  If the repository
+is remote, display both the client and server versions.
+</p>
+</dd>
+<dt><code>watch [on|off|add|remove] [<var>options</var>] 
[<var>files</var>&hellip;]</code></dt>
+<dd>
+<p>on/off: turn on/off read-only checkouts of files.  See
+<a href="Setting-a-watch.html#Setting-a-watch">Setting a watch</a>.
+</p>
+<p>add/remove: add or remove notification on actions.  See
+<a href="Getting-Notified.html#Getting-Notified">Getting Notified</a>.
+</p>
+<dl compact="compact">
+<dt><code>-a <var>actions</var></code></dt>
+<dd><p>Specify actions for temporary watch, where
+<var>actions</var> is <code>edit</code>, <code>unedit</code>,
+<code>commit</code>, <code>all</code>, or <code>none</code>.  See
+<a href="Editing-files.html#Editing-files">Editing files</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+<dt><code>watchers [<var>options</var>] [<var>files</var>&hellip;]</code></dt>
+<dd><p>See who is watching a file.  See <a 
href="Watch-information.html#Watch-information">Watch information</a>.
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Operate recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p></dd>
+</dl>
+
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Administrative-files.html#Administrative-files" accesskey="n" 
rel="next">Administrative files</a>, Previous: <a 
href="CVS-commands.html#CVS-commands" accesskey="p" rel="prev">CVS 
commands</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Keeping-a-checked-out-copy.html
===================================================================
RCS file: html_node/Keeping-a-checked-out-copy.html
diff -N html_node/Keeping-a-checked-out-copy.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Keeping-a-checked-out-copy.html   28 Dec 2015 15:57:57 -0000      
1.1
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Keeping a checked out 
copy</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Keeping a checked out copy">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Keeping a checked out copy">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="loginfo.html#loginfo" rel="up" title="loginfo">
+<link href="rcsinfo.html#rcsinfo" rel="next" title="rcsinfo">
+<link href="loginfo-example.html#loginfo-example" rel="prev" title="loginfo 
example">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Keeping-a-checked-out-copy"></a>
+<div class="header">
+<p>
+Previous: <a href="loginfo-example.html#loginfo-example" accesskey="p" 
rel="prev">loginfo example</a>, Up: <a href="loginfo.html#loginfo" 
accesskey="u" rel="up">loginfo</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Keeping-a-checked-out-copy-1"></a>
+<h4 class="appendixsubsubsec">C.4.4.2 Keeping a checked out copy</h4>
+
+<a name="index-Keeping-a-checked-out-copy"></a>
+<a name="index-Checked-out-copy_002c-keeping"></a>
+<a name="index-Web-pages_002c-maintaining-with-CVS"></a>
+
+<p>It is often useful to maintain a directory tree which
+contains files which correspond to the latest version
+in the repository.  For example, other developers might
+want to refer to the latest sources without having to
+check them out, or you might be maintaining a web site
+with <small>CVS</small> and want every checkin to cause the files
+used by the web server to be updated.
+</p>
+<p>The way to do this is by having loginfo invoke
+<code>cvs update</code>.  Doing so in the naive way will
+cause a problem with locks, so the <code>cvs update</code>
+must be run in the background.
+Here is an example for unix (this should all be on one line):
+</p>
+<div class="example">
+<pre class="example">^cyclic-pages             (date; cat; (sleep 2; cd 
/u/www/local-docs;
+ cvs -q update -d) &amp;) &gt;&gt; $CVSROOT/CVSROOT/updatelog 2&gt;&amp;1
+</pre></div>
+
+<p>This will cause checkins to repository directories
+starting with <code>cyclic-pages</code> to update the checked
+out tree in <samp>/u/www/local-docs</samp>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Kerberos-authenticated.html
===================================================================
RCS file: html_node/Kerberos-authenticated.html
diff -N html_node/Kerberos-authenticated.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Kerberos-authenticated.html       28 Dec 2015 15:57:57 -0000      
1.1
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Kerberos 
authenticated</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Kerberos authenticated">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Kerberos authenticated">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Remote-repositories.html#Remote-repositories" rel="up" 
title="Remote repositories">
+<link href="Connecting-via-fork.html#Connecting-via-fork" rel="next" 
title="Connecting via fork">
+<link href="GSSAPI-authenticated.html#GSSAPI-authenticated" rel="prev" 
title="GSSAPI authenticated">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Kerberos-authenticated"></a>
+<div class="header">
+<p>
+Next: <a href="Connecting-via-fork.html#Connecting-via-fork" accesskey="n" 
rel="next">Connecting via fork</a>, Previous: <a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated" accesskey="p" 
rel="prev">GSSAPI authenticated</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Direct-connection-with-Kerberos"></a>
+<h4 class="subsection">2.9.5 Direct connection with Kerberos</h4>
+
+<a name="index-Kerberos_002c-using-_003akserver_003a"></a>
+<a name="index-Security_002c-Kerberos"></a>
+<a name="index-_003akserver_003a_002c-setting-up"></a>
+<p>The easiest way to use Kerberos is to use the Kerberos
+<code>rsh</code>, as described in <a 
href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting via rsh</a>.
+The main disadvantage of using rsh is that all the data
+needs to pass through additional programs, so it may be
+slower.  So if you have Kerberos installed you can
+connect via a direct <small>TCP</small> connection,
+authenticating with Kerberos.
+</p>
+<p>This section concerns the Kerberos network security
+system, version 4.  Kerberos version 5 is supported via
+the GSSAPI generic network security interface, as
+described in the previous section.
+</p>
+<p>To do this, <small>CVS</small> needs to be compiled with Kerberos
+support; when configuring <small>CVS</small> it tries to detect
+whether Kerberos is present or you can use the
+<samp>--with-krb4</samp> flag to configure.
+</p>
+<p>The data transmitted is <em>not</em> encrypted by
+default.  Encryption support must be compiled into both
+the client and server; use the
+<samp>--enable-encryption</samp> configure option to turn it
+on.  You must then use the <code>-x</code> global option to
+request encryption.
+</p>
+<a name="index-CVS_005fCLIENT_005fPORT"></a>
+<p>You need to edit <samp>inetd.conf</samp> on the server
+machine to run <code>cvs kserver</code>.  The client uses
+port 1999 by default; if you want to use another port
+specify it in the <code>CVSROOT</code> (see <a 
href="Remote-repositories.html#Remote-repositories">Remote repositories</a>)
+or the <code>CVS_CLIENT_PORT</code> environment variable
+(see <a href="Environment-variables.html#Environment-variables">Environment 
variables</a>) on the client.
+</p>
+<a name="index-kinit"></a>
+<p>When you want to use <small>CVS</small>, get a ticket in the
+usual way (generally <code>kinit</code>); it must be a ticket
+which allows you to log into the server machine.  Then
+you are ready to go:
+</p>
+<div class="example">
+<pre class="example">cvs -d :kserver:faun.example.org:/usr/local/cvsroot 
checkout foo
+</pre></div>
+
+<p>Previous versions of <small>CVS</small> would fall back to a
+connection via rsh; this version will not do so.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Connecting-via-fork.html#Connecting-via-fork" accesskey="n" 
rel="next">Connecting via fork</a>, Previous: <a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated" accesskey="p" 
rel="prev">GSSAPI authenticated</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Keyword-list.html
===================================================================
RCS file: html_node/Keyword-list.html
diff -N html_node/Keyword-list.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Keyword-list.html 28 Dec 2015 15:57:57 -0000      1.1
@@ -0,0 +1,169 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Keyword list</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Keyword list">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Keyword list">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="up" 
title="Keyword substitution">
+<link href="Using-keywords.html#Using-keywords" rel="next" title="Using 
keywords">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="prev" 
title="Keyword substitution">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Keyword-list"></a>
+<div class="header">
+<p>
+Next: <a href="Using-keywords.html#Using-keywords" accesskey="n" 
rel="next">Using keywords</a>, Up: <a 
href="Keyword-substitution.html#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Keyword-List"></a>
+<h3 class="section">12.1 Keyword List</h3>
+<a name="index-Keyword-List"></a>
+
+
+<p>This is a list of the keywords:
+</p>
+<dl compact="compact">
+<dd><a name="index-Author-keyword"></a>
+</dd>
+<dt><code>$<i></i>Author$</code></dt>
+<dd><p>The login name of the user who checked in the revision.
+</p>
+<a name="index-Date-keyword"></a>
+</dd>
+<dt><code>$<i></i>Date$</code></dt>
+<dd><p>The date and time (UTC) the revision was checked in.
+</p>
+<a name="index-Header-keyword"></a>
+</dd>
+<dt><code>$<i></i>Header$</code></dt>
+<dd><p>A standard header containing the full pathname of the
+<small>RCS</small> file, the revision number, the date (UTC), the
+author, the state, and the locker (if locked).  Files
+will normally never be locked when you use <small>CVS</small>.
+</p>
+<a name="index-Id-keyword"></a>
+</dd>
+<dt><code>$<i></i>Id$</code></dt>
+<dd><p>Same as <code>$<i></i>Header$</code>, except that the <small>RCS</small>
+filename is without a path.
+</p>
+<a name="index-Name-keyword"></a>
+</dd>
+<dt><code>$<i></i>Name$</code></dt>
+<dd><p>Tag name used to check out this file.  The keyword is
+expanded only if one checks out with an explicit tag
+name.  For example, when running the command <code>cvs
+co -r first</code>, the keyword expands to &lsquo;<samp>Name: 
first</samp>&rsquo;.
+</p>
+<a name="index-Locker-keyword"></a>
+</dd>
+<dt><code>$<i></i>Locker$</code></dt>
+<dd><p>The login name of the user who locked the revision
+(empty if not locked, which is the normal case unless
+<code>cvs admin -l</code> is in use).
+</p>
+<a name="index-Log-keyword"></a>
+</dd>
+<dt><code>$<i></i>Log$</code></dt>
+<dd><p>The log message supplied during commit, preceded by a
+header containing the <small>RCS</small> filename, the revision
+number, the author, and the date (UTC).  Existing log
+messages are <em>not</em> replaced.  Instead, the new log
+message is inserted after <code>$<i></i>Log:&hellip;$</code>.
+Each new line is prefixed with the same string which
+precedes the <code>$Log</code> keyword.  For example, if the
+file contains:
+</p>
+<div class="example">
+<pre class="example">  /* Here is what people have been up to:
+   *
+   * $<i></i>Log: frob.c,v $
+   * Revision 1.1  1997/01/03 14:23:51  joe
+   * Add the superfrobnicate option
+   *
+   */
+</pre></div>
+
+<p>then additional lines which are added when expanding
+the <code>$Log</code> keyword will be preceded by &lsquo;<samp>   * 
</samp>&rsquo;.
+Unlike previous versions of <small>CVS</small> and <small>RCS</small>, the
+<em>comment leader</em> from the <small>RCS</small> file is not used.
+The <code>$Log</code> keyword is useful for
+accumulating a complete change log in a source file,
+but for several reasons it can be problematic.
+See <a href="Log-keyword.html#Log-keyword">Log keyword</a>.
+</p>
+<a name="index-RCSfile-keyword"></a>
+</dd>
+<dt><code>$<i></i>RCSfile$</code></dt>
+<dd><p>The name of the RCS file without a path.
+</p>
+<a name="index-Revision-keyword"></a>
+</dd>
+<dt><code>$<i></i>Revision$</code></dt>
+<dd><p>The revision number assigned to the revision.
+</p>
+<a name="index-Source-keyword"></a>
+</dd>
+<dt><code>$<i></i>Source$</code></dt>
+<dd><p>The full pathname of the RCS file.
+</p>
+<a name="index-State-keyword"></a>
+</dd>
+<dt><code>$<i></i>State$</code></dt>
+<dd><p>The state assigned to the revision.  States can be
+assigned with <code>cvs admin -s</code>&mdash;see <a 
href="admin-options.html#admin-options">admin options</a>.
+</p>
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Using-keywords.html#Using-keywords" accesskey="n" 
rel="next">Using keywords</a>, Up: <a 
href="Keyword-substitution.html#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Keyword-substitution.html
===================================================================
RCS file: html_node/Keyword-substitution.html
diff -N html_node/Keyword-substitution.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Keyword-substitution.html 28 Dec 2015 15:57:58 -0000      1.1
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Keyword 
substitution</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Keyword substitution">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Keyword substitution">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Keyword-list.html#Keyword-list" rel="next" title="Keyword list">
+<link href="When-to-commit.html#When-to-commit" rel="prev" title="When to 
commit">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Keyword-substitution"></a>
+<div class="header">
+<p>
+Next: <a href="Tracking-sources.html#Tracking-sources" accesskey="n" 
rel="next">Tracking sources</a>, Previous: <a 
href="Revision-management.html#Revision-management" accesskey="p" 
rel="prev">Revision management</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Keyword-substitution-1"></a>
+<h2 class="chapter">12 Keyword substitution</h2>
+<a name="index-Keyword-substitution"></a>
+<a name="index-Keyword-expansion"></a>
+<a name="index-Identifying-files"></a>
+
+
+<p>As long as you edit source files inside a working
+directory you can always find out the state of
+your files via &lsquo;<samp>cvs status</samp>&rsquo; and &lsquo;<samp>cvs 
log</samp>&rsquo;.
+But as soon as you export the files from your
+development environment it becomes harder to identify
+which revisions they are.
+</p>
+<p><small>CVS</small> can use a mechanism known as <em>keyword
+substitution</em> (or <em>keyword expansion</em>) to help
+identifying the files.  Embedded strings of the form
+<code>$<var>keyword</var>$</code> and
+<code>$<var>keyword</var>:&hellip;$</code> in a file are replaced
+with strings of the form
+<code>$<var>keyword</var>:<var>value</var>$</code> whenever you obtain
+a new revision of the file.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Keyword-list.html#Keyword-list" accesskey="1">Keyword 
list</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Keywords
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Using-keywords.html#Using-keywords" accesskey="2">Using 
keywords</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using 
keywords
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Avoiding-substitution.html#Avoiding-substitution" accesskey="3">Avoiding 
substitution</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Avoiding substitution
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Substitution-modes.html#Substitution-modes" accesskey="4">Substitution 
modes</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Substitution 
modes
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Log-keyword.html#Log-keyword" accesskey="5">Log 
keyword</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Problems 
with the $<i></i>Log$ keyword.
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Keywords-in-imports.html
===================================================================
RCS file: html_node/Keywords-in-imports.html
diff -N html_node/Keywords-in-imports.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Keywords-in-imports.html  28 Dec 2015 15:57:58 -0000      1.1
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Keywords in 
imports</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Keywords in imports">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Keywords in imports">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Tracking-sources.html#Tracking-sources" rel="up" title="Tracking 
sources">
+<link href="Multiple-vendor-branches.html#Multiple-vendor-branches" rel="next" 
title="Multiple vendor branches">
+<link href="Binary-files-in-imports.html#Binary-files-in-imports" rel="prev" 
title="Binary files in imports">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Keywords-in-imports"></a>
+<div class="header">
+<p>
+Next: <a href="Multiple-vendor-branches.html#Multiple-vendor-branches" 
accesskey="n" rel="next">Multiple vendor branches</a>, Previous: <a 
href="Binary-files-in-imports.html#Binary-files-in-imports" accesskey="p" 
rel="prev">Binary files in imports</a>, Up: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="u" rel="up">Tracking 
sources</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-to-handle-keyword-substitution-with-cvs-import"></a>
+<h3 class="section">13.5 How to handle keyword substitution with cvs 
import</h3>
+
+<p>The sources which you are importing may contain
+keywords (see <a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>).  For example,
+the vendor may use <small>CVS</small> or some other system
+which uses similar keyword expansion syntax.  If you
+just import the files in the default fashion, then
+the keyword expansions supplied by the vendor will
+be replaced by keyword expansions supplied by your
+own copy of <small>CVS</small>.  It may be more convenient to
+maintain the expansions supplied by the vendor, so
+that this information can supply information about
+the sources that you imported from the vendor.
+</p>
+<p>To maintain the keyword expansions supplied by the
+vendor, supply the &lsquo;<samp>-ko</samp>&rsquo; option to <code>cvs
+import</code> the first time you import the file.
+This will turn off keyword expansion
+for that file entirely, so if you want to be more
+selective you&rsquo;ll have to think about what you want
+and use the &lsquo;<samp>-k</samp>&rsquo; option to <code>cvs update</code> or
+<code>cvs admin</code> as appropriate.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Line-formats.html
===================================================================
RCS file: html_node/Line-formats.html
diff -N html_node/Line-formats.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Line-formats.html 28 Dec 2015 15:57:58 -0000      1.1
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Line formats</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Line formats">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Line formats">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="diff-options.html#diff-options" rel="up" title="diff options">
+<link href="diff-examples.html#diff-examples" rel="next" title="diff examples">
+<link href="Line-group-formats.html#Line-group-formats" rel="prev" title="Line 
group formats">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Line-formats"></a>
+<div class="header">
+<p>
+Previous: <a href="Line-group-formats.html#Line-group-formats" accesskey="p" 
rel="prev">Line group formats</a>, Up: <a href="diff-options.html#diff-options" 
accesskey="u" rel="up">diff options</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Line-formats-1"></a>
+<h4 class="appendixsubsubsec">A.11.1.2 Line formats</h4>
+
+<p>Line formats control how each line taken from an input file is
+output as part of a line group in if-then-else format.
+</p>
+<p>For example, the following command outputs text with a one-column
+change indicator to the left of the text.  The first column of output
+is &lsquo;<samp>-</samp>&rsquo; for deleted lines, 
&lsquo;<samp>|</samp>&rsquo; for added lines, and a space
+for unchanged lines.  The formats contain newline characters where
+newlines are desired on output.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-line-format='-%l
+' \
+   --new-line-format='|%l
+' \
+   --unchanged-line-format=' %l
+' \
+   myfile
+</pre></div>
+
+<p>To specify a line format, use one of the following options.  You should
+quote <var>format</var>, since it often contains shell metacharacters.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>--old-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats lines just from the first file.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats lines just from the second file.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats lines common to both files.
+</p>
+</dd>
+<dt>&lsquo;<samp>--line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>formats all lines; in effect, it sets all three above options 
simultaneously.
+</p></dd>
+</dl>
+
+<p>In a line format, ordinary characters represent themselves;
+conversion specifications start with &lsquo;<samp>%</samp>&rsquo; and have one 
of the
+following forms.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>%l</samp>&rsquo;</dt>
+<dd><p>stands for the contents of the line, not counting its trailing
+newline (if any).  This format ignores whether the line is incomplete.
+</p>
+</dd>
+<dt>&lsquo;<samp>%L</samp>&rsquo;</dt>
+<dd><p>stands for the contents of the line, including its trailing newline
+(if any).  If a line is incomplete, this format preserves its
+incompleteness.
+</p>
+</dd>
+<dt>&lsquo;<samp>%%</samp>&rsquo;</dt>
+<dd><p>stands for &lsquo;<samp>%</samp>&rsquo;.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'<var>C</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>C</var> is a single character, stands for <var>C</var>.
+<var>C</var> may not be a backslash or an apostrophe.
+For example, &lsquo;<samp>%c':'</samp>&rsquo; stands for a colon.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'\<var>O</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>O</var> is a string of 1, 2, or 3 octal digits,
+stands for the character with octal code <var>O</var>.
+For example, &lsquo;<samp>%c'\0'</samp>&rsquo; stands for a null character.
+</p>
+</dd>
+<dt>&lsquo;<samp><var>F</var>n</samp>&rsquo;</dt>
+<dd><p>where <var>F</var> is a <code>printf</code> conversion specification,
+stands for the line number formatted with <var>F</var>.
+For example, &lsquo;<samp>%.5dn</samp>&rsquo; prints the line number using the
+<code>printf</code> format <code>&quot;%.5d&quot;</code>.  See <a 
href="Line-group-formats.html#Line-group-formats">Line group formats</a>, for
+more about printf conversion specifications.
+</p>
+</dd>
+</dl>
+
+<p>The default line format is &lsquo;<samp>%l</samp>&rsquo; followed by a 
newline character.
+</p>
+<p>If the input contains tab characters and it is important that they line
+up on output, you should ensure that &lsquo;<samp>%l</samp>&rsquo; or 
&lsquo;<samp>%L</samp>&rsquo; in a line
+format is just after a tab stop (e.g. by preceding 
&lsquo;<samp>%l</samp>&rsquo; or
+&lsquo;<samp>%L</samp>&rsquo; with a tab character), or you should use the 
&lsquo;<samp>-t</samp>&rsquo; or
+&lsquo;<samp>--expand-tabs</samp>&rsquo; option.
+</p>
+<p>Taken together, the line and line group formats let you specify many
+different formats.  For example, the following command uses a format
+similar to <code>diff</code>&rsquo;s normal format.  You can tailor this 
command
+to get fine control over <code>diff</code>&rsquo;s output.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-line-format='&lt; %l
+' \
+   --new-line-format='&gt; %l
+' \
+   --old-group-format='%df%(f=l?:,%dl)d%dE
+%&lt;' \
+   --new-group-format='%dea%dF%(F=L?:,%dL)
+%&gt;' \
+   --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
+%&lt;---
+%&gt;' \
+   --unchanged-group-format='' \
+   myfile
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Line-group-formats.html#Line-group-formats" accesskey="p" 
rel="prev">Line group formats</a>, Up: <a href="diff-options.html#diff-options" 
accesskey="u" rel="up">diff options</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Line-group-formats.html
===================================================================
RCS file: html_node/Line-group-formats.html
diff -N html_node/Line-group-formats.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Line-group-formats.html   28 Dec 2015 15:57:58 -0000      1.1
@@ -0,0 +1,255 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Line group 
formats</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Line group formats">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Line group formats">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="diff-options.html#diff-options" rel="up" title="diff options">
+<link href="Line-formats.html#Line-formats" rel="next" title="Line formats">
+<link href="diff-options.html#diff-options" rel="prev" title="diff options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Line-group-formats"></a>
+<div class="header">
+<p>
+Next: <a href="Line-formats.html#Line-formats" accesskey="n" rel="next">Line 
formats</a>, Up: <a href="diff-options.html#diff-options" accesskey="u" 
rel="up">diff options</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Line-group-formats-1"></a>
+<h4 class="appendixsubsubsec">A.11.1.1 Line group formats</h4>
+
+<p>Line group formats let you specify formats suitable for many
+applications that allow if-then-else input, including programming
+languages and text formatting languages.  A line group format specifies
+the output format for a contiguous group of similar lines.
+</p>
+<p>For example, the following command compares the TeX file <samp>myfile</samp>
+with the original version from the repository,
+and outputs a merged file in which old regions are
+surrounded by 
&lsquo;<samp>\begin{em}</samp>&rsquo;-&lsquo;<samp>\end{em}</samp>&rsquo; 
lines, and new
+regions are surrounded by 
&lsquo;<samp>\begin{bf}</samp>&rsquo;-&lsquo;<samp>\end{bf}</samp>&rsquo; lines.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-group-format='\begin{em}
+%&lt;\end{em}
+' \
+   --new-group-format='\begin{bf}
+%&gt;\end{bf}
+' \
+   myfile
+</pre></div>
+
+<p>The following command is equivalent to the above example, but it is a
+little more verbose, because it spells out the default line group formats.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --old-group-format='\begin{em}
+%&lt;\end{em}
+' \
+   --new-group-format='\begin{bf}
+%&gt;\end{bf}
+' \
+   --unchanged-group-format='%=' \
+   --changed-group-format='\begin{em}
+%&lt;\end{em}
+\begin{bf}
+%&gt;\end{bf}
+' \
+   myfile
+</pre></div>
+
+<p>Here is a more advanced example, which outputs a diff listing with
+headers containing line numbers in a &ldquo;plain English&rdquo; style.
+</p>
+<div class="example">
+<pre class="example">cvs diff \
+   --unchanged-group-format='' \
+   --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
+%&lt;' \
+   --new-group-format='-------- %dN line%(N=1?:s) added after %de:
+%&gt;' \
+   --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
+%&lt;-------- to:
+%&gt;' \
+   myfile
+</pre></div>
+
+<p>To specify a line group format, use one of the options
+listed below.  You can specify up to four line group formats, one for
+each kind of line group.  You should quote <var>format</var>, because it
+typically contains shell metacharacters.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>--old-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups are hunks containing only lines from the first file.
+The default old group format is the same as the changed group format if
+it is specified; otherwise it is a format that outputs the line group as-is.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups are hunks containing only lines from the second
+file.  The default new group format is same as the changed group
+format if it is specified; otherwise it is a format that outputs the
+line group as-is.
+</p>
+</dd>
+<dt>&lsquo;<samp>--changed-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups are hunks containing lines from both files.  The
+default changed group format is the concatenation of the old and new
+group formats.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>These line groups contain lines common to both files.  The default
+unchanged group format is a format that outputs the line group as-is.
+</p></dd>
+</dl>
+
+<p>In a line group format, ordinary characters represent themselves;
+conversion specifications start with &lsquo;<samp>%</samp>&rsquo; and have one 
of the
+following forms.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>%&lt;</samp>&rsquo;</dt>
+<dd><p>stands for the lines from the first file, including the trailing 
newline.
+Each line is formatted according to the old line format (see <a 
href="Line-formats.html#Line-formats">Line formats</a>).
+</p>
+</dd>
+<dt>&lsquo;<samp>%&gt;</samp>&rsquo;</dt>
+<dd><p>stands for the lines from the second file, including the trailing 
newline.
+Each line is formatted according to the new line format.
+</p>
+</dd>
+<dt>&lsquo;<samp>%=</samp>&rsquo;</dt>
+<dd><p>stands for the lines common to both files, including the trailing 
newline.
+Each line is formatted according to the unchanged line format.
+</p>
+</dd>
+<dt>&lsquo;<samp>%%</samp>&rsquo;</dt>
+<dd><p>stands for &lsquo;<samp>%</samp>&rsquo;.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'<var>C</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>C</var> is a single character, stands for <var>C</var>.
+<var>C</var> may not be a backslash or an apostrophe.
+For example, &lsquo;<samp>%c':'</samp>&rsquo; stands for a colon, even inside
+the then-part of an if-then-else format, which a colon would
+normally terminate.
+</p>
+</dd>
+<dt>&lsquo;<samp>%c'\<var>O</var>'</samp>&rsquo;</dt>
+<dd><p>where <var>O</var> is a string of 1, 2, or 3 octal digits,
+stands for the character with octal code <var>O</var>.
+For example, &lsquo;<samp>%c'\0'</samp>&rsquo; stands for a null character.
+</p>
+</dd>
+<dt>&lsquo;<samp><var>F</var><var>n</var></samp>&rsquo;</dt>
+<dd><p>where <var>F</var> is a <code>printf</code> conversion specification 
and <var>n</var> is one
+of the following letters, stands for <var>n</var>&rsquo;s value formatted with 
<var>F</var>.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>e</samp>&rsquo;</dt>
+<dd><p>The line number of the line just before the group in the old file.
+</p>
+</dd>
+<dt>&lsquo;<samp>f</samp>&rsquo;</dt>
+<dd><p>The line number of the first line in the group in the old file;
+equals <var>e</var> + 1.
+</p>
+</dd>
+<dt>&lsquo;<samp>l</samp>&rsquo;</dt>
+<dd><p>The line number of the last line in the group in the old file.
+</p>
+</dd>
+<dt>&lsquo;<samp>m</samp>&rsquo;</dt>
+<dd><p>The line number of the line just after the group in the old file;
+equals <var>l</var> + 1.
+</p>
+</dd>
+<dt>&lsquo;<samp>n</samp>&rsquo;</dt>
+<dd><p>The number of lines in the group in the old file; equals <var>l</var> - 
<var>f</var> + 1.
+</p>
+</dd>
+<dt>&lsquo;<samp>E, F, L, M, N</samp>&rsquo;</dt>
+<dd><p>Likewise, for lines in the new file.
+</p>
+</dd>
+</dl>
+
+<p>The <code>printf</code> conversion specification can be 
&lsquo;<samp>%d</samp>&rsquo;,
+&lsquo;<samp>%o</samp>&rsquo;, &lsquo;<samp>%x</samp>&rsquo;, or 
&lsquo;<samp>%X</samp>&rsquo;, specifying decimal, octal,
+lower case hexadecimal, or upper case hexadecimal output
+respectively.  After the &lsquo;<samp>%</samp>&rsquo; the following options 
can appear in
+sequence: a &lsquo;<samp>-</samp>&rsquo; specifying left-justification; an 
integer
+specifying the minimum field width; and a period followed by an
+optional integer specifying the minimum number of digits.
+For example, &lsquo;<samp>%5dN</samp>&rsquo; prints the number of new lines in 
the group
+in a field of width 5 characters, using the <code>printf</code> format 
<code>&quot;%5d&quot;</code>.
+</p>
+</dd>
+<dt>&lsquo;<samp>(<var>A</var>=<var>B</var>?<var>T</var>:<var>E</var>)</samp>&rsquo;</dt>
+<dd><p>If <var>A</var> equals <var>B</var> then <var>T</var> else <var>E</var>.
+<var>A</var> and <var>B</var> are each either a decimal constant
+or a single letter interpreted as above.
+This format spec is equivalent to <var>T</var> if
+<var>A</var>&rsquo;s value equals <var>B</var>&rsquo;s; otherwise it is 
equivalent to <var>E</var>.
+</p>
+<p>For example, &lsquo;<samp>%(N=0?no:%dN) line%(N=1?:s)</samp>&rsquo; is 
equivalent to
+&lsquo;<samp>no lines</samp>&rsquo; if <var>N</var> (the number of lines in 
the group in the
+new file) is 0, to &lsquo;<samp>1 line</samp>&rsquo; if <var>N</var> is 1, and 
to &lsquo;<samp>%dN lines</samp>&rsquo;
+otherwise.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Line-formats.html#Line-formats" accesskey="n" rel="next">Line 
formats</a>, Up: <a href="diff-options.html#diff-options" accesskey="u" 
rel="up">diff options</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Locks.html
===================================================================
RCS file: html_node/Locks.html
diff -N html_node/Locks.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Locks.html        28 Dec 2015 15:57:58 -0000      1.1
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Locks</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Locks">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Locks">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="CVSROOT-storage.html#CVSROOT-storage" rel="next" title="CVSROOT 
storage">
+<link href="CVS-in-repository.html#CVS-in-repository" rel="prev" title="CVS in 
repository">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Locks"></a>
+<div class="header">
+<p>
+Next: <a href="CVSROOT-storage.html#CVSROOT-storage" accesskey="n" 
rel="next">CVSROOT storage</a>, Previous: <a 
href="CVS-in-repository.html#CVS-in-repository" accesskey="p" rel="prev">CVS in 
repository</a>, Up: <a href="Repository-storage.html#Repository-storage" 
accesskey="u" rel="up">Repository storage</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="CVS-locks-in-the-repository"></a>
+<h4 class="subsection">2.2.6 CVS locks in the repository</h4>
+
+<a name="index-_0023cvs_002erfl_002c-technical-details"></a>
+<a name="index-_0023cvs_002ewfl_002c-technical-details"></a>
+<a name="index-_0023cvs_002elock_002c-technical-details"></a>
+<a name="index-Locks_002c-cvs_002c-technical-details"></a>
+<p>For an introduction to <small>CVS</small> locks focusing on
+user-visible behavior, see <a 
href="Concurrency.html#Concurrency">Concurrency</a>.  The
+following section is aimed at people who are writing
+tools which want to access a <small>CVS</small> repository without
+interfering with other tools accessing the same
+repository.  If you find yourself confused by concepts
+described here, like <em>read lock</em>, <em>write lock</em>,
+and <em>deadlock</em>, you might consult the literature on
+operating systems or databases.
+</p>
+<a name="index-_0023cvs_002etfl"></a>
+<p>Any file in the repository with a name starting
+with <samp>#cvs.rfl.</samp> is a read lock.  Any file in
+the repository with a name starting with
+<samp>#cvs.wfl</samp> is a write lock.  Old versions of <small>CVS</small>
+(before <small>CVS</small> 1.5) also created files with names starting
+with <samp>#cvs.tfl</samp>, but they are not discussed here.
+The directory <samp>#cvs.lock</samp> serves as a master
+lock.  That is, one must obtain this lock first before
+creating any of the other locks.
+</p>
+<p>To obtain a read lock, first create the <samp>#cvs.lock</samp>
+directory.  This operation must be atomic (which should
+be true for creating a directory under most operating
+systems).  If it fails because the directory already
+existed, wait for a while and try again.  After
+obtaining the <samp>#cvs.lock</samp> lock, create a file
+whose name is <samp>#cvs.rfl.</samp> followed by information
+of your choice (for example, hostname and process
+identification number).  Then remove the
+<samp>#cvs.lock</samp> directory to release the master lock.
+Then proceed with reading the repository.  When you are
+done, remove the <samp>#cvs.rfl</samp> file to release the
+read lock.
+</p>
+<p>To obtain a write lock, first create the
+<samp>#cvs.lock</samp> directory, as with read locks.  Then
+check that there are no files whose names start with
+<samp>#cvs.rfl.</samp>.  If there are, remove
+<samp>#cvs.lock</samp>, wait for a while, and try again.  If
+there are no readers, then create a file whose name is
+<samp>#cvs.wfl</samp> followed by information of your choice
+(for example, hostname and process identification
+number).  Hang on to the <samp>#cvs.lock</samp> lock.  Proceed
+with writing the repository.  When you are done, first
+remove the <samp>#cvs.wfl</samp> file and then the
+<samp>#cvs.lock</samp> directory. Note that unlike the
+<samp>#cvs.rfl</samp> file, the <samp>#cvs.wfl</samp> file is just
+informational; it has no effect on the locking operation
+beyond what is provided by holding on to the
+<samp>#cvs.lock</samp> lock itself.
+</p>
+<p>Note that each lock (write lock or read lock) only locks
+a single directory in the repository, including
+<samp>Attic</samp> and <samp>CVS</samp> but not including
+subdirectories which represent other directories under
+version control.  To lock an entire tree, you need to
+lock each directory (note that if you fail to obtain
+any lock you need, you must release the whole tree
+before waiting and trying again, to avoid deadlocks).
+</p>
+<p>Note also that <small>CVS</small> expects write locks to control
+access to individual <samp>foo,v</samp> files.  <small>RCS</small> has
+a scheme where the <samp>,foo,</samp> file serves as a lock,
+but <small>CVS</small> does not implement it and so taking out a
+<small>CVS</small> write lock is recommended.  See the comments at
+rcs_internal_lockfile in the <small>CVS</small> source code for
+further discussion/rationale.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="CVSROOT-storage.html#CVSROOT-storage" accesskey="n" 
rel="next">CVSROOT storage</a>, Previous: <a 
href="CVS-in-repository.html#CVS-in-repository" accesskey="p" rel="prev">CVS in 
repository</a>, Up: <a href="Repository-storage.html#Repository-storage" 
accesskey="u" rel="up">Repository storage</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Log-keyword.html
===================================================================
RCS file: html_node/Log-keyword.html
diff -N html_node/Log-keyword.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Log-keyword.html  28 Dec 2015 15:57:58 -0000      1.1
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Log keyword</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Log keyword">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Log keyword">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="up" 
title="Keyword substitution">
+<link href="Tracking-sources.html#Tracking-sources" rel="next" title="Tracking 
sources">
+<link href="Substitution-modes.html#Substitution-modes" rel="prev" 
title="Substitution modes">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Log-keyword"></a>
+<div class="header">
+<p>
+Previous: <a href="Substitution-modes.html#Substitution-modes" accesskey="p" 
rel="prev">Substitution modes</a>, Up: <a 
href="Keyword-substitution.html#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Problems-with-the-_0024Log_0024-keyword_002e"></a>
+<h3 class="section">12.5 Problems with the $<i></i>Log$ keyword.</h3>
+
+<p>The <code>$<i></i>Log$</code> keyword is somewhat
+controversial.  As long as you are working on your
+development system the information is easily accessible
+even if you do not use the <code>$<i></i>Log$</code>
+keyword&mdash;just do a <code>cvs log</code>.  Once you export
+the file the history information might be useless
+anyhow.
+</p>
+<p>A more serious concern is that <small>CVS</small> is not good at
+handling <code>$<i></i>Log$</code> entries when a branch is
+merged onto the main trunk.  Conflicts often result
+from the merging operation.
+</p>
+<p>People also tend to &quot;fix&quot; the log entries in the file
+(correcting spelling mistakes and maybe even factual
+errors).  If that is done the information from
+<code>cvs log</code> will not be consistent with the
+information inside the file.  This may or may not be a
+problem in real life.
+</p>
+<p>It has been suggested that the <code>$<i></i>Log$</code>
+keyword should be inserted <em>last</em> in the file, and
+not in the files header, if it is to be used at all.
+That way the long list of change messages will not
+interfere with everyday source file browsing.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Magic-branch-numbers.html
===================================================================
RCS file: html_node/Magic-branch-numbers.html
diff -N html_node/Magic-branch-numbers.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Magic-branch-numbers.html 28 Dec 2015 15:57:59 -0000      1.1
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Magic branch 
numbers</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Magic branch numbers">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Magic branch numbers">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Merging-a-branch.html#Merging-a-branch" rel="next" title="Merging 
a branch">
+<link href="Branches-and-revisions.html#Branches-and-revisions" rel="prev" 
title="Branches and revisions">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Magic-branch-numbers"></a>
+<div class="header">
+<p>
+Next: <a href="Merging-a-branch.html#Merging-a-branch" accesskey="n" 
rel="next">Merging a branch</a>, Previous: <a 
href="Branches-and-revisions.html#Branches-and-revisions" accesskey="p" 
rel="prev">Branches and revisions</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Magic-branch-numbers-1"></a>
+<h3 class="section">5.5 Magic branch numbers</h3>
+
+
+<p>This section describes a <small>CVS</small> feature called
+<em>magic branches</em>.  For most purposes, you need not
+worry about magic branches; <small>CVS</small> handles them for
+you.  However, they are visible to you in certain
+circumstances, so it may be useful to have some idea of
+how it works.
+</p>
+<p>Externally, branch numbers consist of an odd number of
+dot-separated decimal integers.  See <a 
href="Revision-numbers.html#Revision-numbers">Revision numbers</a>.  That is 
not the whole truth, however.  For
+efficiency reasons <small>CVS</small> sometimes inserts an extra 0
+in the second rightmost position (1.2.4 becomes
+1.2.0.4, 8.9.10.11.12 becomes 8.9.10.11.0.12 and so
+on).
+</p>
+<p><small>CVS</small> does a pretty good job at hiding these so
+called magic branches, but in a few places the hiding
+is incomplete:
+</p>
+<ul>
+<li> The magic branch number appears in the output from
+<code>cvs log</code>.
+
+</li><li> You cannot specify a symbolic branch name to <code>cvs
+admin</code>.
+
+</li></ul>
+
+<p>You can use the <code>admin</code> command to reassign a
+symbolic name to a branch the way <small>RCS</small> expects it
+to be.  If <code>R4patches</code> is assigned to the branch
+1.4.2 (magic branch number 1.4.0.2) in file
+<samp>numbers.c</samp> you can do this:
+</p>
+<div class="example">
+<pre class="example">$ cvs admin -NR4patches:1.4.2 numbers.c
+</pre></div>
+
+<p>It only works if at least one revision is already
+committed on the branch.  Be very careful so that you
+do not assign the tag to the wrong number.  (There is
+no way to see how the tag was assigned yesterday).
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Merging-a-branch.html
===================================================================
RCS file: html_node/Merging-a-branch.html
diff -N html_node/Merging-a-branch.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Merging-a-branch.html     28 Dec 2015 15:57:59 -0000      1.1
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Merging a branch</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Merging a branch">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Merging a branch">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Merging-more-than-once.html#Merging-more-than-once" rel="next" 
title="Merging more than once">
+<link href="Magic-branch-numbers.html#Magic-branch-numbers" rel="prev" 
title="Magic branch numbers">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Merging-a-branch"></a>
+<div class="header">
+<p>
+Next: <a href="Merging-more-than-once.html#Merging-more-than-once" 
accesskey="n" rel="next">Merging more than once</a>, Previous: <a 
href="Magic-branch-numbers.html#Magic-branch-numbers" accesskey="p" 
rel="prev">Magic branch numbers</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Merging-an-entire-branch"></a>
+<h3 class="section">5.6 Merging an entire branch</h3>
+<a name="index-Merging-a-branch"></a>
+<a name="index-_002dj-_0028merging-branches_0029"></a>
+
+<p>You can merge changes made on a branch into your working copy by giving
+the &lsquo;<samp>-j <var>branchname</var></samp>&rsquo; flag to the 
<code>update</code> subcommand.  With one
+&lsquo;<samp>-j <var>branchname</var></samp>&rsquo; option it merges the 
changes made between the
+greatest common ancestor (GCA) of the branch and the destination revision (in
+the simple case below the GCA is the point where the branch forked) and the
+newest revision on that branch into your working copy.
+</p>
+<a name="index-Join"></a>
+<p>The &lsquo;<samp>-j</samp>&rsquo; stands for &ldquo;join&rdquo;.
+</p>
+<a name="index-Branch-merge-example"></a>
+<a name="index-Example_002c-branch-merge"></a>
+<a name="index-Merge_002c-branch-example"></a>
+<p>Consider this revision tree:
+</p>
+<div class="example">
+<pre class="example">+-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !      &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+
+                !
+                !
+                !   +---------+    +---------+
+Branch R1fix -&gt; +---! 1.2.2.1 !----! 1.2.2.2 !
+                    +---------+    +---------+
+</pre></div>
+
+<p>The branch 1.2.2 has been given the tag (symbolic name) 
&lsquo;<samp>R1fix</samp>&rsquo;.  The
+following example assumes that the module &lsquo;<samp>mod</samp>&rsquo; 
contains only one
+file, <samp>m.c</samp>.
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout mod               # <span 
class="roman">Retrieve the latest revision, 1.4</span>
+
+$ cvs update -j R1fix m.c        # <span class="roman">Merge all changes made 
on the branch,</span>
+                                 # <span class="roman">i.e. the changes 
between revision 1.2</span>
+                                 # <span class="roman">and 1.2.2.2, into your 
working copy</span>
+                                 # <span class="roman">of the file.</span>
+
+$ cvs commit -m &quot;Included R1fix&quot; # <span class="roman">Create 
revision 1.5.</span>
+</pre></div>
+
+<p>A conflict can result from a merge operation.  If that
+happens, you should resolve it before committing the
+new revision.  See <a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a>.
+</p>
+<p>If your source files contain keywords (see <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword substitution</a>),
+you might be getting more conflicts than strictly necessary.  See
+<a href="Merging-and-keywords.html#Merging-and-keywords">Merging and 
keywords</a>, for information on how to avoid this.
+</p>
+<p>The <code>checkout</code> command also supports the &lsquo;<samp>-j 
<var>branchname</var></samp>&rsquo; flag.  The
+same effect as above could be achieved with this:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -j R1fix mod
+$ cvs commit -m &quot;Included R1fix&quot;
+</pre></div>
+
+<p>It should be noted that <code>update -j <var>tagname</var></code> will also 
work but may
+not produce the desired result.  See <a 
href="Merging-adds-and-removals.html#Merging-adds-and-removals">Merging adds 
and removals</a>, for more.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Merging-more-than-once.html#Merging-more-than-once" 
accesskey="n" rel="next">Merging more than once</a>, Previous: <a 
href="Magic-branch-numbers.html#Magic-branch-numbers" accesskey="p" 
rel="prev">Magic branch numbers</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Merging-adds-and-removals.html
===================================================================
RCS file: html_node/Merging-adds-and-removals.html
diff -N html_node/Merging-adds-and-removals.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Merging-adds-and-removals.html    28 Dec 2015 15:57:59 -0000      
1.1
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Merging adds and 
removals</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Merging adds and removals">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Merging adds and removals">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Merging-and-keywords.html#Merging-and-keywords" rel="next" 
title="Merging and keywords">
+<link href="Merging-two-revisions.html#Merging-two-revisions" rel="prev" 
title="Merging two revisions">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Merging-adds-and-removals"></a>
+<div class="header">
+<p>
+Next: <a href="Merging-and-keywords.html#Merging-and-keywords" accesskey="n" 
rel="next">Merging and keywords</a>, Previous: <a 
href="Merging-two-revisions.html#Merging-two-revisions" accesskey="p" 
rel="prev">Merging two revisions</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Merging-can-add-or-remove-files"></a>
+<h3 class="section">5.9 Merging can add or remove files</h3>
+
+<p>If the changes which you are merging involve removing
+or adding some files, <code>update -j</code> will reflect
+such additions or removals.
+</p>
+<p>For example:
+</p><div class="example">
+<pre class="example">cvs update -A
+touch a b c
+cvs add a b c ; cvs ci -m &quot;added&quot; a b c
+cvs tag -b branchtag
+cvs update -r branchtag
+touch d ; cvs add d
+rm a ; cvs rm a
+cvs ci -m &quot;added d, removed a&quot;
+cvs update -A
+cvs update -jbranchtag
+</pre></div>
+
+<p>After these commands are executed and a &lsquo;<samp>cvs 
commit</samp>&rsquo; is done,
+file <samp>a</samp> will be removed and file <samp>d</samp> added in the main 
branch.
+</p>
+<p>Note that using a single static tag (&lsquo;<samp>-j 
<var>tagname</var></samp>&rsquo;)
+rather than a dynamic tag (&lsquo;<samp>-j 
<var>branchname</var></samp>&rsquo;) to merge
+changes from a branch will usually not remove files which were removed on the
+branch since <small>CVS</small> does not automatically add static tags to dead 
revisions.
+The exception to this rule occurs when
+a static tag has been attached to a dead revision manually.  Use the branch tag
+to merge all changes from the branch or use two static tags as merge endpoints
+to be sure that all intended changes are propagated in the merge.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Merging-and-keywords.html
===================================================================
RCS file: html_node/Merging-and-keywords.html
diff -N html_node/Merging-and-keywords.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Merging-and-keywords.html 28 Dec 2015 15:57:59 -0000      1.1
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Merging and 
keywords</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Merging and keywords">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Merging and keywords">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Recursive-behavior.html#Recursive-behavior" rel="next" 
title="Recursive behavior">
+<link href="Merging-adds-and-removals.html#Merging-adds-and-removals" 
rel="prev" title="Merging adds and removals">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Merging-and-keywords"></a>
+<div class="header">
+<p>
+Previous: <a href="Merging-adds-and-removals.html#Merging-adds-and-removals" 
accesskey="p" rel="prev">Merging adds and removals</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Merging-and-keywords-1"></a>
+<h3 class="section">5.10 Merging and keywords</h3>
+<a name="index-Merging_002c-and-keyword-substitution"></a>
+<a name="index-Keyword-substitution_002c-and-merging"></a>
+<a 
name="index-_002dj-_0028merging-branches_0029_002c-and-keyword-substitution"></a>
+<a name="index-_002dkk_002c-to-avoid-conflicts-during-a-merge"></a>
+
+<p>If you merge files containing keywords (see <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>), you will normally get numerous
+conflicts during the merge, because the keywords are
+expanded differently in the revisions which you are
+merging.
+</p>
+<p>Therefore, you will often want to specify the
+&lsquo;<samp>-kk</samp>&rsquo; (see <a 
href="Substitution-modes.html#Substitution-modes">Substitution modes</a>) 
switch to the
+merge command line.  By substituting just the name of
+the keyword, not the expanded value of that keyword,
+this option ensures that the revisions which you are
+merging will be the same as each other, and avoid
+spurious conflicts.
+</p>
+<p>For example, suppose you have a file like this:
+</p>
+<div class="example">
+<pre class="example">       +---------+
+      _! 1.1.2.1 !   &lt;-  br1
+     / +---------+
+    /
+   /
++-----+    +-----+
+! 1.1 !----! 1.2 !
++-----+    +-----+
+</pre></div>
+
+<p>and your working directory is currently on the trunk
+(revision 1.2).  Then you might get the following
+results from a merge:
+</p>
+<div class="example">
+<pre class="example">$ cat file1
+key $<i></i>Revision: 1.2 $
+. . .
+$ cvs update -j br1
+U file1
+RCS file: /cvsroot/first-dir/file1,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+Merging differences between 1.1 and 1.1.2.1 into file1
+rcsmerge: warning: conflicts during merge
+$ cat file1
+&lt;&lt;&lt;&lt;&lt;&lt;&lt; file1
+key $<i></i>Revision: 1.2 $
+=======
+key $<i></i>Revision: 1.1.2.1 $
+&gt;&gt;&gt;&gt;&gt;&gt;&gt; 1.1.2.1
+. . .
+</pre></div>
+
+<p>What happened was that the merge tried to merge the
+differences between 1.1 and 1.1.2.1 into your working
+directory.  So, since the keyword changed from
+<code>Revision: 1.1</code> to <code>Revision: 1.1.2.1</code>,
+<small>CVS</small> tried to merge that change into your working
+directory, which conflicted with the fact that your
+working directory had contained <code>Revision: 1.2</code>.
+</p>
+<p>Here is what happens if you had used &lsquo;<samp>-kk</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cat file1
+key $<i></i>Revision: 1.2 $
+. . .
+$ cvs update -kk -j br1
+U file1
+RCS file: /cvsroot/first-dir/file1,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+Merging differences between 1.1 and 1.1.2.1 into file1
+$ cat file1
+key $<i></i>Revision$
+. . .
+</pre></div>
+
+<p>What is going on here is that revision 1.1 and 1.1.2.1
+both expand as plain <code>Revision</code>, and therefore
+merging the changes between them into the working
+directory need not change anything.  Therefore, there
+is no conflict.
+</p>
+<p>There is, however, one major caveat with using
+&lsquo;<samp>-kk</samp>&rsquo; on merges.  Namely, it overrides whatever
+keyword expansion mode <small>CVS</small> would normally have
+used.  In particular, this is a problem if the mode had
+been &lsquo;<samp>-kb</samp>&rsquo; for a binary file.  Therefore, if your
+repository contains binary files, you will need to deal
+with the conflicts rather than using &lsquo;<samp>-kk</samp>&rsquo;.
+</p>
+
+<p>As a result of using &lsquo;<samp>-kk</samp>&rsquo; during the merge, each 
file examined by the
+update will have &lsquo;<samp>-kk</samp>&rsquo; set as sticky options.  
Running <code>update -A</code>
+will clear the sticky options on unmodified files, but it will not clear
+the sticky options on modified files.  To get back to the default keyword
+substitution for modified files, you must commit the results of the merge
+and then run <code>update -A</code>.
+</p>
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Merging-adds-and-removals.html#Merging-adds-and-removals" 
accesskey="p" rel="prev">Merging adds and removals</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Merging-more-than-once.html
===================================================================
RCS file: html_node/Merging-more-than-once.html
diff -N html_node/Merging-more-than-once.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Merging-more-than-once.html       28 Dec 2015 15:57:59 -0000      
1.1
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Merging more than 
once</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Merging more than once">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Merging more than once">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Merging-two-revisions.html#Merging-two-revisions" rel="next" 
title="Merging two revisions">
+<link href="Merging-a-branch.html#Merging-a-branch" rel="prev" title="Merging 
a branch">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Merging-more-than-once"></a>
+<div class="header">
+<p>
+Next: <a href="Merging-two-revisions.html#Merging-two-revisions" accesskey="n" 
rel="next">Merging two revisions</a>, Previous: <a 
href="Merging-a-branch.html#Merging-a-branch" accesskey="p" rel="prev">Merging 
a branch</a>, Up: <a href="Branching-and-merging.html#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Merging-from-a-branch-several-times"></a>
+<h3 class="section">5.7 Merging from a branch several times</h3>
+
+<p>Continuing our example, the revision tree now looks
+like this:
+</p>
+<div class="example">
+<pre class="example">+-----+    +-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+    +-----+
+                !                           *
+                !                          *
+                !   +---------+    +---------+
+Branch R1fix -&gt; +---! 1.2.2.1 !----! 1.2.2.2 !
+                    +---------+    +---------+
+</pre></div>
+
+<p>where the starred line represents the merge from the
+&lsquo;<samp>R1fix</samp>&rsquo; branch to the main trunk, as just
+discussed.
+</p>
+<p>Now suppose that development continues on the
+&lsquo;<samp>R1fix</samp>&rsquo; branch:
+</p>
+<div class="example">
+<pre class="example">+-----+    +-----+    +-----+    +-----+    +-----+
+! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   &lt;- The main trunk
++-----+    +-----+    +-----+    +-----+    +-----+
+                !                           *
+                !                          *
+                !   +---------+    +---------+    +---------+
+Branch R1fix -&gt; +---! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
+                    +---------+    +---------+    +---------+
+</pre></div>
+
+<p>and then you want to merge those new changes onto the
+main trunk.  If you just use the <code>cvs update -j
+R1fix m.c</code> command again, <small>CVS</small> will attempt to
+merge again the changes which you have already merged,
+which can have undesirable side effects.
+</p>
+<p>So instead you need to specify that you only want to
+merge the changes on the branch which have not yet been
+merged into the trunk.  To do that you specify two
+&lsquo;<samp>-j</samp>&rsquo; options, and <small>CVS</small> merges the 
changes from
+the first revision to the second revision.  For
+example, in this case the simplest way would be
+</p>
+<div class="example">
+<pre class="example">cvs update -j 1.2.2.2 -j R1fix m.c    # <span 
class="roman">Merge changes from 1.2.2.2 to the</span>
+                                      # <span class="roman">head of the R1fix 
branch</span>
+</pre></div>
+
+<p>The problem with this is that you need to specify the
+1.2.2.2 revision manually.  A slightly better approach
+might be to use the date the last merge was done:
+</p>
+<div class="example">
+<pre class="example">cvs update -j R1fix:yesterday -j R1fix m.c
+</pre></div>
+
+<p>Better yet, tag the R1fix branch after every merge into
+the trunk, and then use that tag for subsequent merges:
+</p>
+<div class="example">
+<pre class="example">cvs update -j merged_from_R1fix_to_trunk -j R1fix m.c
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Merging-two-revisions.html#Merging-two-revisions" accesskey="n" 
rel="next">Merging two revisions</a>, Previous: <a 
href="Merging-a-branch.html#Merging-a-branch" accesskey="p" rel="prev">Merging 
a branch</a>, Up: <a href="Branching-and-merging.html#Branching-and-merging" 
accesskey="u" rel="up">Branching and merging</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Merging-two-revisions.html
===================================================================
RCS file: html_node/Merging-two-revisions.html
diff -N html_node/Merging-two-revisions.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Merging-two-revisions.html        28 Dec 2015 15:58:00 -0000      
1.1
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Merging two 
revisions</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Merging two revisions">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Merging two revisions">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="up" 
title="Branching and merging">
+<link href="Merging-adds-and-removals.html#Merging-adds-and-removals" 
rel="next" title="Merging adds and removals">
+<link href="Merging-more-than-once.html#Merging-more-than-once" rel="prev" 
title="Merging more than once">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Merging-two-revisions"></a>
+<div class="header">
+<p>
+Next: <a href="Merging-adds-and-removals.html#Merging-adds-and-removals" 
accesskey="n" rel="next">Merging adds and removals</a>, Previous: <a 
href="Merging-more-than-once.html#Merging-more-than-once" accesskey="p" 
rel="prev">Merging more than once</a>, Up: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="u" 
rel="up">Branching and merging</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Merging-differences-between-any-two-revisions"></a>
+<h3 class="section">5.8 Merging differences between any two revisions</h3>
+<a name="index-Merging-two-revisions"></a>
+<a name="index-Revisions_002c-merging-differences-between"></a>
+<a name="index-Differences_002c-merging"></a>
+
+<p>With two &lsquo;<samp>-j <var>revision</var></samp>&rsquo; flags, the 
<code>update</code>
+(and <code>checkout</code>) command can merge the differences
+between any two revisions into your working file.
+</p>
+<a name="index-Undoing-a-change"></a>
+<a name="index-Removing-a-change"></a>
+<div class="example">
+<pre class="example">$ cvs update -j 1.5 -j 1.3 backend.c
+</pre></div>
+
+<p>will undo all changes made between revision
+1.3 and 1.5.  Note the order of the revisions!
+</p>
+<p>If you try to use this option when operating on
+multiple files, remember that the numeric revisions will
+probably be very different between the various files.
+You almost always use symbolic
+tags rather than revision numbers when operating on
+multiple files.
+</p>
+<a name="index-Restoring-old-version-of-removed-file"></a>
+<a name="index-Resurrecting-old-version-of-dead-file"></a>
+<p>Specifying two &lsquo;<samp>-j</samp>&rsquo; options can also undo file
+removals or additions.  For example, suppose you have
+a file
+named <samp>file1</samp> which existed as revision 1.1, and
+you then removed it (thus adding a dead revision 1.2).
+Now suppose you want to add it again, with the same
+contents it had previously.  Here is how to do it:
+</p>
+<div class="example">
+<pre class="example">$ cvs update -j 1.2 -j 1.1 file1
+U file1
+$ cvs commit -m test
+Checking in file1;
+/tmp/cvs-sanity/cvsroot/first-dir/file1,v  &lt;--  file1
+new revision: 1.3; previous revision: 1.2
+done
+$
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Modifying-tags.html
===================================================================
RCS file: html_node/Modifying-tags.html
diff -N html_node/Modifying-tags.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Modifying-tags.html       28 Dec 2015 15:58:00 -0000      1.1
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Modifying tags</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Modifying tags">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Modifying tags">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Tagging-add_002fremove.html#Tagging-add_002fremove" rel="next" 
title="Tagging add/remove">
+<link href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag" rel="prev" 
title="Tagging by date/tag">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Modifying-tags"></a>
+<div class="header">
+<p>
+Next: <a href="Tagging-add_002fremove.html#Tagging-add_002fremove" 
accesskey="n" rel="next">Tagging add/remove</a>, Previous: <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag" accesskey="p" 
rel="prev">Tagging by date/tag</a>, Up: <a href="Revisions.html#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Deleting_002c-moving_002c-and-renaming-tags"></a>
+<h3 class="section">4.7 Deleting, moving, and renaming tags</h3>
+
+
+<p>Normally one does not modify tags.  They exist in order
+to record the history of the repository and so deleting
+them or changing their meaning would, generally, not be
+what you want.
+</p>
+<p>However, there might be cases in which one uses a tag
+temporarily or accidentally puts one in the wrong
+place.  Therefore, one might delete, move, or rename a
+tag.
+</p>
+<p><strong>WARNING:  The commands in this section are
+dangerous; they permanently discard historical
+information and it can be difficult or impossible to
+recover from errors.  If you are a <small>CVS</small>
+administrator, you may consider restricting these
+commands with the <samp>taginfo</samp> file (see <a 
href="taginfo.html#taginfo">taginfo</a>).</strong>
+</p>
+<a name="index-Deleting-tags"></a>
+<a name="index-Deleting-branch-tags"></a>
+<a name="index-Removing-tags"></a>
+<a name="index-Removing-branch-tags"></a>
+<a name="index-Tags_002c-deleting"></a>
+<a name="index-Branch-tags_002c-deleting"></a>
+<p>To delete a tag, specify the &lsquo;<samp>-d</samp>&rsquo; option to either
+<code>cvs tag</code> or <code>cvs rtag</code>.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs rtag -d rel-0-4 tc
+</pre></div>
+
+<p>deletes the non-branch tag <code>rel-0-4</code> from the module 
<code>tc</code>.
+In the event that branch tags are encountered within the repository
+with the given name, a warning message will be issued and the branch 
+tag will not be deleted.  If you are absolutely certain you know what
+you are doing, the <code>-B</code> option may be specified to allow deletion
+of branch tags.  In that case, any non-branch tags encountered will
+trigger warnings and will not be deleted.
+</p>
+<p><strong>WARNING:  Moving branch tags is very dangerous!  If you think
+you need the <code>-B</code> option, think again and ask your 
<small>CVS</small>
+administrator about it (if that isn&rsquo;t you).  There is almost certainly
+another way to accomplish what you want to accomplish.</strong>
+</p>
+<a name="index-Moving-tags"></a>
+<a name="index-Moving-branch-tags"></a>
+<a name="index-Tags_002c-moving"></a>
+<a name="index-Branch-tags_002c-moving"></a>
+<p>When we say <em>move</em> a tag, we mean to make the same
+name point to different revisions.  For example, the
+<code>stable</code> tag may currently point to revision 1.4
+of <samp>backend.c</samp> and perhaps we want to make it
+point to revision 1.6.  To move a non-branch tag, specify the
+&lsquo;<samp>-F</samp>&rsquo; option to either <code>cvs tag</code> or 
<code>cvs
+rtag</code>.  For example, the task just mentioned might be
+accomplished as:
+</p>
+<div class="example">
+<pre class="example">cvs tag -r 1.6 -F stable backend.c
+</pre></div>
+
+<p>If any branch tags are encountered in the repository 
+with the given name, a warning is issued and the branch
+tag is not disturbed.  If you are absolutely certain you
+wish to move the branch tag, the <code>-B</code> option may be specified.
+In that case, non-branch tags encountered with the given
+name are ignored with a warning message.
+</p>
+<p><strong>WARNING:  Moving branch tags is very dangerous!  If you think you
+need the <code>-B</code> option, think again and ask your <small>CVS</small>
+administrator about it (if that isn&rsquo;t you).  There is almost certainly
+another way to accomplish what you want to accomplish.</strong>
+</p>
+<a name="index-Renaming-tags"></a>
+<a name="index-Tags_002c-renaming"></a>
+<p>When we say <em>rename</em> a tag, we mean to make a
+different name point to the same revisions as the old
+tag.  For example, one may have misspelled the tag name
+and want to correct it (hopefully before others are
+relying on the old spelling).  To rename a tag, first
+create a new tag using the &lsquo;<samp>-r</samp>&rsquo; option to
+<code>cvs rtag</code>, and then delete the old name.  (Caution:
+this method will not work with branch tags.) 
+This leaves the new tag on exactly the 
+same files as the old tag.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs rtag -r old-name-0-4 rel-0-4 tc
+cvs rtag -d old-name-0-4 tc
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Tagging-add_002fremove.html#Tagging-add_002fremove" 
accesskey="n" rel="next">Tagging add/remove</a>, Previous: <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag" accesskey="p" 
rel="prev">Tagging by date/tag</a>, Up: <a href="Revisions.html#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Module-options.html
===================================================================
RCS file: html_node/Module-options.html
diff -N html_node/Module-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Module-options.html       28 Dec 2015 15:58:00 -0000      1.1
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Module options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Module options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Module options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="modules.html#modules" rel="up" title="modules">
+<link href="Module-program-options.html#Module-program-options" rel="next" 
title="Module program options">
+<link href="Excluding-directories.html#Excluding-directories" rel="prev" 
title="Excluding directories">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Module-options"></a>
+<div class="header">
+<p>
+Next: <a href="Module-program-options.html#Module-program-options" 
accesskey="n" rel="next">Module program options</a>, Previous: <a 
href="Excluding-directories.html#Excluding-directories" accesskey="p" 
rel="prev">Excluding directories</a>, Up: <a href="modules.html#modules" 
accesskey="u" rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Module-options-1"></a>
+<h4 class="appendixsubsec">C.1.5 Module options</h4>
+<a name="index-Options_002c-in-modules-file"></a>
+
+<p>Either regular modules or ampersand modules can contain
+options, which supply additional information concerning
+the module.
+</p>
+<dl compact="compact">
+<dd><a name="index-_002dd_002c-in-modules-file"></a>
+</dd>
+<dt><code>-d <var>name</var></code></dt>
+<dd><p>Name the working directory something other than the
+module name.
+</p>
+<a name="index-Export-program"></a>
+<a name="index-_002de_002c-in-modules-file"></a>
+</dd>
+<dt><code>-e <var>prog</var></code></dt>
+<dd><p>Specify a program <var>prog</var> to run whenever files in a
+module are exported.  <var>prog</var> runs with a single
+argument, the module name.
+</p>
+<a name="index-Checkout-program"></a>
+<a name="index-_002do_002c-in-modules-file"></a>
+</dd>
+<dt><code>-o <var>prog</var></code></dt>
+<dd><p>Specify a program <var>prog</var> to run whenever files in a
+module are checked out.  <var>prog</var> runs with a single
+argument, the module name.  See <a 
href="Module-program-options.html#Module-program-options">Module program 
options</a> for
+information on how <var>prog</var> is called.
+</p>
+<a name="index-Status-of-a-module"></a>
+<a name="index-Module-status"></a>
+<a name="index-_002ds_002c-in-modules-file"></a>
+</dd>
+<dt><code>-s <var>status</var></code></dt>
+<dd><p>Assign a status to the module.  When the module file is
+printed with &lsquo;<samp>cvs checkout -s</samp>&rsquo; the modules are
+sorted according to primarily module status, and
+secondarily according to the module name.  This option
+has no other meaning.  You can use this option for
+several things besides status: for instance, list the
+person that is responsible for this module.
+</p>
+<a name="index-Tag-program"></a>
+<a name="index-_002dt_002c-in-modules-file"></a>
+</dd>
+<dt><code>-t <var>prog</var></code></dt>
+<dd><p>Specify a program <var>prog</var> to run whenever files in a
+module are tagged with <code>rtag</code>.  <var>prog</var> runs
+with two arguments: the module name and the symbolic
+tag specified to <code>rtag</code>.  It is not run
+when <code>tag</code> is executed.  Generally you will find
+that the <samp>taginfo</samp> file is a better solution (see <a 
href="taginfo.html#taginfo">taginfo</a>).
+</p></dd>
+</dl>
+
+<p>You should also see see <a 
href="Module-program-options.html#Module-program-options">Module program 
options</a> about how the
+&ldquo;program options&rdquo; programs are run.
+</p>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Module-program-options.html#Module-program-options" 
accesskey="n" rel="next">Module program options</a>, Previous: <a 
href="Excluding-directories.html#Excluding-directories" accesskey="p" 
rel="prev">Excluding directories</a>, Up: <a href="modules.html#modules" 
accesskey="u" rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Module-program-options.html
===================================================================
RCS file: html_node/Module-program-options.html
diff -N html_node/Module-program-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Module-program-options.html       28 Dec 2015 15:58:00 -0000      
1.1
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Module program 
options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Module program options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Module program options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="modules.html#modules" rel="up" title="modules">
+<link href="Wrappers.html#Wrappers" rel="next" title="Wrappers">
+<link href="Module-options.html#Module-options" rel="prev" title="Module 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Module-program-options"></a>
+<div class="header">
+<p>
+Previous: <a href="Module-options.html#Module-options" accesskey="p" 
rel="prev">Module options</a>, Up: <a href="modules.html#modules" accesskey="u" 
rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a 
name="How-the-modules-file-_0060_0060program-options_0027_0027-programs-are-run"></a>
+<h4 class="appendixsubsec">C.1.6 How the modules file &ldquo;program 
options&rdquo; programs are run</h4>
+<a name="index-Modules-file-program-options"></a>
+<a name="index-_002dt_002c-in-modules-file-1"></a>
+<a name="index-_002do_002c-in-modules-file-1"></a>
+<a name="index-_002de_002c-in-modules-file-1"></a>
+
+<p>For checkout, rtag, and export, the program is server-based, and as such the
+following applies:-
+</p>
+<p>If using remote access methods (pserver, ext, etc.),
+<small>CVS</small> will execute this program on the server from a temporary
+directory. The path is searched for this program.
+</p>
+<p>If using &ldquo;local access&rdquo; (on a local or remote NFS file system, 
i.e.,
+repository set just to a path),
+the program will be executed from the newly checked-out tree, if
+found there, or alternatively searched for in the path if not.
+</p>
+<p>The programs are all run after the operation has effectively
+completed.
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/Moving-a-repository.html
===================================================================
RCS file: html_node/Moving-a-repository.html
diff -N html_node/Moving-a-repository.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Moving-a-repository.html  28 Dec 2015 15:58:01 -0000      1.1
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Moving a 
repository</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Moving a repository">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Moving a repository">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Remote-repositories.html#Remote-repositories" rel="next" 
title="Remote repositories">
+<link href="Backing-up.html#Backing-up" rel="prev" title="Backing up">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Moving-a-repository"></a>
+<div class="header">
+<p>
+Next: <a href="Remote-repositories.html#Remote-repositories" accesskey="n" 
rel="next">Remote repositories</a>, Previous: <a 
href="Backing-up.html#Backing-up" accesskey="p" rel="prev">Backing up</a>, Up: 
<a href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Moving-a-repository-1"></a>
+<h3 class="section">2.8 Moving a repository</h3>
+<a name="index-Repository_002c-moving"></a>
+<a name="index-Moving-a-repository"></a>
+<a name="index-Copying-a-repository"></a>
+
+<p>Just as backing up the files in the repository is
+pretty much like backing up any other files, if you
+need to move a repository from one place to another it
+is also pretty much like just moving any other
+collection of files.
+</p>
+<p>The main thing to consider is that working directories
+point to the repository.  The simplest way to deal with
+a moved repository is to just get a fresh working
+directory after the move.  Of course, you&rsquo;ll want to
+make sure that the old working directory had been
+checked in before the move, or you figured out some
+other way to make sure that you don&rsquo;t lose any
+changes.  If you really do want to reuse the existing
+working directory, it should be possible with manual
+surgery on the <samp>CVS/Repository</samp> files.  You can
+see <a href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a>, for information on
+the <samp>CVS/Repository</samp> and <samp>CVS/Root</samp> files, but
+unless you are sure you want to bother, it probably
+isn&rsquo;t worth it.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Moving-directories.html
===================================================================
RCS file: html_node/Moving-directories.html
diff -N html_node/Moving-directories.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Moving-directories.html   28 Dec 2015 15:58:01 -0000      1.1
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Moving 
directories</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Moving directories">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Moving directories">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="up" 
title="Adding and removing">
+<link href="History-browsing.html#History-browsing" rel="next" title="History 
browsing">
+<link href="Rename-by-copying.html#Rename-by-copying" rel="prev" title="Rename 
by copying">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Moving-directories"></a>
+<div class="header">
+<p>
+Previous: <a href="Moving-files.html#Moving-files" accesskey="p" 
rel="prev">Moving files</a>, Up: <a 
href="Adding-and-removing.html#Adding-and-removing" accesskey="u" 
rel="up">Adding and removing</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Moving-and-renaming-directories"></a>
+<h3 class="section">7.5 Moving and renaming directories</h3>
+<a name="index-Moving-directories"></a>
+<a name="index-Renaming-directories"></a>
+<a name="index-Directories_002c-moving"></a>
+
+<p>The normal way to rename or move a directory is to
+rename or move each file within it as described in
+<a href="Outside.html#Outside">Outside</a>.  Then check out with the 
&lsquo;<samp>-P</samp>&rsquo;
+option, as described in <a 
href="Removing-directories.html#Removing-directories">Removing directories</a>.
+</p>
+<p>If you really want to hack the repository to rename or
+delete a directory in the repository, you can do it
+like this:
+</p>
+<ol>
+<li> Inform everyone who has a checked out copy of the directory that the
+directory will be renamed.  They should commit all their changes in all their
+copies of the project containing the directory to be removed, and remove
+all their working copies of said project, before you take the steps below.
+
+</li><li> Rename the directory inside the repository.
+
+<div class="example">
+<pre class="example">$ cd $CVSROOT/<var>parent-dir</var>
+$ mv <var>old-dir</var> <var>new-dir</var>
+</pre></div>
+
+</li><li> Fix the <small>CVS</small> administrative files, if necessary (for
+instance if you renamed an entire module).
+
+</li><li> Tell everyone that they can check out again and continue
+working.
+
+</li></ol>
+
+<p>If someone had a working copy the <small>CVS</small> commands will
+cease to work for him, until he removes the directory
+that disappeared inside the repository.
+</p>
+<p>It is almost always better to move the files in the
+directory instead of moving the directory.  If you move the
+directory you are unlikely to be able to retrieve old
+releases correctly, since they probably depend on the
+name of the directories.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Moving-files.html
===================================================================
RCS file: html_node/Moving-files.html
diff -N html_node/Moving-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Moving-files.html 28 Dec 2015 15:58:01 -0000      1.1
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Moving files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Moving files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Moving files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="up" 
title="Adding and removing">
+<link href="Outside.html#Outside" rel="next" title="Outside">
+<link href="Removing-directories.html#Removing-directories" rel="prev" 
title="Removing directories">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Moving-files"></a>
+<div class="header">
+<p>
+Next: <a href="Moving-directories.html#Moving-directories" accesskey="n" 
rel="next">Moving directories</a>, Previous: <a 
href="Removing-directories.html#Removing-directories" accesskey="p" 
rel="prev">Removing directories</a>, Up: <a 
href="Adding-and-removing.html#Adding-and-removing" accesskey="u" 
rel="up">Adding and removing</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Moving-and-renaming-files"></a>
+<h3 class="section">7.4 Moving and renaming files</h3>
+<a name="index-Moving-files"></a>
+<a name="index-Renaming-files"></a>
+<a name="index-Files_002c-moving"></a>
+
+<p>Moving files to a different directory or renaming them
+is not difficult, but some of the ways in which this
+works may be non-obvious.  (Moving or renaming a
+directory is even harder.  See <a 
href="Moving-directories.html#Moving-directories">Moving directories</a>.).
+</p>
+<p>The examples below assume that the file <var>old</var> is renamed to
+<var>new</var>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="Outside.html#Outside" 
accesskey="1">Outside</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The normal way to Rename
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Inside.html#Inside" 
accesskey="2">Inside</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">A tricky, alternative way
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Rename-by-copying.html#Rename-by-copying" accesskey="3">Rename by 
copying</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Another 
tricky, alternative way
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Multiple-developers.html
===================================================================
RCS file: html_node/Multiple-developers.html
diff -N html_node/Multiple-developers.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Multiple-developers.html  28 Dec 2015 15:58:01 -0000      1.1
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Multiple 
developers</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Multiple developers">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Multiple developers">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="File-status.html#File-status" rel="next" title="File status">
+<link href="Binary-howto.html#Binary-howto" rel="prev" title="Binary howto">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Multiple-developers"></a>
+<div class="header">
+<p>
+Next: <a href="Revision-management.html#Revision-management" accesskey="n" 
rel="next">Revision management</a>, Previous: <a 
href="Binary-files.html#Binary-files" accesskey="p" rel="prev">Binary 
files</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Multiple-developers-1"></a>
+<h2 class="chapter">10 Multiple developers</h2>
+<a name="index-Multiple-developers"></a>
+<a name="index-Team-of-developers"></a>
+<a name="index-File-locking"></a>
+<a name="index-Locking-files"></a>
+<a name="index-Working-copy"></a>
+<a name="index-Reserved-checkouts"></a>
+<a name="index-Unreserved-checkouts"></a>
+<a name="index-RCS_002dstyle-locking"></a>
+
+<p>When more than one person works on a software project
+things often get complicated.  Often, two people try to
+edit the same file simultaneously.  One solution, known
+as <em>file locking</em> or <em>reserved checkouts</em>, is
+to allow only one person to edit each file at a time.
+This is the only solution with some version control
+systems, including <small>RCS</small> and <small>SCCS</small>.  Currently
+the usual way to get reserved checkouts with <small>CVS</small>
+is the <code>cvs admin -l</code> command (see <a 
href="admin-options.html#admin-options">admin options</a>).  This is not as 
nicely integrated into
+<small>CVS</small> as the watch features, described below, but it
+seems that most people with a need for reserved
+checkouts find it adequate.
+It also may be possible to use the watches
+features described below, together with suitable
+procedures (not enforced by software), to avoid having
+two people edit at the same time.
+</p>
+<p>The default model with <small>CVS</small> is known as
+<em>unreserved checkouts</em>.  In this model, developers
+can edit their own <em>working copy</em> of a file
+simultaneously.  The first person that commits his
+changes has no automatic way of knowing that another
+has started to edit it.  Others will get an error
+message when they try to commit the file.  They must
+then use <small>CVS</small> commands to bring their working copy
+up to date with the repository revision.  This process
+is almost automatic.
+</p>
+<p><small>CVS</small> also supports mechanisms which facilitate
+various kinds of communication, without actually
+enforcing rules like reserved checkouts do.
+</p>
+<p>The rest of this chapter describes how these various
+models work, and some of the issues involved in
+choosing between them.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="File-status.html#File-status" accesskey="1">File 
status</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A file can 
be in several states
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Updating-a-file.html#Updating-a-file" accesskey="2">Updating a 
file</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bringing a 
file up-to-date
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Conflicts-example.html#Conflicts-example" accesskey="3">Conflicts 
example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">An 
informative example
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Informing-others.html#Informing-others" accesskey="4">Informing 
others</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">To cooperate 
you must inform
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Concurrency.html#Concurrency" 
accesskey="5">Concurrency</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Simultaneous repository access
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Watches.html#Watches" 
accesskey="6">Watches</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Mechanisms to track who is editing files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Choosing-a-model.html#Choosing-a-model" accesskey="7">Choosing a 
model</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Reserved or 
unreserved checkouts?
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Revision-management.html#Revision-management" accesskey="n" 
rel="next">Revision management</a>, Previous: <a 
href="Binary-files.html#Binary-files" accesskey="p" rel="prev">Binary 
files</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Multiple-repositories.html
===================================================================
RCS file: html_node/Multiple-repositories.html
diff -N html_node/Multiple-repositories.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Multiple-repositories.html        28 Dec 2015 15:58:02 -0000      
1.1
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Multiple 
repositories</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Multiple repositories">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Multiple repositories">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Creating-a-repository.html#Creating-a-repository" rel="next" 
title="Creating a repository">
+<link href="Intro-administrative-files.html#Intro-administrative-files" 
rel="prev" title="Intro administrative files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Multiple-repositories"></a>
+<div class="header">
+<p>
+Next: <a href="Creating-a-repository.html#Creating-a-repository" accesskey="n" 
rel="next">Creating a repository</a>, Previous: <a 
href="Intro-administrative-files.html#Intro-administrative-files" accesskey="p" 
rel="prev">Intro administrative files</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Multiple-repositories-1"></a>
+<h3 class="section">2.5 Multiple repositories</h3>
+<a name="index-Multiple-repositories"></a>
+<a name="index-Repositories_002c-multiple"></a>
+<a name="index-Many-repositories"></a>
+<a name="index-Parallel-repositories"></a>
+<a name="index-Disjoint-repositories"></a>
+<a name="index-CVSROOT_002c-multiple-repositories"></a>
+
+<p>In some situations it is a good idea to have more than
+one repository, for instance if you have two
+development groups that work on separate projects
+without sharing any code.  All you have to do to have
+several repositories is to specify the appropriate
+repository, using the <code>CVSROOT</code> environment
+variable, the &lsquo;<samp>-d</samp>&rsquo; option to <small>CVS</small>, or 
(once
+you have checked out a working directory) by simply
+allowing <small>CVS</small> to use the repository that was used
+to check out the working directory
+(see <a href="Specifying-a-repository.html#Specifying-a-repository">Specifying 
a repository</a>).
+</p>
+<p>The big advantage of having multiple repositories is
+that they can reside on different servers.  With <small>CVS</small>
+version 1.10, a single command cannot recurse into
+directories from different repositories.  With development
+versions of <small>CVS</small>, you can check out code from multiple
+servers into your working directory.  <small>CVS</small> will
+recurse and handle all the details of making
+connections to as many server machines as necessary to
+perform the requested command.  Here is an example of
+how to set up a working directory:
+</p>
+<div class="example">
+<pre class="example">cvs -d server1:/cvs co dir1
+cd dir1
+cvs -d server2:/root co sdir
+cvs update
+</pre></div>
+
+<p>The <code>cvs co</code> commands set up the working
+directory, and then the <code>cvs update</code> command will
+contact server2, to update the dir1/sdir subdirectory,
+and server1, to update everything else.
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/Multiple-vendor-branches.html
===================================================================
RCS file: html_node/Multiple-vendor-branches.html
diff -N html_node/Multiple-vendor-branches.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Multiple-vendor-branches.html     28 Dec 2015 15:58:02 -0000      
1.1
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Multiple vendor 
branches</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Multiple vendor branches">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Multiple vendor branches">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Tracking-sources.html#Tracking-sources" rel="up" title="Tracking 
sources">
+<link href="Builds.html#Builds" rel="next" title="Builds">
+<link href="Keywords-in-imports.html#Keywords-in-imports" rel="prev" 
title="Keywords in imports">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Multiple-vendor-branches"></a>
+<div class="header">
+<p>
+Previous: <a href="Keywords-in-imports.html#Keywords-in-imports" accesskey="p" 
rel="prev">Keywords in imports</a>, Up: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="u" rel="up">Tracking 
sources</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Multiple-vendor-branches-1"></a>
+<h3 class="section">13.6 Multiple vendor branches</h3>
+
+<p>All the examples so far assume that there is only one
+vendor from which you are getting sources.  In some
+situations you might get sources from a variety of
+places.  For example, suppose that you are dealing with
+a project where many different people and teams are
+modifying the software.  There are a variety of ways to
+handle this, but in some cases you have a bunch of
+source trees lying around and what you want to do more
+than anything else is just to all put them in <small>CVS</small> so
+that you at least have them in one place.
+</p>
+<p>For handling situations in which there may be more than
+one vendor, you may specify the &lsquo;<samp>-b</samp>&rsquo; option to
+<code>cvs import</code>.  It takes as an argument the vendor
+branch to import to.  The default is &lsquo;<samp>-b 1.1.1</samp>&rsquo;.
+</p>
+<p>For example, suppose that there are two teams, the red
+team and the blue team, that are sending you sources.
+You want to import the red team&rsquo;s efforts to branch
+1.1.1 and use the vendor tag RED.  You want to import
+the blue team&rsquo;s efforts to branch 1.1.3 and use the
+vendor tag BLUE.  So the commands you might use are:
+</p>
+<div class="example">
+<pre class="example">$ cvs import dir RED RED_1-0
+$ cvs import -b 1.1.3 dir BLUE BLUE_1-5
+</pre></div>
+
+<p>Note that if your vendor tag does not match your
+&lsquo;<samp>-b</samp>&rsquo; option, <small>CVS</small> will not detect this 
case!  For
+example,
+</p>
+<div class="example">
+<pre class="example">$ cvs import -b 1.1.3 dir RED RED_1-0
+</pre></div>
+
+<p>Be careful; this kind of mismatch is sure to sow
+confusion or worse.  I can&rsquo;t think of a useful purpose
+for the ability to specify a mismatch here, but if you
+discover such a use, don&rsquo;t.  <small>CVS</small> is likely to make this
+an error in some future release.
+</p>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Keywords-in-imports.html#Keywords-in-imports" accesskey="p" 
rel="prev">Keywords in imports</a>, Up: <a 
href="Tracking-sources.html#Tracking-sources" accesskey="u" rel="up">Tracking 
sources</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Other-problems.html
===================================================================
RCS file: html_node/Other-problems.html
diff -N html_node/Other-problems.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Other-problems.html       28 Dec 2015 15:58:02 -0000      1.1
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Other problems</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Other problems">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Other problems">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Troubleshooting.html#Troubleshooting" rel="up" 
title="Troubleshooting">
+<link href="Credits.html#Credits" rel="next" title="Credits">
+<link href="Connection.html#Connection" rel="prev" title="Connection">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Other-problems"></a>
+<div class="header">
+<p>
+Previous: <a href="Connection.html#Connection" accesskey="p" 
rel="prev">Connection</a>, Up: <a href="Troubleshooting.html#Troubleshooting" 
accesskey="u" rel="up">Troubleshooting</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Other-common-problems"></a>
+<h3 class="appendixsec">F.3 Other common problems</h3>
+
+<p>Here is a list of problems which do not fit into the
+above categories.  They are in no particular order.
+</p>
+<ul>
+<li> On Windows, if there is a 30 second or so delay when
+you run a <small>CVS</small> command, it may mean that you have
+your home directory set to <samp>C:/</samp>, for example (see
+<code>HOMEDRIVE</code> and <code>HOMEPATH</code> in
+<a href="Environment-variables.html#Environment-variables">Environment 
variables</a>).  <small>CVS</small> expects the home
+directory to not end in a slash, for example <samp>C:</samp>
+or <samp>C:\cvs</samp>.
+
+</li><li> If you are running <small>CVS</small> 1.9.18 or older, and
+<code>cvs update</code> finds a conflict and tries to
+merge, as described in <a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a>, but
+doesn&rsquo;t tell you there were conflicts, then you may
+have an old version of <small>RCS</small>.  The easiest solution
+probably is to upgrade to a current version of
+<small>CVS</small>, which does not rely on external <small>RCS</small>
+programs.
+</li></ul>
+
+
+
+
+</body>
+</html>

Index: html_node/Outside.html
===================================================================
RCS file: html_node/Outside.html
diff -N html_node/Outside.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Outside.html      28 Dec 2015 15:58:02 -0000      1.1
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Outside</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Outside">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Outside">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Moving-files.html#Moving-files" rel="up" title="Moving files">
+<link href="Inside.html#Inside" rel="next" title="Inside">
+<link href="Moving-files.html#Moving-files" rel="prev" title="Moving files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Outside"></a>
+<div class="header">
+<p>
+Next: <a href="Inside.html#Inside" accesskey="n" rel="next">Inside</a>, Up: <a 
href="Moving-files.html#Moving-files" accesskey="u" rel="up">Moving files</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-Normal-way-to-Rename"></a>
+<h4 class="subsection">7.4.1 The Normal way to Rename</h4>
+
+
+<p>The normal way to move a file is to copy <var>old</var> to
+<var>new</var>, and then issue the normal <small>CVS</small> commands
+to remove <var>old</var> from the repository, and add
+<var>new</var> to it.
+</p>
+<div class="example">
+<pre class="example">$ mv <var>old</var> <var>new</var>
+$ cvs remove <var>old</var>
+$ cvs add <var>new</var>
+$ cvs commit -m &quot;Renamed <var>old</var> to <var>new</var>&quot; 
<var>old</var> <var>new</var>
+</pre></div>
+
+<p>This is the simplest way to move a file, it is not
+error-prone, and it preserves the history of what was
+done.  Note that to access the history of the file you
+must specify the old or the new name, depending on what
+portion of the history you are accessing.  For example,
+<code>cvs log <var>old</var></code> will give the log up until the
+time of the rename.
+</p>
+<p>When <var>new</var> is committed its revision numbers will
+start again, usually at 1.1, so if that bothers you,
+use the &lsquo;<samp>-r rev</samp>&rsquo; option to commit.  For more
+information see <a 
href="Assigning-revisions.html#Assigning-revisions">Assigning revisions</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Overview.html
===================================================================
RCS file: html_node/Overview.html
diff -N html_node/Overview.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Overview.html     28 Dec 2015 15:58:02 -0000      1.1
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Overview</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Overview">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Overview">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="What-is-CVS_003f.html#What-is-CVS_003f" rel="next" title="What is 
CVS?">
+<link href="index.html#Top" rel="prev" title="Top">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Overview"></a>
+<div class="header">
+<p>
+Next: <a href="Repository.html#Repository" accesskey="n" 
rel="next">Repository</a>, Previous: <a href="index.html#Top" accesskey="p" 
rel="prev">Top</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Overview-1"></a>
+<h2 class="chapter">1 Overview</h2>
+<a name="index-Overview"></a>
+
+<p>This chapter is for people who have never used
+<small>CVS</small>, and perhaps have never used version control
+software before.
+</p>
+<p>If you are already familiar with <small>CVS</small> and are just
+trying to learn a particular feature or remember a
+certain command, you can probably skip everything here.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="What-is-CVS_003f.html#What-is-CVS_003f" accesskey="1">What is 
CVS?</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What you can 
do with <small>CVS</small>
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="What-is-CVS-not_003f.html#What-is-CVS-not_003f" accesskey="2">What is CVS 
not?</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Problems 
<small>CVS</small> doesn&rsquo;t try to solve
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="A-sample-session.html#A-sample-session" accesskey="3">A sample 
session</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A tour of 
basic <small>CVS</small> usage
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Password-authenticated.html
===================================================================
RCS file: html_node/Password-authenticated.html
diff -N html_node/Password-authenticated.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Password-authenticated.html       28 Dec 2015 15:58:03 -0000      
1.1
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Password 
authenticated</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Password authenticated">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Password authenticated">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Remote-repositories.html#Remote-repositories" rel="up" 
title="Remote repositories">
+<link 
href="Password-authentication-server.html#Password-authentication-server" 
rel="next" title="Password authentication server">
+<link href="Connecting-via-rsh.html#Connecting-via-rsh" rel="prev" 
title="Connecting via rsh">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Password-authenticated"></a>
+<div class="header">
+<p>
+Next: <a href="GSSAPI-authenticated.html#GSSAPI-authenticated" accesskey="n" 
rel="next">GSSAPI authenticated</a>, Previous: <a 
href="Connecting-via-rsh.html#Connecting-via-rsh" accesskey="p" 
rel="prev">Connecting via rsh</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Direct-connection-with-password-authentication"></a>
+<h4 class="subsection">2.9.3 Direct connection with password 
authentication</h4>
+
+<p>The <small>CVS</small> client can also connect to the server
+using a password protocol.  This is particularly useful
+if using <code>rsh</code> is not feasible (for example,
+the server is behind a firewall), and Kerberos also is
+not available.
+</p>
+<p>To use this method, it is necessary to make
+some adjustments on both the server and client sides.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Password-authentication-server.html#Password-authentication-server" 
accesskey="1">Password authentication server</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Setting up the server
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Password-authentication-client.html#Password-authentication-client" 
accesskey="2">Password authentication client</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Using the client
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Password-authentication-security.html#Password-authentication-security" 
accesskey="3">Password authentication 
security</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What this 
method does and does not do
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Password-authentication-client.html
===================================================================
RCS file: html_node/Password-authentication-client.html
diff -N html_node/Password-authentication-client.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Password-authentication-client.html       28 Dec 2015 15:58:03 
-0000      1.1
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Password authentication 
client</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Password authentication client">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Password authentication client">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Password-authenticated.html#Password-authenticated" rel="up" 
title="Password authenticated">
+<link 
href="Password-authentication-security.html#Password-authentication-security" 
rel="next" title="Password authentication security">
+<link 
href="Password-authentication-server.html#Password-authentication-server" 
rel="prev" title="Password authentication server">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Password-authentication-client"></a>
+<div class="header">
+<p>
+Next: <a 
href="Password-authentication-security.html#Password-authentication-security" 
accesskey="n" rel="next">Password authentication security</a>, Previous: <a 
href="Password-authentication-server.html#Password-authentication-server" 
accesskey="p" rel="prev">Password authentication server</a>, Up: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Using-the-client-with-password-authentication"></a>
+<h4 class="subsubsection">2.9.3.2 Using the client with password 
authentication</h4>
+<a name="index-Login-_0028subcommand_0029"></a>
+<a name="index-Password-client_002c-using"></a>
+<a name="index-Authenticated-client_002c-using"></a>
+<a name="index-_003apserver_003a_002c-setting-up"></a>
+<p>To run a <small>CVS</small> command on a remote repository via
+the password-authenticating server, one specifies the
+<code>pserver</code> protocol, optional username, repository host, an
+optional port number, and path to the repository.  For example:
+</p>
+<div class="example">
+<pre class="example">cvs -d :pserver:faun.example.org:/usr/local/cvsroot 
checkout someproj
+</pre></div>
+
+<p>or
+</p>
+<div class="example">
+<pre class="example">CVSROOT=:pserver:address@hidden:2401/usr/local/cvsroot
+cvs checkout someproj
+</pre></div>
+
+<p>However, unless you&rsquo;re connecting to a public-access
+repository (i.e., one where that username doesn&rsquo;t
+require a password), you&rsquo;ll need to supply a password or <em>log in</em> 
first.
+Logging in verifies your password with the repository and stores it in a file.
+It&rsquo;s done with the <code>login</code> command, which will
+prompt you interactively for the password if you didn&rsquo;t supply one as 
part of
+<var>$CVSROOT</var>:
+</p>
+<div class="example">
+<pre class="example">cvs -d :pserver:address@hidden:/usr/local/cvsroot login
+CVS password:
+</pre></div>
+
+<p>or
+</p>
+<div class="example">
+<pre class="example">cvs -d :pserver:bach:address@hidden:/usr/local/cvsroot 
login
+</pre></div>
+
+<p>After you enter the password, <small>CVS</small> verifies it with
+the server.  If the verification succeeds, then that
+combination of username, host, repository, and password
+is permanently recorded, so future transactions with
+that repository won&rsquo;t require you to run <code>cvs
+login</code>.  (If verification fails, <small>CVS</small> will exit
+complaining that the password was incorrect, and
+nothing will be recorded.)
+</p>
+<p>The records are stored, by default, in the file
+<samp>$HOME/.cvspass</samp>.  That file&rsquo;s format is
+human-readable, and to a degree human-editable, but
+note that the passwords are not stored in
+cleartext&mdash;they are trivially encoded to protect them
+from &quot;innocent&quot; compromise (i.e., inadvertent viewing
+by a system administrator or other non-malicious
+person).
+</p>
+<a name="index-CVS_005fPASSFILE_002c-environment-variable"></a>
+<p>You can change the default location of this file by
+setting the <code>CVS_PASSFILE</code> environment variable.
+If you use this variable, make sure you set it
+<em>before</em> <code>cvs login</code> is run.  If you were to
+set it after running <code>cvs login</code>, then later
+<small>CVS</small> commands would be unable to look up the
+password for transmission to the server.
+</p>  
+<p>Once you have logged in, all <small>CVS</small> commands using
+that remote repository and username will authenticate
+with the stored password.  So, for example
+</p>  
+<div class="example">
+<pre class="example">cvs -d :pserver:address@hidden:/usr/local/cvsroot 
checkout foo
+</pre></div>
+
+<p>should just work (unless the password changes on the
+server side, in which case you&rsquo;ll have to re-run
+<code>cvs login</code>).
+</p>
+<p>Note that if the &lsquo;<samp>:pserver:</samp>&rsquo; were not present in
+the repository specification, <small>CVS</small> would assume it
+should use <code>rsh</code> to connect with the server
+instead (see <a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting 
via rsh</a>).
+</p>
+<p>Of course, once you have a working copy checked out and
+are running <small>CVS</small> commands from within it, there is
+no longer any need to specify the repository
+explicitly, because <small>CVS</small> can deduce the repository
+from the working copy&rsquo;s <samp>CVS</samp> subdirectory.
+</p>
+<a name="index-Logout-_0028subcommand_0029"></a>
+<p>The password for a given remote repository can be
+removed from the <code>CVS_PASSFILE</code> by using the
+<code>cvs logout</code> command.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a 
href="Password-authentication-security.html#Password-authentication-security" 
accesskey="n" rel="next">Password authentication security</a>, Previous: <a 
href="Password-authentication-server.html#Password-authentication-server" 
accesskey="p" rel="prev">Password authentication server</a>, Up: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Password-authentication-security.html
===================================================================
RCS file: html_node/Password-authentication-security.html
diff -N html_node/Password-authentication-security.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Password-authentication-security.html     28 Dec 2015 15:58:03 
-0000      1.1
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Password authentication 
security</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Password authentication security">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Password authentication security">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Password-authenticated.html#Password-authenticated" rel="up" 
title="Password authenticated">
+<link href="GSSAPI-authenticated.html#GSSAPI-authenticated" rel="next" 
title="GSSAPI authenticated">
+<link 
href="Password-authentication-client.html#Password-authentication-client" 
rel="prev" title="Password authentication client">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Password-authentication-security"></a>
+<div class="header">
+<p>
+Previous: <a 
href="Password-authentication-client.html#Password-authentication-client" 
accesskey="p" rel="prev">Password authentication client</a>, Up: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Security-considerations-with-password-authentication"></a>
+<h4 class="subsubsection">2.9.3.3 Security considerations with password 
authentication</h4>
+
+<a name="index-Security_002c-of-pserver"></a>
+<p>The passwords are stored on the client side in a
+trivial encoding of the cleartext, and transmitted in
+the same encoding.  The encoding is done only to
+prevent inadvertent password compromises (i.e., a
+system administrator accidentally looking at the file),
+and will not prevent even a naive attacker from gaining
+the password.
+</p>
+<p>The separate <small>CVS</small> password file (see <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>) allows people
+to use a different password for repository access than
+for login access.  On the other hand, once a user has
+non-read-only
+access to the repository, she can execute programs on
+the server system through a variety of means.  Thus, repository
+access implies fairly broad system access as well.  It
+might be possible to modify <small>CVS</small> to prevent that,
+but no one has done so as of this writing.
+</p>
+<p>Note that because the <samp>$CVSROOT/CVSROOT</samp> directory
+contains <samp>passwd</samp> and other files which are used
+to check security, you must control the permissions on
+this directory as tightly as the permissions on
+<samp>/etc</samp>.  The same applies to the <samp>$CVSROOT</samp>
+directory itself and any directory
+above it in the tree.  Anyone who has write access to
+such a directory will have the ability to become any
+user on the system.  Note that these permissions are
+typically tighter than you would use if you are not
+using pserver.
+</p>
+<p>In summary, anyone who gets the password gets
+repository access (which may imply some measure of general system
+access as well).  The password is available to anyone
+who can sniff network packets or read a protected
+(i.e., user read-only) file.  If you want real
+security, get Kerberos.
+</p>
+<hr>
+<div class="header">
+<p>
+Previous: <a 
href="Password-authentication-client.html#Password-authentication-client" 
accesskey="p" rel="prev">Password authentication client</a>, Up: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Password-authentication-server.html
===================================================================
RCS file: html_node/Password-authentication-server.html
diff -N html_node/Password-authentication-server.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Password-authentication-server.html       28 Dec 2015 15:58:03 
-0000      1.1
@@ -0,0 +1,290 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Password authentication 
server</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Password authentication server">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Password authentication server">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Password-authenticated.html#Password-authenticated" rel="up" 
title="Password authenticated">
+<link 
href="Password-authentication-client.html#Password-authentication-client" 
rel="next" title="Password authentication client">
+<link href="Password-authenticated.html#Password-authenticated" rel="prev" 
title="Password authenticated">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Password-authentication-server"></a>
+<div class="header">
+<p>
+Next: <a 
href="Password-authentication-client.html#Password-authentication-client" 
accesskey="n" rel="next">Password authentication client</a>, Up: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Setting-up-the-server-for-password-authentication"></a>
+<h4 class="subsubsection">2.9.3.1 Setting up the server for password 
authentication</h4>
+
+<p>First of all, you probably want to tighten the
+permissions on the <samp>$CVSROOT</samp> and
+<samp>$CVSROOT/CVSROOT</samp> directories.  See <a 
href="Password-authentication-security.html#Password-authentication-security">Password
 authentication security</a>, for more details.
+</p>
+<a name="index-pserver-_0028subcommand_0029"></a>
+<a name="index-Remote-repositories_002c-port-specification-1"></a>
+<a name="index-Repositories_002c-remote_002c-port-specification-1"></a>
+<a name="index-Client_002fServer-Operation_002c-port-specification-1"></a>
+<a 
name="index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1"></a>
+<a 
name="index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1"></a>
+<a 
name="index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification-1"></a>
+<a name="index-port_002c-specifying-for-remote-repositories-1"></a>
+<a name="index-Password-server_002c-setting-up"></a>
+<a name="index-Authenticating-server_002c-setting-up"></a>
+<a name="index-inetd_002c-configuring-for-pserver"></a>
+<a name="index-xinetd_002c-configuring-for-pserver"></a>
+<p>On the server side, the file <samp>/etc/inetd.conf</samp>
+needs to be edited so <code>inetd</code> knows to run the
+command <code>cvs pserver</code> when it receives a
+connection on the right port.  By default, the port
+number is 2401; it would be different if your client
+were compiled with <code>CVS_AUTH_PORT</code> defined to
+something else, though.  This can also be specified in the CVSROOT variable
+(see <a href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a>) or overridden with the CVS_CLIENT_PORT
+environment variable (see <a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a>).
+</p>
+<p>If your <code>inetd</code> allows raw port numbers in
+<samp>/etc/inetd.conf</samp>, then the following (all on a
+single line in <samp>inetd.conf</samp>) should be sufficient:
+</p>
+<div class="example">
+<pre class="example">2401  stream  tcp  nowait  root  /usr/local/bin/cvs
+cvs -f --allow-root=/usr/cvsroot pserver
+</pre></div>
+
+<p>(You could also use the
+&lsquo;<samp>-T</samp>&rsquo; option to specify a temporary directory.)
+</p>
+<p>The &lsquo;<samp>--allow-root</samp>&rsquo; option specifies the allowable
+<small>CVSROOT</small> directory.  Clients which attempt to use a
+different <small>CVSROOT</small> directory will not be allowed to
+connect.  If there is more than one <small>CVSROOT</small>
+directory which you want to allow, repeat the option.
+Unfortunately, many versions of <code>inetd</code> have very small
+limits on the number of arguments and/or the total length
+of the command.  The usual solution to this problem is
+to have <code>inetd</code> run a shell script which then invokes
+<small>CVS</small> with the necessary arguments:
+</p>
+<div class="example">
+<pre class="example">#! /bin/sh
+exec /usr/local/bin/cvs -f \
+     --allow-root=/repo1 \
+     --allow-root=/repo2 \
+     ...
+     --allow-root=/repo<var>N</var> \
+     pserver
+</pre></div>
+
+<p>If your <code>inetd</code> wants a symbolic service
+name instead of a raw port number, then put this in
+<samp>/etc/services</samp>:
+</p>
+<div class="example">
+<pre class="example">cvspserver      2401/tcp
+</pre></div>
+
+<p>and put <code>cvspserver</code> instead of <code>2401</code> in 
<samp>inetd.conf</samp>.
+</p>
+<p>If your system uses <code>xinetd</code> instead of <code>inetd</code>,
+the procedure is slightly different.
+Create a file called <samp>/etc/xinetd.d/cvspserver</samp> containing the 
following:
+</p>
+<div class="example">
+<pre class="example">service cvspserver
+{
+   port        = 2401
+   socket_type = stream
+   protocol    = tcp
+   wait        = no
+   user        = root
+   passenv     = PATH
+   server      = /usr/local/bin/cvs
+   server_args = -f --allow-root=/usr/cvsroot pserver
+}
+</pre></div>
+
+<p>(If <code>cvspserver</code> is defined in <samp>/etc/services</samp>, you 
can omit
+the <code>port</code> line.)
+</p>
+<p>Once the above is taken care of, restart your
+<code>inetd</code>, or do whatever is necessary to force it
+to reread its initialization files.
+</p>
+<p>If you are having trouble setting this up, see
+<a href="Connection.html#Connection">Connection</a>.
+</p>
+<a name="index-CVS-passwd-file"></a>
+<a name="index-passwd-_0028admin-file_0029"></a>
+<p>Because the client stores and transmits passwords in
+cleartext (almost&mdash;see <a 
href="Password-authentication-security.html#Password-authentication-security">Password
 authentication security</a>, for details), a separate <small>CVS</small> 
password
+file is generally used, so people don&rsquo;t compromise
+their regular passwords when they access the
+repository.  This file is
+<samp>$CVSROOT/CVSROOT/passwd</samp> (see <a 
href="Intro-administrative-files.html#Intro-administrative-files">Intro 
administrative files</a>).  It uses a colon-separated
+format, similar to <samp>/etc/passwd</samp> on Unix systems,
+except that it has fewer fields: <small>CVS</small> username,
+optional password, and an optional system username for
+<small>CVS</small> to run as if authentication succeeds.  Here is
+an example <samp>passwd</samp> file with five entries:
+</p>
+<div class="example">
+<pre class="example">anonymous:
+bach:ULtgRLXo7NRxs
+spwang:1sOp854gDF3DY
+melissa:tGX1fS8sun6rY:pubcvs
+qproj:XR4EZcEs0szik:pubcvs
+</pre></div>
+
+<p>(The passwords are encrypted according to the standard
+Unix <code>crypt()</code> function, so it is possible to
+paste in passwords directly from regular Unix
+<samp>/etc/passwd</samp> files.)
+</p>
+<p>The first line in the example will grant access to any
+<small>CVS</small> client attempting to authenticate as user
+<code>anonymous</code>, no matter what password they use,
+including an empty password.  (This is typical for
+sites granting anonymous read-only access; for
+information on how to do the &quot;read-only&quot; part, see
+<a href="Read_002donly-access.html#Read_002donly-access">Read-only access</a>.)
+</p>
+<p>The second and third lines will grant access to
+<code>bach</code> and <code>spwang</code> if they supply their
+respective plaintext passwords.
+</p>
+<a name="index-User-aliases"></a>
+<p>The fourth line will grant access to <code>melissa</code>, if
+she supplies the correct password, but her <small>CVS</small>
+operations will actually run on the server side under
+the system user <code>pubcvs</code>.  Thus, there need not be
+any system user named <code>melissa</code>, but there
+<em>must</em> be one named <code>pubcvs</code>.
+</p>
+<p>The fifth line shows that system user identities can be
+shared: any client who successfully authenticates as
+<code>qproj</code> will actually run as <code>pubcvs</code>, just
+as <code>melissa</code> does.  That way you could create a
+single, shared system user for each project in your
+repository, and give each developer their own line in
+the <samp>$CVSROOT/CVSROOT/passwd</samp> file.  The <small>CVS</small>
+username on each line would be different, but the
+system username would be the same.  The reason to have
+different <small>CVS</small> usernames is that <small>CVS</small> will log 
their
+actions under those names: when <code>melissa</code> commits
+a change to a project, the checkin is recorded in the
+project&rsquo;s history under the name <code>melissa</code>, not
+<code>pubcvs</code>.  And the reason to have them share a
+system username is so that you can arrange permissions
+in the relevant area of the repository such that only
+that account has write-permission there.
+</p>
+<p>If the system-user field is present, all
+password-authenticated <small>CVS</small> commands run as that
+user; if no system user is specified, <small>CVS</small> simply
+takes the <small>CVS</small> username as the system username and
+runs commands as that user.  In either case, if there
+is no such user on the system, then the <small>CVS</small>
+operation will fail (regardless of whether the client
+supplied a valid password).
+</p>
+<p>The password and system-user fields can both be omitted
+(and if the system-user field is omitted, then also
+omit the colon that would have separated it from the
+encrypted password).  For example, this would be a
+valid <samp>$CVSROOT/CVSROOT/passwd</samp> file:
+</p>
+<div class="example">
+<pre class="example">anonymous::pubcvs
+fish:rKa5jzULzmhOo:kfogel
+sussman:1sOp854gDF3DY
+</pre></div>
+
+<p>When the password field is omitted or empty, then the
+client&rsquo;s authentication attempt will succeed with any
+password, including the empty string.  However, the
+colon after the <small>CVS</small> username is always necessary,
+even if the password is empty.
+</p>
+<p><small>CVS</small> can also fall back to use system authentication.
+When authenticating a password, the server first checks
+for the user in the <samp>$CVSROOT/CVSROOT/passwd</samp>
+file.  If it finds the user, it will use that entry for
+authentication as described above.  But if it does not
+find the user, or if the <small>CVS</small> <samp>passwd</samp> file
+does not exist, then the server can try to authenticate
+the username and password using the operating system&rsquo;s
+user-lookup routines (this &quot;fallback&quot; behavior can be
+disabled by setting <code>SystemAuth=no</code> in the
+<small>CVS</small> <samp>config</samp> file, see <a 
href="config.html#config">config</a>).  Be
+aware, however, that falling back to system
+authentication might be a security risk: <small>CVS</small>
+operations would then be authenticated with that user&rsquo;s
+regular login password, and the password flies across
+the network in plaintext.  See <a 
href="Password-authentication-security.html#Password-authentication-security">Password
 authentication security</a> for more on this.
+</p>
+<p>Right now, the only way to put a password in the
+<small>CVS</small> <samp>passwd</samp> file is to paste it there from
+somewhere else.  Someday, there may be a <code>cvs
+passwd</code> command.
+</p>
+<p>Unlike many of the files in <samp>$CVSROOT/CVSROOT</samp>, it
+is normal to edit the <samp>passwd</samp> file in-place,
+rather than via <small>CVS</small>.  This is because of the
+possible security risks of having the <samp>passwd</samp>
+file checked out to people&rsquo;s working copies.  If you do
+want to include the <samp>passwd</samp> file in checkouts of
+<samp>$CVSROOT/CVSROOT</samp>, see <a 
href="checkoutlist.html#checkoutlist">checkoutlist</a>.
+</p>
+
+<hr>
+<div class="header">
+<p>
+Next: <a 
href="Password-authentication-client.html#Password-authentication-client" 
accesskey="n" rel="next">Password authentication client</a>, Up: <a 
href="Password-authenticated.html#Password-authenticated" accesskey="u" 
rel="up">Password authenticated</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Read_002donly-access.html
===================================================================
RCS file: html_node/Read_002donly-access.html
diff -N html_node/Read_002donly-access.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Read_002donly-access.html 28 Dec 2015 15:58:03 -0000      1.1
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Read-only access</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Read-only access">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Read-only access">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Server-temporary-directory.html#Server-temporary-directory" 
rel="next" title="Server temporary directory">
+<link href="Connecting-via-fork.html#Connecting-via-fork" rel="prev" 
title="Connecting via fork">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Read_002donly-access"></a>
+<div class="header">
+<p>
+Next: <a href="Server-temporary-directory.html#Server-temporary-directory" 
accesskey="n" rel="next">Server temporary directory</a>, Previous: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="p" 
rel="prev">Remote repositories</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Read_002donly-repository-access"></a>
+<h3 class="section">2.10 Read-only repository access</h3>
+<a name="index-Read_002donly-repository-access"></a>
+<a name="index-readers-_0028admin-file_0029"></a>
+<a name="index-writers-_0028admin-file_0029"></a>
+
+<p>It is possible to grant read-only repository
+access to people using the password-authenticated
+server (see <a 
href="Password-authenticated.html#Password-authenticated">Password 
authenticated</a>).  (The
+other access methods do not have explicit support for
+read-only users because those methods all assume login
+access to the repository machine anyway, and therefore
+the user can do whatever local file permissions allow
+her to do.)
+</p>
+<p>A user who has read-only access can do only
+those <small>CVS</small> operations which do not modify the
+repository, except for certain &ldquo;administrative&rdquo; files
+(such as lock files and the history file).  It may be
+desirable to use this feature in conjunction with
+user-aliasing (see <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>).
+</p>
+<p>Unlike with previous versions of <small>CVS</small>, read-only
+users should be able merely to read the repository, and
+not to execute programs on the server or otherwise gain
+unexpected levels of access.  Or to be more accurate,
+the <em>known</em> holes have been plugged.  Because this
+feature is new and has not received a comprehensive
+security audit, you should use whatever level of
+caution seems warranted given your attitude concerning
+security.
+</p>
+<p>There are two ways to specify read-only access
+for a user: by inclusion, and by exclusion.
+</p>
+<p>&quot;Inclusion&quot; means listing that user
+specifically in the <samp>$CVSROOT/CVSROOT/readers</samp>
+file, which is simply a newline-separated list of
+users.  Here is a sample <samp>readers</samp> file:
+</p>
+<div class="example">
+<pre class="example">melissa
+splotnik
+jrandom
+</pre></div>
+
+<p>(Don&rsquo;t forget the newline after the last user.)
+</p>
+<p>&quot;Exclusion&quot; means explicitly listing everyone
+who has <em>write</em> access&mdash;if the file
+</p>
+<div class="example">
+<pre class="example">$CVSROOT/CVSROOT/writers
+</pre></div>
+
+<p>exists, then only
+those users listed in it have write access, and
+everyone else has read-only access (of course, even the
+read-only users still need to be listed in the
+<small>CVS</small> <samp>passwd</samp> file).  The
+<samp>writers</samp> file has the same format as the
+<samp>readers</samp> file.
+</p>
+<p>Note: if your <small>CVS</small> <samp>passwd</samp>
+file maps cvs users onto system users (see <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>), make sure you deny or grant
+read-only access using the <em>cvs</em> usernames, not
+the system usernames.  That is, the <samp>readers</samp> and
+<samp>writers</samp> files contain cvs usernames, which may
+or may not be the same as system usernames.
+</p>
+<p>Here is a complete description of the server&rsquo;s
+behavior in deciding whether to grant read-only or
+read-write access:
+</p>
+<p>If <samp>readers</samp> exists, and this user is
+listed in it, then she gets read-only access.  Or if
+<samp>writers</samp> exists, and this user is NOT listed in
+it, then she also gets read-only access (this is true
+even if <samp>readers</samp> exists but she is not listed
+there).  Otherwise, she gets full read-write access.
+</p>
+<p>Of course there is a conflict if the user is
+listed in both files.  This is resolved in the more
+conservative way, it being better to protect the
+repository too much than too little: such a user gets
+read-only access.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Server-temporary-directory.html#Server-temporary-directory" 
accesskey="n" rel="next">Server temporary directory</a>, Previous: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="p" 
rel="prev">Remote repositories</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Recursive-behavior.html
===================================================================
RCS file: html_node/Recursive-behavior.html
diff -N html_node/Recursive-behavior.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Recursive-behavior.html   28 Dec 2015 15:58:03 -0000      1.1
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Recursive 
behavior</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Recursive behavior">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Recursive behavior">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="next" 
title="Adding and removing">
+<link href="Merging-and-keywords.html#Merging-and-keywords" rel="prev" 
title="Merging and keywords">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Recursive-behavior"></a>
+<div class="header">
+<p>
+Next: <a href="Adding-and-removing.html#Adding-and-removing" accesskey="n" 
rel="next">Adding and removing</a>, Previous: <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="p" 
rel="prev">Branching and merging</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Recursive-behavior-1"></a>
+<h2 class="chapter">6 Recursive behavior</h2>
+<a name="index-Recursive-_0028directory-descending_0029"></a>
+<a name="index-Directory_002c-descending"></a>
+<a name="index-Descending-directories"></a>
+<a name="index-Subdirectories"></a>
+
+<p>Almost all of the subcommands of <small>CVS</small> work
+recursively when you specify a directory as an
+argument.  For instance, consider this directory
+structure:
+</p>
+<div class="example">
+<pre class="example">      <code>$HOME</code>
+        |
+        +--<tt>tc</tt>
+        |   |
+            +--<tt>CVS</tt>
+            |      (internal CVS files)
+            +--<tt>Makefile</tt>
+            +--<tt>backend.c</tt>
+            +--<tt>driver.c</tt>
+            +--<tt>frontend.c</tt>
+            +--<tt>parser.c</tt>
+            +--<tt>man</tt>
+            |    |
+            |    +--<tt>CVS</tt>
+            |    |  (internal CVS files)
+            |    +--<tt>tc.1</tt>
+            |
+            +--<tt>testing</tt>
+                 |
+                 +--<tt>CVS</tt>
+                 |  (internal CVS files)
+                 +--<tt>testpgm.t</tt>
+                 +--<tt>test2.t</tt>
+</pre></div>
+
+<p>If <samp>tc</samp> is the current working directory, the
+following is true:
+</p>
+<ul>
+<li> &lsquo;<samp>cvs update testing</samp>&rsquo; is equivalent to
+
+<div class="example">
+<pre class="example">cvs update testing/testpgm.t testing/test2.t
+</pre></div>
+
+</li><li> &lsquo;<samp>cvs update testing man</samp>&rsquo; updates all files 
in the
+subdirectories
+
+</li><li> &lsquo;<samp>cvs update .</samp>&rsquo; or just &lsquo;<samp>cvs 
update</samp>&rsquo; updates
+all files in the <code>tc</code> directory
+</li></ul>
+
+<p>If no arguments are given to <code>update</code> it will
+update all files in the current working directory and
+all its subdirectories.  In other words, <samp>.</samp> is a
+default argument to <code>update</code>.  This is also true
+for most of the <small>CVS</small> subcommands, not only the
+<code>update</code> command.
+</p>
+<p>The recursive behavior of the <small>CVS</small> subcommands can be
+turned off with the &lsquo;<samp>-l</samp>&rsquo; option.
+Conversely, the &lsquo;<samp>-R</samp>&rsquo; option can be used to force 
recursion if
+&lsquo;<samp>-l</samp>&rsquo; is specified in <samp>~/.cvsrc</samp> (see <a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc">~/.cvsrc</a>).
+</p>
+<div class="example">
+<pre class="example">$ cvs update -l         # <span class="roman">Don&rsquo;t 
update files in subdirectories</span>
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Regular-modules.html
===================================================================
RCS file: html_node/Regular-modules.html
diff -N html_node/Regular-modules.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Regular-modules.html      28 Dec 2015 15:58:04 -0000      1.1
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Regular modules</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Regular modules">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Regular modules">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="modules.html#modules" rel="up" title="modules">
+<link href="Ampersand-modules.html#Ampersand-modules" rel="next" 
title="Ampersand modules">
+<link href="Alias-modules.html#Alias-modules" rel="prev" title="Alias modules">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Regular-modules"></a>
+<div class="header">
+<p>
+Next: <a href="Ampersand-modules.html#Ampersand-modules" accesskey="n" 
rel="next">Ampersand modules</a>, Previous: <a 
href="Alias-modules.html#Alias-modules" accesskey="p" rel="prev">Alias 
modules</a>, Up: <a href="modules.html#modules" accesskey="u" 
rel="up">modules</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Regular-modules-1"></a>
+<h4 class="appendixsubsec">C.1.2 Regular modules</h4>
+<a name="index-Regular-modules"></a>
+
+<dl compact="compact">
+<dt><code><var>mname</var> [ options ] <var>dir</var> [ 
<var>files</var>&hellip; ]</code></dt>
+<dd><p>In the simplest case, this form of module definition
+reduces to &lsquo;<samp><var>mname</var> <var>dir</var></samp>&rsquo;.  This 
defines
+all the files in directory <var>dir</var> as module mname.
+<var>dir</var> is a relative path (from <code>$CVSROOT</code>) to a
+directory of source in the source repository.  In this
+case, on checkout, a single directory called
+<var>mname</var> is created as a working directory; no
+intermediate directory levels are used by default, even
+if <var>dir</var> was a path involving several directory
+levels.
+</p></dd>
+</dl>
+
+<p>For example, if a module is defined by:
+</p>
+<div class="example">
+<pre class="example">regmodule first-dir
+</pre></div>
+
+<p>then regmodule will contain the files from first-dir:
+</p>
+<div class="example">
+<pre class="example">$ cvs co regmodule
+cvs checkout: Updating regmodule
+U regmodule/file1
+U regmodule/file2
+cvs checkout: Updating regmodule/sdir
+U regmodule/sdir/sfile
+$
+</pre></div>
+
+<p>By explicitly specifying files in the module definition
+after <var>dir</var>, you can select particular files from
+directory <var>dir</var>.  Here is
+an example:
+</p>
+<div class="example">
+<pre class="example">regfiles first-dir/sdir sfile
+</pre></div>
+
+<p>With this definition, getting the regfiles module
+will create a single working directory
+<samp>regfiles</samp> containing the file listed, which
+comes from a directory deeper
+in the <small>CVS</small> source repository:
+</p>
+<div class="example">
+<pre class="example">$ cvs co regfiles
+U regfiles/sfile
+$
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Remote-repositories.html
===================================================================
RCS file: html_node/Remote-repositories.html
diff -N html_node/Remote-repositories.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Remote-repositories.html  28 Dec 2015 15:58:04 -0000      1.1
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Remote 
repositories</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Remote repositories">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Remote repositories">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Server-requirements.html#Server-requirements" rel="next" 
title="Server requirements">
+<link href="Moving-a-repository.html#Moving-a-repository" rel="prev" 
title="Moving a repository">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Remote-repositories"></a>
+<div class="header">
+<p>
+Next: <a href="Read_002donly-access.html#Read_002donly-access" accesskey="n" 
rel="next">Read-only access</a>, Previous: <a 
href="Moving-a-repository.html#Moving-a-repository" accesskey="p" 
rel="prev">Moving a repository</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Remote-repositories-1"></a>
+<h3 class="section">2.9 Remote repositories</h3>
+<a name="index-Repositories_002c-remote"></a>
+<a name="index-Remote-repositories"></a>
+<a name="index-Client_002fServer-Operation"></a>
+<a name="index-Server_002c-CVS"></a>
+<a name="index-Remote-repositories_002c-port-specification"></a>
+<a name="index-Repositories_002c-remote_002c-port-specification"></a>
+<a name="index-Client_002fServer-Operation_002c-port-specification"></a>
+<a 
name="index-pserver-_0028client_002fserver-connection-method_0029_002c-port-specification"></a>
+<a 
name="index-kserver-_0028client_002fserver-connection-method_0029_002c-port-specification"></a>
+<a 
name="index-gserver-_0028client_002fserver-connection-method_0029_002c-port-specification"></a>
+<a name="index-port_002c-specifying-for-remote-repositories"></a>
+
+<p>Your working copy of the sources can be on a
+different machine than the repository.  Using <small>CVS</small>
+in this manner is known as <em>client/server</em>
+operation.  You run <small>CVS</small> on a machine which can
+mount your working directory, known as the
+<em>client</em>, and tell it to communicate to a machine
+which can mount the repository, known as the
+<em>server</em>.  Generally, using a remote
+repository is just like using a local one, except that
+the format of the repository name is:
+</p>
+<div class="example">
+<pre 
class="example">[:<var>method</var>:][[<var>user</var>][:<var>password</var>address@hidden<var>hostname</var>[:[<var>port</var>]]/path/to/repository
+</pre></div>
+
+<p>Specifying a password in the repository name is not recommended during
+checkout, since this will cause <small>CVS</small> to store a cleartext copy 
of the
+password in each created directory.  <code>cvs login</code> first instead
+(see <a 
href="Password-authentication-client.html#Password-authentication-client">Password
 authentication client</a>).
+</p>
+<p>The details of exactly what needs to be set up depend
+on how you are connecting to the server.
+</p>
+<p>If <var>method</var> is not specified, and the repository
+name contains &lsquo;<samp>:</samp>&rsquo;, then the default is 
<code>ext</code>
+or <code>server</code>, depending on your platform; both are
+described in <a href="Connecting-via-rsh.html#Connecting-via-rsh">Connecting 
via rsh</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Server-requirements.html#Server-requirements" accesskey="1">Server 
requirements</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Memory 
and other resources for servers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Connecting-via-rsh.html#Connecting-via-rsh" accesskey="2">Connecting via 
rsh</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using the 
<code>rsh</code> program to connect
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Password-authenticated.html#Password-authenticated" 
accesskey="3">Password authenticated</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Direct connections using passwords
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="GSSAPI-authenticated.html#GSSAPI-authenticated" accesskey="4">GSSAPI 
authenticated</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Direct connections using GSSAPI
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Kerberos-authenticated.html#Kerberos-authenticated" 
accesskey="5">Kerberos authenticated</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Direct connections with Kerberos
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Connecting-via-fork.html#Connecting-via-fork" accesskey="6">Connecting 
via fork</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using a 
forked <code>cvs server</code> to connect
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Read_002donly-access.html#Read_002donly-access" accesskey="n" 
rel="next">Read-only access</a>, Previous: <a 
href="Moving-a-repository.html#Moving-a-repository" accesskey="p" 
rel="prev">Moving a repository</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Removing-directories.html
===================================================================
RCS file: html_node/Removing-directories.html
diff -N html_node/Removing-directories.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Removing-directories.html 28 Dec 2015 15:58:04 -0000      1.1
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Removing 
directories</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Removing directories">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Removing directories">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="up" 
title="Adding and removing">
+<link href="Moving-files.html#Moving-files" rel="next" title="Moving files">
+<link href="Removing-files.html#Removing-files" rel="prev" title="Removing 
files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Removing-directories"></a>
+<div class="header">
+<p>
+Next: <a href="Moving-files.html#Moving-files" accesskey="n" rel="next">Moving 
files</a>, Previous: <a href="Removing-files.html#Removing-files" accesskey="p" 
rel="prev">Removing files</a>, Up: <a 
href="Adding-and-removing.html#Adding-and-removing" accesskey="u" 
rel="up">Adding and removing</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Removing-directories-1"></a>
+<h3 class="section">7.3 Removing directories</h3>
+<a name="index-Removing-directories"></a>
+<a name="index-Directories_002c-removing"></a>
+
+<p>In concept, removing directories is somewhat similar to
+removing files&mdash;you want the directory to not exist in
+your current working directories, but you also want to
+be able to retrieve old releases in which the directory
+existed.
+</p>
+<p>The way that you remove a directory is to remove all
+the files in it.  You don&rsquo;t remove the directory
+itself; there is no way to do that.
+Instead you specify the &lsquo;<samp>-P</samp>&rsquo; option to
+<code>cvs update</code> or <code>cvs checkout</code>,
+which will cause <small>CVS</small> to remove empty
+directories from working directories.
+(Note that <code>cvs export</code> always removes empty directories.)
+Probably the
+best way to do this is to always specify &lsquo;<samp>-P</samp>&rsquo;; if
+you want an empty directory then put a dummy file (for
+example <samp>.keepme</samp>) in it to prevent &lsquo;<samp>-P</samp>&rsquo; 
from
+removing it.
+</p>
+<p>Note that &lsquo;<samp>-P</samp>&rsquo; is implied by the 
&lsquo;<samp>-r</samp>&rsquo; or &lsquo;<samp>-D</samp>&rsquo;
+options of <code>checkout</code>.  This way,
+<small>CVS</small> will be able to correctly create the directory
+or not depending on whether the particular version you
+are checking out contains any files in that directory.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Removing-files.html
===================================================================
RCS file: html_node/Removing-files.html
diff -N html_node/Removing-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Removing-files.html       28 Dec 2015 15:58:04 -0000      1.1
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Removing files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Removing files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Removing files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Adding-and-removing.html#Adding-and-removing" rel="up" 
title="Adding and removing">
+<link href="Removing-directories.html#Removing-directories" rel="next" 
title="Removing directories">
+<link href="Adding-files.html#Adding-files" rel="prev" title="Adding files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Removing-files"></a>
+<div class="header">
+<p>
+Next: <a href="Removing-directories.html#Removing-directories" accesskey="n" 
rel="next">Removing directories</a>, Previous: <a 
href="Adding-files.html#Adding-files" accesskey="p" rel="prev">Adding 
files</a>, Up: <a href="Adding-and-removing.html#Adding-and-removing" 
accesskey="u" rel="up">Adding and removing</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Removing-files-1"></a>
+<h3 class="section">7.2 Removing files</h3>
+<a name="index-Removing-files"></a>
+<a name="index-Deleting-files"></a>
+
+<p>Directories change.  New files are added, and old files
+disappear.  Still, you want to be able to retrieve an
+exact copy of old releases.
+</p>
+<p>Here is what you can do to remove a file,
+but remain able to retrieve old revisions:
+</p>
+<ul>
+<li> Make sure that you have not made any uncommitted
+modifications to the file.  See <a 
href="Viewing-differences.html#Viewing-differences">Viewing differences</a>,
+for one way to do that.  You can also use the
+<code>status</code> or <code>update</code> command.  If you remove
+the file without committing your changes, you will of
+course not be able to retrieve the file as it was
+immediately before you deleted it.
+
+</li><li> Remove the file from your working copy of the directory.
+You can for instance use <code>rm</code>.
+
+</li><li> Use &lsquo;<samp>cvs remove <var>filename</var></samp>&rsquo; to 
tell <small>CVS</small> that
+you really want to delete the file.
+
+</li><li> Use &lsquo;<samp>cvs commit <var>filename</var></samp>&rsquo; to 
actually
+perform the removal of the file from the repository.
+</li></ul>
+
+<p>When you commit the removal of the file, <small>CVS</small>
+records the fact that the file no longer exists.  It is
+possible for a file to exist on only some branches and
+not on others, or to re-add another file with the same
+name later.  <small>CVS</small> will correctly create or not create
+the file, based on the &lsquo;<samp>-r</samp>&rsquo; and 
&lsquo;<samp>-D</samp>&rsquo; options
+specified to <code>checkout</code> or <code>update</code>.
+</p>
+<a name="index-Remove-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-remove"></a>Command: <strong>cvs remove</strong> 
<em>[options] files &hellip;</em></dt>
+<dd>
+<p>Schedule file(s) to be removed from the repository
+(files which have not already been removed from the
+working directory are not processed).  This command
+does not actually remove the file from the repository
+until you commit the removal.  For a full list of
+options, see <a href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>.
+</p></dd></dl>
+
+<p>Here is an example of removing several files:
+</p>
+<div class="example">
+<pre class="example">$ cd test
+$ rm *.c
+$ cvs remove
+cvs remove: Removing .
+cvs remove: scheduling a.c for removal
+cvs remove: scheduling b.c for removal
+cvs remove: use 'cvs commit' to remove these files permanently
+$ cvs ci -m &quot;Removed unneeded files&quot;
+cvs commit: Examining .
+cvs commit: Committing .
+</pre></div>
+
+<p>As a convenience you can remove the file and <code>cvs
+remove</code> it in one step, by specifying the &lsquo;<samp>-f</samp>&rsquo;
+option.  For example, the above example could also be
+done like this:
+</p>
+<div class="example">
+<pre class="example">$ cd test
+$ cvs remove -f *.c
+cvs remove: scheduling a.c for removal
+cvs remove: scheduling b.c for removal
+cvs remove: use 'cvs commit' to remove these files permanently
+$ cvs ci -m &quot;Removed unneeded files&quot;
+cvs commit: Examining .
+cvs commit: Committing .
+</pre></div>
+
+<p>If you execute <code>remove</code> for a file, and then
+change your mind before you commit, you can undo the
+<code>remove</code> with an <code>add</code> command.
+</p>
+
+<div class="example">
+<pre class="example">$ ls
+CVS   ja.h  oj.c
+$ rm oj.c
+$ cvs remove oj.c
+cvs remove: scheduling oj.c for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+$ cvs add oj.c
+U oj.c
+cvs add: oj.c, version 1.1.1.1, resurrected
+</pre></div>
+
+<p>If you realize your mistake before you run the
+<code>remove</code> command you can use <code>update</code> to
+resurrect the file:
+</p>
+<div class="example">
+<pre class="example">$ rm oj.c
+$ cvs update oj.c
+cvs update: warning: oj.c was lost
+U oj.c
+</pre></div>
+
+<p>When you remove a file it is removed only on the branch
+which you are working on (see <a 
href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>).  You can
+later merge the removals to another branch if you want
+(see <a 
href="Merging-adds-and-removals.html#Merging-adds-and-removals">Merging adds 
and removals</a>).
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Removing-directories.html#Removing-directories" accesskey="n" 
rel="next">Removing directories</a>, Previous: <a 
href="Adding-files.html#Adding-files" accesskey="p" rel="prev">Adding 
files</a>, Up: <a href="Adding-and-removing.html#Adding-and-removing" 
accesskey="u" rel="up">Adding and removing</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Rename-by-copying.html
===================================================================
RCS file: html_node/Rename-by-copying.html
diff -N html_node/Rename-by-copying.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Rename-by-copying.html    28 Dec 2015 15:58:04 -0000      1.1
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Rename by copying</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Rename by copying">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Rename by copying">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Moving-files.html#Moving-files" rel="up" title="Moving files">
+<link href="Moving-directories.html#Moving-directories" rel="next" 
title="Moving directories">
+<link href="Inside.html#Inside" rel="prev" title="Inside">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Rename-by-copying"></a>
+<div class="header">
+<p>
+Previous: <a href="Inside.html#Inside" accesskey="p" rel="prev">Inside</a>, 
Up: <a href="Moving-files.html#Moving-files" accesskey="u" rel="up">Moving 
files</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Copying-the-history-file"></a>
+<h4 class="subsection">7.4.3 Copying the history file</h4>
+
+<p>This way also involves direct modifications to the
+repository.  It is safe, but not without drawbacks.
+</p>
+<div class="example">
+<pre class="example"># <span class="roman">Copy the RCS file inside the 
repository</span>
+$ cd $CVSROOT/<var>dir</var>
+$ cp <var>old</var>,v <var>new</var>,v
+# <span class="roman">Remove the old file</span>
+$ cd ~/<var>dir</var>
+$ rm <var>old</var>
+$ cvs remove <var>old</var>
+$ cvs commit <var>old</var>
+# <span class="roman">Remove all tags from <var>new</var></span>
+$ cvs update <var>new</var>
+$ cvs log <var>new</var>             # <span class="roman">Remember the 
non-branch tag names</span>
+$ cvs tag -d <var>tag1</var> <var>new</var>
+$ cvs tag -d <var>tag2</var> <var>new</var>
+&hellip;
+</pre></div>
+
+<p>By removing the tags you will be able to check out old
+revisions.
+</p>
+<p>Advantages:
+</p>
+<ul>
+<li> Checking out old revisions works correctly, as long as
+you use &lsquo;<samp>-r<var>tag</var></samp>&rsquo; and not 
&lsquo;<samp>-D<var>date</var></samp>&rsquo;
+to retrieve the revisions.
+
+</li><li> The log of changes is maintained intact.
+
+</li><li> The revision numbers are not affected.
+</li></ul>
+
+<p>Disadvantages:
+</p>
+<ul>
+<li> You cannot easily see the history of the file across the rename.
+
+</li></ul>
+
+
+
+
+</body>
+</html>

Index: html_node/Repository-files.html
===================================================================
RCS file: html_node/Repository-files.html
diff -N html_node/Repository-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Repository-files.html     28 Dec 2015 15:58:05 -0000      1.1
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Repository files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Repository files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Repository files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="File-permissions.html#File-permissions" rel="next" title="File 
permissions">
+<link href="Repository-storage.html#Repository-storage" rel="prev" 
title="Repository storage">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Repository-files"></a>
+<div class="header">
+<p>
+Next: <a href="File-permissions.html#File-permissions" accesskey="n" 
rel="next">File permissions</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Where-files-are-stored-within-the-repository"></a>
+<h4 class="subsection">2.2.1 Where files are stored within the repository</h4>
+
+
+<p>The overall structure of the repository is a directory
+tree corresponding to the directories in the working
+directory.  For example, supposing the repository is in
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot
+</pre></div>
+
+<p>here is a possible directory tree (showing only the
+directories):
+</p>
+<div class="example">
+<pre class="example"><tt>/usr</tt>
+ |
+ +--<tt>local</tt>
+ |   |
+ |   +--<tt>cvsroot</tt>
+ |   |    |
+ |   |    +--<tt>CVSROOT</tt>
+          |      (administrative files)
+          |
+          +--<tt>gnu</tt>
+          |   |
+          |   +--<tt>diff</tt>
+          |   |   (source code to GNU diff)
+          |   |
+          |   +--<tt>rcs</tt>
+          |   |   (source code to RCS)
+          |   |
+          |   +--<tt>cvs</tt>
+          |       (source code to CVS)
+          |
+          +--<tt>yoyodyne</tt>
+              |
+              +--<tt>tc</tt>
+              |    |
+              |    +--<tt>man</tt>
+              |    |
+              |    +--<tt>testing</tt>
+              |
+              +--(other Yoyodyne software)
+</pre></div>
+
+<p>With the directories are <em>history files</em> for each file
+under version control.  The name of the history file is
+the name of the corresponding file with &lsquo;<samp>,v</samp>&rsquo;
+appended to the end.  Here is what the repository for
+the <samp>yoyodyne/tc</samp> directory might look like:
+</p><div class="example">
+<pre class="example">  <code>$CVSROOT</code>
+    |
+    +--<tt>yoyodyne</tt>
+    |   |
+    |   +--<tt>tc</tt>
+    |   |   |
+            +--<tt>Makefile,v</tt>
+            +--<tt>backend.c,v</tt>
+            +--<tt>driver.c,v</tt>
+            +--<tt>frontend.c,v</tt>
+            +--<tt>parser.c,v</tt>
+            +--<tt>man</tt>
+            |    |
+            |    +--<tt>tc.1,v</tt>
+            |
+            +--<tt>testing</tt>
+                 |
+                 +--<tt>testpgm.t,v</tt>
+                 +--<tt>test2.t,v</tt>
+</pre></div>
+
+<a name="index-History-files"></a>
+<a name="index-RCS-history-files"></a>
+<p>The history files contain, among other things, enough
+information to recreate any revision of the file, a log
+of all commit messages and the user-name of the person
+who committed the revision.  The history files are
+known as <em>RCS files</em>, because the first program to
+store files in that format was a version control system
+known as <small>RCS</small>.  For a full
+description of the file format, see the <code>man</code> page
+<cite>rcsfile(5)</cite>, distributed with <small>RCS</small>, or the
+file <samp>doc/RCSFILES</samp> in the <small>CVS</small> source
+distribution.  This
+file format has become very common&mdash;many systems other
+than <small>CVS</small> or <small>RCS</small> can at least import history
+files in this format.
+</p>
+<p>The <small>RCS</small> files used in <small>CVS</small> differ in a few
+ways from the standard format.  The biggest difference
+is magic branches; for more information see <a 
href="Magic-branch-numbers.html#Magic-branch-numbers">Magic branch numbers</a>. 
 Also in <small>CVS</small> the valid tag names
+are a subset of what <small>RCS</small> accepts; for <small>CVS</small>&rsquo;s
+rules see <a href="Tags.html#Tags">Tags</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="File-permissions.html#File-permissions" accesskey="n" 
rel="next">File permissions</a>, Up: <a 
href="Repository-storage.html#Repository-storage" accesskey="u" 
rel="up">Repository storage</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Repository-storage.html
===================================================================
RCS file: html_node/Repository-storage.html
diff -N html_node/Repository-storage.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Repository-storage.html   28 Dec 2015 15:58:05 -0000      1.1
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Repository 
storage</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Repository storage">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Repository storage">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Repository-files.html#Repository-files" rel="next" 
title="Repository files">
+<link href="Specifying-a-repository.html#Specifying-a-repository" rel="prev" 
title="Specifying a repository">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Repository-storage"></a>
+<div class="header">
+<p>
+Next: <a href="Working-directory-storage.html#Working-directory-storage" 
accesskey="n" rel="next">Working directory storage</a>, Previous: <a 
href="Specifying-a-repository.html#Specifying-a-repository" accesskey="p" 
rel="prev">Specifying a repository</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-data-is-stored-in-the-repository"></a>
+<h3 class="section">2.2 How data is stored in the repository</h3>
+<a name="index-Repository_002c-how-data-is-stored"></a>
+
+<p>For most purposes it isn&rsquo;t important <em>how</em>
+<small>CVS</small> stores information in the repository.  In
+fact, the format has changed in the past, and is likely
+to change in the future.  Since in almost all cases one
+accesses the repository via <small>CVS</small> commands, such
+changes need not be disruptive.
+</p>
+<p>However, in some cases it may be necessary to
+understand how <small>CVS</small> stores data in the repository,
+for example you might need to track down <small>CVS</small> locks
+(see <a href="Concurrency.html#Concurrency">Concurrency</a>) or you might need 
to deal with
+the file permissions appropriate for the repository.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Repository-files.html#Repository-files" accesskey="1">Repository 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What files 
are stored in the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="File-permissions.html#File-permissions" accesskey="2">File 
permissions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">File 
permissions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Windows-permissions.html#Windows-permissions" accesskey="3">Windows 
permissions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Issues 
specific to Windows
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Attic.html#Attic" 
accesskey="4">Attic</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Some files are stored in the Attic
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="CVS-in-repository.html#CVS-in-repository" accesskey="5">CVS in 
repository</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Additional information in CVS directory
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Locks.html#Locks" 
accesskey="6">Locks</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">CVS locks control concurrent accesses
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="CVSROOT-storage.html#CVSROOT-storage" accesskey="7">CVSROOT 
storage</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A few 
things about CVSROOT are different
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Repository.html
===================================================================
RCS file: html_node/Repository.html
diff -N html_node/Repository.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Repository.html   28 Dec 2015 15:58:05 -0000      1.1
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Repository</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Repository">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Repository">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Specifying-a-repository.html#Specifying-a-repository" rel="next" 
title="Specifying a repository">
+<link href="Viewing-differences.html#Viewing-differences" rel="prev" 
title="Viewing differences">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Repository"></a>
+<div class="header">
+<p>
+Next: <a href="Starting-a-new-project.html#Starting-a-new-project" 
accesskey="n" rel="next">Starting a new project</a>, Previous: <a 
href="Overview.html#Overview" accesskey="p" rel="prev">Overview</a>, Up: <a 
href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-Repository"></a>
+<h2 class="chapter">2 The Repository</h2>
+<a name="index-Repository-_0028intro_0029"></a>
+<a name="index-Repository_002c-example"></a>
+<a name="index-Layout-of-repository"></a>
+<a name="index-Typical-repository"></a>
+<a name="index-_002fusr_002flocal_002fcvsroot_002c-as-example-repository"></a>
+<a name="index-cvsroot"></a>
+
+<p>The <small>CVS</small> <em>repository</em> stores a complete copy of
+all the files and directories which are under version
+control.
+</p>
+<p>Normally, you never access any of the files in the
+repository directly.  Instead, you use <small>CVS</small>
+commands to get your own copy of the files into a
+<em>working directory</em>, and then
+work on that copy.  When you&rsquo;ve finished a set of
+changes, you check (or <em>commit</em>) them back into the
+repository.  The repository then contains the changes
+which you have made, as well as recording exactly what
+you changed, when you changed it, and other such
+information.  Note that the repository is not a
+subdirectory of the working directory, or vice versa;
+they should be in separate locations.
+</p>
+<a name="index-_003alocal_003a_002c-setting-up"></a>
+<p><small>CVS</small> can access a repository by a variety of
+means.  It might be on the local computer, or it might
+be on a computer across the room or across the world.
+To distinguish various ways to access a repository, the
+repository name can start with an <em>access method</em>.
+For example, the access method <code>:local:</code> means to
+access a repository directory, so the repository
+<code>:local:/usr/local/cvsroot</code> means that the
+repository is in <samp>/usr/local/cvsroot</samp> on the
+computer running <small>CVS</small>.  For information on other
+access methods, see <a 
href="Remote-repositories.html#Remote-repositories">Remote repositories</a>.
+</p>
+<p>If the access method is omitted, then if the repository
+starts with &lsquo;<samp>/</samp>&rsquo;, then <code>:local:</code> is
+assumed.  If it does not start with &lsquo;<samp>/</samp>&rsquo; then either
+<code>:ext:</code> or <code>:server:</code> is assumed.  For
+example, if you have a local repository in
+<samp>/usr/local/cvsroot</samp>, you can use
+<code>/usr/local/cvsroot</code> instead of
+<code>:local:/usr/local/cvsroot</code>.  But if (under
+Windows NT, for example) your local repository is
+<samp>c:\src\cvsroot</samp>, then you must specify the access
+method, as in <code>:local:c:/src/cvsroot</code>.
+</p>
+<p>The repository is split in two parts.  <samp>$CVSROOT/CVSROOT</samp> 
contains
+administrative files for <small>CVS</small>.  The other directories contain 
the actual
+user-defined modules.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Specifying-a-repository.html#Specifying-a-repository" 
accesskey="1">Specifying a repository</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Telling CVS where your repository is
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Repository-storage.html#Repository-storage" accesskey="2">Repository 
storage</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The 
structure of the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Working-directory-storage.html#Working-directory-storage" 
accesskey="3">Working directory storage</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">The structure of working directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Intro-administrative-files.html#Intro-administrative-files" 
accesskey="4">Intro administrative files</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Defining modules
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Multiple-repositories.html#Multiple-repositories" accesskey="5">Multiple 
repositories</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Multiple repositories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Creating-a-repository.html#Creating-a-repository" accesskey="6">Creating 
a repository</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Creating a repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Backing-up.html#Backing-up" 
accesskey="7">Backing up</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Backing up a repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Moving-a-repository.html#Moving-a-repository" accesskey="8">Moving a 
repository</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Moving a 
repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Remote-repositories.html#Remote-repositories" accesskey="9">Remote 
repositories</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Accessing repositories on remote machines
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Read_002donly-access.html#Read_002donly-access">Read-only 
access</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Granting 
read-only access to the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Server-temporary-directory.html#Server-temporary-directory">Server 
temporary directory</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The server creates temporary directories
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Starting-a-new-project.html#Starting-a-new-project" 
accesskey="n" rel="next">Starting a new project</a>, Previous: <a 
href="Overview.html#Overview" accesskey="p" rel="prev">Overview</a>, Up: <a 
href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Reverting-local-changes.html
===================================================================
RCS file: html_node/Reverting-local-changes.html
diff -N html_node/Reverting-local-changes.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Reverting-local-changes.html      28 Dec 2015 15:58:05 -0000      
1.1
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Reverting local 
changes</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Reverting local changes">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Reverting local changes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Tracking-sources.html#Tracking-sources" rel="up" title="Tracking 
sources">
+<link href="Binary-files-in-imports.html#Binary-files-in-imports" rel="next" 
title="Binary files in imports">
+<link href="Update-imports.html#Update-imports" rel="prev" title="Update 
imports">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Reverting-local-changes"></a>
+<div class="header">
+<p>
+Next: <a href="Binary-files-in-imports.html#Binary-files-in-imports" 
accesskey="n" rel="next">Binary files in imports</a>, Previous: <a 
href="Update-imports.html#Update-imports" accesskey="p" rel="prev">Update 
imports</a>, Up: <a href="Tracking-sources.html#Tracking-sources" accesskey="u" 
rel="up">Tracking sources</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Reverting-to-the-latest-vendor-release"></a>
+<h3 class="section">13.3 Reverting to the latest vendor release</h3>
+
+<p>You can also revert local changes completely and return
+to the latest vendor release by changing the &lsquo;head&rsquo;
+revision back to the vendor branch on all files.  For
+example, if you have a checked-out copy of the sources
+in <samp>~/work.d/wdiff</samp>, and you want to revert to the
+vendor&rsquo;s version for all the files in that directory,
+you would type:
+</p>
+<div class="example">
+<pre class="example">$ cd ~/work.d/wdiff
+$ cvs admin -bFSF_DIST .
+</pre></div>
+
+<p>You must specify the &lsquo;<samp>-bFSF_DIST</samp>&rsquo; without any space
+after the &lsquo;<samp>-b</samp>&rsquo;.  See <a 
href="admin-options.html#admin-options">admin options</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Revision-management.html
===================================================================
RCS file: html_node/Revision-management.html
diff -N html_node/Revision-management.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Revision-management.html  28 Dec 2015 15:58:06 -0000      1.1
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Revision 
management</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Revision management">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Revision management">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="When-to-commit.html#When-to-commit" rel="next" title="When to 
commit">
+<link href="Choosing-a-model.html#Choosing-a-model" rel="prev" title="Choosing 
a model">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Revision-management"></a>
+<div class="header">
+<p>
+Next: <a href="Keyword-substitution.html#Keyword-substitution" accesskey="n" 
rel="next">Keyword substitution</a>, Previous: <a 
href="Multiple-developers.html#Multiple-developers" accesskey="p" 
rel="prev">Multiple developers</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Revision-management-1"></a>
+<h2 class="chapter">11 Revision management</h2>
+<a name="index-Revision-management"></a>
+
+
+<p>If you have read this far, you probably have a pretty
+good grasp on what <small>CVS</small> can do for you.  This
+chapter talks a little about things that you still have
+to decide.
+</p>
+<p>If you are doing development on your own using <small>CVS</small>
+you could probably skip this chapter.  The questions
+this chapter takes up become more important when more
+than one person is working in a repository.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="When-to-commit.html#When-to-commit" accesskey="1">When to 
commit</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Some 
discussion on the subject
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Revision-numbers.html
===================================================================
RCS file: html_node/Revision-numbers.html
diff -N html_node/Revision-numbers.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Revision-numbers.html     28 Dec 2015 15:58:06 -0000      1.1
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Revision numbers</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Revision numbers">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Revision numbers">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Versions-revisions-releases.html#Versions-revisions-releases" 
rel="next" title="Versions revisions releases">
+<link href="Revisions.html#Revisions" rel="prev" title="Revisions">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Revision-numbers"></a>
+<div class="header">
+<p>
+Next: <a href="Versions-revisions-releases.html#Versions-revisions-releases" 
accesskey="n" rel="next">Versions revisions releases</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Revision-numbers-1"></a>
+<h3 class="section">4.1 Revision numbers</h3>
+<a name="index-Revision-numbers"></a>
+<a name="index-Revision-tree"></a>
+<a name="index-Linear-development"></a>
+<a name="index-Number_002c-revision_002d"></a>
+<a name="index-Decimal-revision-number"></a>
+<a name="index-Branch-number"></a>
+<a name="index-Number_002c-branch"></a>
+
+<p>Each version of a file has a unique <em>revision
+number</em>.  Revision numbers look like &lsquo;<samp>1.1</samp>&rsquo;,
+&lsquo;<samp>1.2</samp>&rsquo;, &lsquo;<samp>1.3.2.2</samp>&rsquo; or even 
&lsquo;<samp>1.3.2.2.4.5</samp>&rsquo;.
+A revision number always has an even number of
+period-separated decimal integers.  By default revision
+1.1 is the first revision of a file.  Each successive
+revision is given a new number by increasing the
+rightmost number by one.  The following figure displays
+a few revisions, with newer revisions to the right.
+</p>
+<div class="example">
+<pre class="example">       +-----+    +-----+    +-----+    +-----+    +-----+
+       ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
+       +-----+    +-----+    +-----+    +-----+    +-----+
+</pre></div>
+
+<p>It is also possible to end up with numbers containing
+more than one period, for example &lsquo;<samp>1.3.2.2</samp>&rsquo;.  Such
+revisions represent revisions on branches
+(see <a href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>); such revision numbers
+are explained in detail in <a 
href="Branches-and-revisions.html#Branches-and-revisions">Branches and 
revisions</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Revisions.html
===================================================================
RCS file: html_node/Revisions.html
diff -N html_node/Revisions.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Revisions.html    28 Dec 2015 15:58:06 -0000      1.1
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Revisions</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Revisions">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Revisions">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Revision-numbers.html#Revision-numbers" rel="next" title="Revision 
numbers">
+<link href="Defining-the-module.html#Defining-the-module" rel="prev" 
title="Defining the module">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Revisions"></a>
+<div class="header">
+<p>
+Next: <a href="Branching-and-merging.html#Branching-and-merging" accesskey="n" 
rel="next">Branching and merging</a>, Previous: <a 
href="Starting-a-new-project.html#Starting-a-new-project" accesskey="p" 
rel="prev">Starting a new project</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Revisions-1"></a>
+<h2 class="chapter">4 Revisions</h2>
+
+<p>For many uses of <small>CVS</small>, one doesn&rsquo;t need to worry
+too much about revision numbers; <small>CVS</small> assigns
+numbers such as <code>1.1</code>, <code>1.2</code>, and so on, and
+that is all one needs to know.  However, some people
+prefer to have more knowledge and control concerning
+how <small>CVS</small> assigns revision numbers.
+</p>
+<p>If one wants to keep track of a set of revisions
+involving more than one file, such as which revisions
+went into a particular release, one uses a <em>tag</em>,
+which is a symbolic revision which can be assigned to a
+numeric revision in each file.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Revision-numbers.html#Revision-numbers" accesskey="1">Revision 
numbers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The meaning 
of a revision number
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Versions-revisions-releases.html#Versions-revisions-releases" 
accesskey="2">Versions revisions releases</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Terminology used in this manual
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Assigning-revisions.html#Assigning-revisions" accesskey="3">Assigning 
revisions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Assigning 
revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Tags.html#Tags" 
accesskey="4">Tags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Tags&ndash;Symbolic revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Tagging-the-working-directory.html#Tagging-the-working-directory" 
accesskey="5">Tagging the working directory</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">The cvs tag command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag" 
accesskey="6">Tagging by date/tag</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">The cvs rtag command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Modifying-tags.html#Modifying-tags" accesskey="7">Modifying 
tags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Adding, 
renaming, and deleting tags
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Tagging-add_002fremove.html#Tagging-add_002fremove" accesskey="8">Tagging 
add/remove</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Tags 
with adding and removing files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Sticky-tags.html#Sticky-tags" accesskey="9">Sticky 
tags</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Certain tags 
are persistent
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Server-requirements.html
===================================================================
RCS file: html_node/Server-requirements.html
diff -N html_node/Server-requirements.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Server-requirements.html  28 Dec 2015 15:58:06 -0000      1.1
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Server 
requirements</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Server requirements">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Server requirements">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Remote-repositories.html#Remote-repositories" rel="up" 
title="Remote repositories">
+<link href="Connecting-via-rsh.html#Connecting-via-rsh" rel="next" 
title="Connecting via rsh">
+<link href="Remote-repositories.html#Remote-repositories" rel="prev" 
title="Remote repositories">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Server-requirements"></a>
+<div class="header">
+<p>
+Next: <a href="Connecting-via-rsh.html#Connecting-via-rsh" accesskey="n" 
rel="next">Connecting via rsh</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Server-requirements-1"></a>
+<h4 class="subsection">2.9.1 Server requirements</h4>
+
+<p>The quick answer to what sort of machine is suitable as
+a server is that requirements are modest&mdash;a server
+with 32M of memory or even less can handle a fairly
+large source tree with a fair amount of activity.
+</p>
+<p>The real answer, of course, is more complicated.
+Estimating the known areas of large memory consumption
+should be sufficient to estimate memory requirements.
+There are two such areas documented here; other memory
+consumption should be small by comparison (if you find
+that is not the case, let us know, as described in
+<a href="BUGS.html#BUGS">BUGS</a>, so we can update this documentation).
+</p>
+<p>The first area of big memory consumption is large
+checkouts, when using the <small>CVS</small> server.  The server
+consists of two processes for each client that it is
+serving.  Memory consumption on the child process
+should remain fairly small.  Memory consumption on the
+parent process, particularly if the network connection
+to the client is slow, can be expected to grow to
+slightly more than the size of the sources in a single
+directory, or two megabytes, whichever is larger.
+</p>
+<p>Multiplying the size of each <small>CVS</small> server by the
+number of servers which you expect to have active at
+one time should give an idea of memory requirements for
+the server.  For the most part, the memory consumed by
+the parent process probably can be swap space rather
+than physical memory.
+</p>
+
+<p>The second area of large memory consumption is
+<code>diff</code>, when checking in large files.  This is
+required even for binary files.  The rule of thumb is
+to allow about ten times the size of the largest file
+you will want to check in, although five times may be
+adequate.  For example, if you want to check in a file
+which is 10 megabytes, you should have 100 megabytes of
+memory on the machine doing the checkin (the server
+machine for client/server, or the machine running
+<small>CVS</small> for non-client/server).  This can be swap
+space rather than physical memory.  Because the memory
+is only required briefly, there is no particular need
+to allow memory for more than one such checkin at a
+time.
+</p>
+<p>Resource consumption for the client is even more
+modest&mdash;any machine with enough capacity to run the
+operating system in question should have little
+trouble.
+</p>
+<p>For information on disk space requirements, see
+<a href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Connecting-via-rsh.html#Connecting-via-rsh" accesskey="n" 
rel="next">Connecting via rsh</a>, Up: <a 
href="Remote-repositories.html#Remote-repositories" accesskey="u" 
rel="up">Remote repositories</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Server-temporary-directory.html
===================================================================
RCS file: html_node/Server-temporary-directory.html
diff -N html_node/Server-temporary-directory.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Server-temporary-directory.html   28 Dec 2015 15:58:06 -0000      
1.1
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Server temporary 
directory</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Server temporary directory">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Server temporary directory">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Starting-a-new-project.html#Starting-a-new-project" rel="next" 
title="Starting a new project">
+<link href="Read_002donly-access.html#Read_002donly-access" rel="prev" 
title="Read-only access">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Server-temporary-directory"></a>
+<div class="header">
+<p>
+Previous: <a href="Read_002donly-access.html#Read_002donly-access" 
accesskey="p" rel="prev">Read-only access</a>, Up: <a 
href="Repository.html#Repository" accesskey="u" rel="up">Repository</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Temporary-directories-for-the-server"></a>
+<h3 class="section">2.11 Temporary directories for the server</h3>
+<a name="index-Temporary-directories_002c-and-server"></a>
+<a name="index-Server_002c-temporary-directories"></a>
+
+<p>While running, the <small>CVS</small> server creates temporary
+directories.  They are named
+</p>
+<div class="example">
+<pre class="example">cvs-serv<var>pid</var>
+</pre></div>
+
+<p>where <var>pid</var> is the process identification number of
+the server.
+They are located in the directory specified by 
+the &lsquo;<samp>-T</samp>&rsquo; global option (see <a 
href="Global-options.html#Global-options">Global options</a>), 
+the <code>TMPDIR</code> environment variable (see <a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a>), 
+or, failing that, <samp>/tmp</samp>.
+</p>
+<p>In most cases the server will remove the temporary
+directory when it is done, whether it finishes normally
+or abnormally.  However, there are a few cases in which
+the server does not or cannot remove the temporary
+directory, for example:
+</p>
+<ul>
+<li> If the server aborts due to an internal server error,
+it may preserve the directory to aid in debugging
+
+</li><li> If the server is killed in a way that it has no way of
+cleaning up (most notably, &lsquo;<samp>kill -KILL</samp>&rsquo; on unix).
+
+</li><li> If the system shuts down without an orderly shutdown,
+which tells the server to clean up.
+</li></ul>
+
+<p>In cases such as this, you will need to manually remove
+the <samp>cvs-serv<var>pid</var></samp> directories.  As long as
+there is no server running with process identification
+number <var>pid</var>, it is safe to do so.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Setting-a-watch.html
===================================================================
RCS file: html_node/Setting-a-watch.html
diff -N html_node/Setting-a-watch.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Setting-a-watch.html      28 Dec 2015 15:58:07 -0000      1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Setting a watch</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Setting a watch">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Setting a watch">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Watches.html#Watches" rel="up" title="Watches">
+<link href="Getting-Notified.html#Getting-Notified" rel="next" title="Getting 
Notified">
+<link href="Watches.html#Watches" rel="prev" title="Watches">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Setting-a-watch"></a>
+<div class="header">
+<p>
+Next: <a href="Getting-Notified.html#Getting-Notified" accesskey="n" 
rel="next">Getting Notified</a>, Up: <a href="Watches.html#Watches" 
accesskey="u" rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Telling-CVS-to-watch-certain-files"></a>
+<h4 class="subsection">10.6.1 Telling CVS to watch certain files</h4>
+
+<p>To enable the watch features, you first specify that
+certain files are to be watched.
+</p>
+<a name="index-watch-on-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watch-on"></a>Command: <strong>cvs watch on</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<a name="index-Read_002donly-files_002c-and-watches"></a>
+<p>Specify that developers should run <code>cvs edit</code>
+before editing <var>files</var>.  <small>CVS</small> will create working
+copies of <var>files</var> read-only, to remind developers
+to run the <code>cvs edit</code> command before working on
+them.
+</p>
+<p>If <var>files</var> includes the name of a directory, <small>CVS</small>
+arranges to watch all files added to the corresponding
+repository directory, and sets a default for files
+added in the future; this allows the user to set
+notification policies on a per-directory basis.  The
+contents of the directory are processed recursively,
+unless the <code>-l</code> option is given.
+The <code>-R</code> option can be used to force recursion if the 
<code>-l</code>
+option is set in <samp>~/.cvsrc</samp> (see <a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc">~/.cvsrc</a>).
+</p>
+<p>If <var>files</var> is omitted, it defaults to the current directory.
+</p>
+<a name="index-watch-off-_0028subcommand_0029"></a>
+</dd></dl>
+
+<dl>
+<dt><a name="index-cvs-watch-off"></a>Command: <strong>cvs watch off</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>Do not create <var>files</var> read-only on checkout; thus,
+developers will not be reminded to use <code>cvs edit</code>
+and <code>cvs unedit</code>.
+</p>
+<p>The <var>files</var> and options are processed as for <code>cvs
+watch on</code>.
+</p>
+</dd></dl>
+
+
+
+
+</body>
+</html>

Index: html_node/Setting-up-the-files.html
===================================================================
RCS file: html_node/Setting-up-the-files.html
diff -N html_node/Setting-up-the-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Setting-up-the-files.html 28 Dec 2015 15:58:07 -0000      1.1
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Setting up the 
files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Setting up the files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Setting up the files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Starting-a-new-project.html#Starting-a-new-project" rel="up" 
title="Starting a new project">
+<link href="From-files.html#From-files" rel="next" title="From files">
+<link href="Starting-a-new-project.html#Starting-a-new-project" rel="prev" 
title="Starting a new project">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Setting-up-the-files"></a>
+<div class="header">
+<p>
+Next: <a href="Defining-the-module.html#Defining-the-module" accesskey="n" 
rel="next">Defining the module</a>, Up: <a 
href="Starting-a-new-project.html#Starting-a-new-project" accesskey="u" 
rel="up">Starting a new project</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Setting-up-the-files-1"></a>
+<h3 class="section">3.1 Setting up the files</h3>
+
+<p>The first step is to create the files inside the repository.  This can
+be done in a couple of different ways.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="From-files.html#From-files" 
accesskey="1">From files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">This method is useful with old projects
+                                where files already exists.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="From-other-version-control-systems.html#From-other-version-control-systems"
 accesskey="2">From other version control 
systems</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Old 
projects where you want to
+                                        preserve history from another system.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="From-scratch.html#From-scratch" accesskey="3">From 
scratch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creating a 
directory tree from scratch.
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Special-Files.html
===================================================================
RCS file: html_node/Special-Files.html
diff -N html_node/Special-Files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Special-Files.html        28 Dec 2015 15:58:07 -0000      1.1
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Special Files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Special Files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Special Files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="CVS-commands.html#CVS-commands" rel="next" title="CVS commands">
+<link href="Builds.html#Builds" rel="prev" title="Builds">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Special-Files"></a>
+<div class="header">
+<p>
+Next: <a href="CVS-commands.html#CVS-commands" accesskey="n" rel="next">CVS 
commands</a>, Previous: <a href="Builds.html#Builds" accesskey="p" 
rel="prev">Builds</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Special-Files-1"></a>
+<h2 class="chapter">15 Special Files</h2>
+
+<a name="index-Special-files"></a>
+<a name="index-Device-nodes"></a>
+<a name="index-Ownership_002c-saving-in-CVS"></a>
+<a name="index-Permissions_002c-saving-in-CVS"></a>
+<a name="index-Hard-links"></a>
+<a name="index-Symbolic-links"></a>
+
+<p>In normal circumstances, <small>CVS</small> works only with regular
+files.  Every file in a project is assumed to be
+persistent; it must be possible to open, read and close
+them; and so on.  <small>CVS</small> also ignores file permissions and
+ownerships, leaving such issues to be resolved by the
+developer at installation time.  In other words, it is
+not possible to &quot;check in&quot; a device into a repository;
+if the device file cannot be opened, <small>CVS</small> will refuse to
+handle it.  Files also lose their ownerships and
+permissions during repository transactions.
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/Specifying-a-repository.html
===================================================================
RCS file: html_node/Specifying-a-repository.html
diff -N html_node/Specifying-a-repository.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Specifying-a-repository.html      28 Dec 2015 15:58:07 -0000      
1.1
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Specifying a 
repository</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Specifying a repository">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Specifying a repository">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Repository-storage.html#Repository-storage" rel="next" 
title="Repository storage">
+<link href="Repository.html#Repository" rel="prev" title="Repository">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Specifying-a-repository"></a>
+<div class="header">
+<p>
+Next: <a href="Repository-storage.html#Repository-storage" accesskey="n" 
rel="next">Repository storage</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Telling-CVS-where-your-repository-is"></a>
+<h3 class="section">2.1 Telling CVS where your repository is</h3>
+
+<p>There are several ways to tell <small>CVS</small>
+where to find the repository.  You can name the
+repository on the command line explicitly, with the
+<code>-d</code> (for &quot;directory&quot;) option:
+</p>
+<div class="example">
+<pre class="example">cvs -d /usr/local/cvsroot checkout yoyodyne/tc
+</pre></div>
+
+<a name="index-_002eprofile_002c-setting-CVSROOT-in"></a>
+<a name="index-_002ecshrc_002c-setting-CVSROOT-in"></a>
+<a name="index-_002etcshrc_002c-setting-CVSROOT-in"></a>
+<a name="index-_002ebashrc_002c-setting-CVSROOT-in"></a>
+<a name="index-CVSROOT_002c-environment-variable"></a>
+<p>Or you can set the <code>$CVSROOT</code> environment
+variable to an absolute path to the root of the
+repository, <samp>/usr/local/cvsroot</samp> in this example.
+To set <code>$CVSROOT</code>, <code>csh</code> and <code>tcsh</code>
+users should have this line in their <samp>.cshrc</samp> or
+<samp>.tcshrc</samp> files:
+</p>
+<div class="example">
+<pre class="example">setenv CVSROOT /usr/local/cvsroot
+</pre></div>
+
+<p><code>sh</code> and <code>bash</code> users should instead have these lines 
in their
+<samp>.profile</samp> or <samp>.bashrc</samp>:
+</p>
+<div class="example">
+<pre class="example">CVSROOT=/usr/local/cvsroot
+export CVSROOT
+</pre></div>
+
+<a name="index-Root-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fRoot-file"></a>
+<p>A repository specified with <code>-d</code> will
+override the <code>$CVSROOT</code> environment variable.
+Once you&rsquo;ve checked a working copy out from the
+repository, it will remember where its repository is
+(the information is recorded in the
+<samp>CVS/Root</samp> file in the working copy).
+</p>
+<p>The <code>-d</code> option and the <samp>CVS/Root</samp> file both
+override the <code>$CVSROOT</code> environment variable.  If
+<code>-d</code> option differs from <samp>CVS/Root</samp>, the
+former is used.  Of course, for proper operation they
+should be two ways of referring to the same repository.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Starting-a-new-project.html
===================================================================
RCS file: html_node/Starting-a-new-project.html
diff -N html_node/Starting-a-new-project.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Starting-a-new-project.html       28 Dec 2015 15:58:07 -0000      
1.1
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Starting a new 
project</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Starting a new project">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Starting a new project">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Setting-up-the-files.html#Setting-up-the-files" rel="next" 
title="Setting up the files">
+<link href="Server-temporary-directory.html#Server-temporary-directory" 
rel="prev" title="Server temporary directory">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Starting-a-new-project"></a>
+<div class="header">
+<p>
+Next: <a href="Revisions.html#Revisions" accesskey="n" 
rel="next">Revisions</a>, Previous: <a href="Repository.html#Repository" 
accesskey="p" rel="prev">Repository</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Starting-a-project-with-CVS"></a>
+<h2 class="chapter">3 Starting a project with CVS</h2>
+<a name="index-Starting-a-project-with-CVS"></a>
+<a name="index-Creating-a-project"></a>
+
+<p>Because renaming files and moving them between
+directories is somewhat inconvenient, the first thing
+you do when you start a new project should be to think
+through your file organization.  It is not impossible
+to rename or move files, but it does increase the
+potential for confusion and <small>CVS</small> does have some
+quirks particularly in the area of renaming
+directories.  See <a href="Moving-files.html#Moving-files">Moving files</a>.
+</p>
+<p>What to do next depends on the situation at hand.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Setting-up-the-files.html#Setting-up-the-files" accesskey="1">Setting up 
the files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting 
the files into the repository
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Defining-the-module.html#Defining-the-module" accesskey="2">Defining the 
module</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to make 
a module of the files
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Sticky-tags.html
===================================================================
RCS file: html_node/Sticky-tags.html
diff -N html_node/Sticky-tags.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Sticky-tags.html  28 Dec 2015 15:58:08 -0000      1.1
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Sticky tags</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Sticky tags">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Sticky tags">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Branching-and-merging.html#Branching-and-merging" rel="next" 
title="Branching and merging">
+<link href="Tagging-add_002fremove.html#Tagging-add_002fremove" rel="prev" 
title="Tagging add/remove">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Sticky-tags"></a>
+<div class="header">
+<p>
+Previous: <a href="Tagging-add_002fremove.html#Tagging-add_002fremove" 
accesskey="p" rel="prev">Tagging add/remove</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Sticky-tags-1"></a>
+<h3 class="section">4.9 Sticky tags</h3>
+<a name="index-Sticky-tags"></a>
+<a name="index-Tags_002c-sticky"></a>
+
+
+<p>Sometimes a working copy&rsquo;s revision has extra data
+associated with it, for example it might be on a branch
+(see <a href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>), or restricted to
+versions prior to a certain date by &lsquo;<samp>checkout -D</samp>&rsquo;
+or &lsquo;<samp>update -D</samp>&rsquo;.  Because this data persists &ndash;
+that is, it applies to subsequent commands in the
+working copy &ndash; we refer to it as <em>sticky</em>.
+</p>
+<p>Most of the time, stickiness is an obscure aspect of
+<small>CVS</small> that you don&rsquo;t need to think about.  However,
+even if you don&rsquo;t want to use the feature, you may need
+to know <em>something</em> about sticky tags (for
+example, how to avoid them!).
+</p>
+<p>You can use the <code>status</code> command to see if any
+sticky tags or dates are set:
+</p>
+<div class="example">
+<pre class="example">$ cvs status driver.c
+===================================================================
+File: driver.c          Status: Up-to-date
+
+    Version:            1.7.2.1 Sat Dec  5 19:35:03 1992
+    RCS Version:        1.7.2.1 /u/cvsroot/yoyodyne/tc/driver.c,v
+    Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+</pre></div>
+
+<a name="index-Resetting-sticky-tags"></a>
+<a name="index-Sticky-tags_002c-resetting"></a>
+<a name="index-Deleting-sticky-tags"></a>
+<p>The sticky tags will remain on your working files until
+you delete them with &lsquo;<samp>cvs update -A</samp>&rsquo;.  The
+&lsquo;<samp>-A</samp>&rsquo; option merges local changes into the version of 
the
+file from the head of the trunk, removing any sticky tags,
+dates, or options (other than sticky &lsquo;<samp>-k</samp>&rsquo; options on 
locally
+modified files).  See <a href="update.html#update">update</a> for more on the 
operation
+of <code>cvs update</code>.
+</p>
+<a name="index-Sticky-date"></a>
+<p>The most common use of sticky tags is to identify which
+branch one is working on, as described in
+<a href="Accessing-branches.html#Accessing-branches">Accessing branches</a>.  
However, non-branch
+sticky tags have uses as well.  For example,
+suppose that you want to avoid updating your working
+directory, to isolate yourself from possibly
+destabilizing changes other people are making.  You
+can, of course, just refrain from running <code>cvs
+update</code>.  But if you want to avoid updating only a
+portion of a larger tree, then sticky tags can help.
+If you check out a certain revision (such as 1.4) it
+will become sticky.  Subsequent <code>cvs update</code>
+commands will
+not retrieve the latest revision until you reset the
+tag with <code>cvs update -A</code>.  Likewise, use of the
+&lsquo;<samp>-D</samp>&rsquo; option to <code>update</code> or 
<code>checkout</code>
+sets a <em>sticky date</em>, which, similarly, causes that
+date to be used for future retrievals.
+</p>
+<p>People often want to retrieve an old version of
+a file without setting a sticky tag.  This can
+be done with the &lsquo;<samp>-p</samp>&rsquo; option to <code>checkout</code> 
or
+<code>update</code>, which sends the contents of the file to
+standard output.  For example:
+</p><div class="example">
+<pre class="example">$ cvs update -p -r 1.1 file1 &gt;file1
+===================================================================
+Checking out file1
+RCS:  /tmp/cvs-sanity/cvsroot/first-dir/Attic/file1,v
+VERS: 1.1
+***************
+$
+</pre></div>
+
+<p>However, this isn&rsquo;t the easiest way, if you are asking
+how to undo a previous checkin (in this example, put
+<samp>file1</samp> back to the way it was as of revision
+1.1).  In that case you are better off using the
+&lsquo;<samp>-j</samp>&rsquo; option to <code>update</code>; for further
+discussion see <a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Tagging-add_002fremove.html#Tagging-add_002fremove" 
accesskey="p" rel="prev">Tagging add/remove</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Structure.html
===================================================================
RCS file: html_node/Structure.html
diff -N html_node/Structure.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Structure.html    28 Dec 2015 15:58:08 -0000      1.1
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Structure</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Structure">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Structure">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="Exit-status.html#Exit-status" rel="next" title="Exit status">
+<link href="CVS-commands.html#CVS-commands" rel="prev" title="CVS commands">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Structure"></a>
+<div class="header">
+<p>
+Next: <a href="Exit-status.html#Exit-status" accesskey="n" rel="next">Exit 
status</a>, Up: <a href="CVS-commands.html#CVS-commands" accesskey="u" 
rel="up">CVS commands</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Overall-structure-of-CVS-commands"></a>
+<h3 class="appendixsec">A.1 Overall structure of CVS commands</h3>
+<a name="index-Structure"></a>
+<a name="index-CVS-command-structure"></a>
+<a name="index-Command-structure"></a>
+<a name="index-Format-of-CVS-commands"></a>
+
+<p>The overall format of all <small>CVS</small> commands is:
+</p>
+<div class="example">
+<pre class="example">cvs [ cvs_options ] cvs_command [ command_options ] [ 
command_args ]
+</pre></div>
+
+<dl compact="compact">
+<dt><code>cvs</code></dt>
+<dd><p>The name of the <small>CVS</small> program.
+</p>
+</dd>
+<dt><code>cvs_options</code></dt>
+<dd><p>Some options that affect all sub-commands of <small>CVS</small>.  These 
are
+described below.
+</p>
+</dd>
+<dt><code>cvs_command</code></dt>
+<dd><p>One of several different sub-commands.  Some of the commands have
+aliases that can be used instead; those aliases are noted in the
+reference manual for that command.  There are only two situations
+where you may omit &lsquo;<samp>cvs_command</samp>&rsquo;: &lsquo;<samp>cvs 
-H</samp>&rsquo; elicits a
+list of available commands, and &lsquo;<samp>cvs -v</samp>&rsquo; displays 
version
+information on <small>CVS</small> itself.
+</p>
+</dd>
+<dt><code>command_options</code></dt>
+<dd><p>Options that are specific for the command.
+</p>
+</dd>
+<dt><code>command_args</code></dt>
+<dd><p>Arguments to the commands.
+</p></dd>
+</dl>
+
+<p>There is unfortunately some confusion between
+<code>cvs_options</code> and <code>command_options</code>.
+When given as a <code>cvs_option</code>, some options only
+affect some of the commands.  When given as a
+<code>command_option</code> it may have a different meaning, and
+be accepted by more commands.  In other words, do not
+take the above categorization too seriously.  Look at
+the documentation instead.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Substitution-modes.html
===================================================================
RCS file: html_node/Substitution-modes.html
diff -N html_node/Substitution-modes.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Substitution-modes.html   28 Dec 2015 15:58:08 -0000      1.1
@@ -0,0 +1,148 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Substitution 
modes</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Substitution modes">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Substitution modes">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="up" 
title="Keyword substitution">
+<link href="Log-keyword.html#Log-keyword" rel="next" title="Log keyword">
+<link href="Avoiding-substitution.html#Avoiding-substitution" rel="prev" 
title="Avoiding substitution">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Substitution-modes"></a>
+<div class="header">
+<p>
+Next: <a href="Log-keyword.html#Log-keyword" accesskey="n" rel="next">Log 
keyword</a>, Previous: <a 
href="Avoiding-substitution.html#Avoiding-substitution" accesskey="p" 
rel="prev">Avoiding substitution</a>, Up: <a 
href="Keyword-substitution.html#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Substitution-modes-1"></a>
+<h3 class="section">12.4 Substitution modes</h3>
+<a name="index-Keyword-substitution_002c-changing-modes"></a>
+<a name="index-_002dk-_0028keyword-substitution_0029"></a>
+<a name="index-Kflag"></a>
+
+<p>Each file has a stored default substitution mode, and
+each working directory copy of a file also has a
+substitution mode.  The former is set by the &lsquo;<samp>-k</samp>&rsquo;
+option to <code>cvs add</code> and <code>cvs admin</code>; the
+latter is set by the &lsquo;<samp>-k</samp>&rsquo; or 
&lsquo;<samp>-A</samp>&rsquo; options to <code>cvs
+checkout</code> or <code>cvs update</code>.
+<code>cvs diff</code> and <code>cvs rdiff</code> also
+have &lsquo;<samp>-k</samp>&rsquo; options.
+For some examples,
+see <a href="Binary-files.html#Binary-files">Binary files</a>, and <a 
href="Merging-and-keywords.html#Merging-and-keywords">Merging and keywords</a>.
+</p>
+<p>The modes available are:
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>-kkv</samp>&rsquo;</dt>
+<dd><p>Generate keyword strings using the default form, e.g.
+<code>$<i></i>Revision: 5.7 $</code> for the <code>Revision</code>
+keyword.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kkvl</samp>&rsquo;</dt>
+<dd><p>Like &lsquo;<samp>-kkv</samp>&rsquo;, except that a locker&rsquo;s name 
is always
+inserted if the given revision is currently locked.
+The locker&rsquo;s name is only relevant if <code>cvs admin
+-l</code> is in use.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kk</samp>&rsquo;</dt>
+<dd><p>Generate only keyword names in keyword strings; omit
+their values.  For example, for the <code>Revision</code>
+keyword, generate the string <code>$<i></i>Revision$</code>
+instead of <code>$<i></i>Revision: 5.7 $</code>.  This option
+is useful to ignore differences due to keyword
+substitution when comparing different revisions of a
+file (see <a href="Merging-and-keywords.html#Merging-and-keywords">Merging and 
keywords</a>).
+</p>
+</dd>
+<dt>&lsquo;<samp>-ko</samp>&rsquo;</dt>
+<dd><p>Generate the old keyword string, present in the working
+file just before it was checked in.  For example, for
+the <code>Revision</code> keyword, generate the string
+<code>$<i></i>Revision: 1.1 $</code> instead of
+<code>$<i></i>Revision: 5.7 $</code> if that is how the
+string appeared when the file was checked in.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kb</samp>&rsquo;</dt>
+<dd><p>Like &lsquo;<samp>-ko</samp>&rsquo;, but also inhibit conversion of line
+endings between the canonical form in which they are
+stored in the repository (linefeed only), and the form
+appropriate to the operating system in use on the
+client.  For systems, like unix, which use linefeed
+only to terminate lines, this is the same as
+&lsquo;<samp>-ko</samp>&rsquo;.  For more information on binary files, see
+<a href="Binary-files.html#Binary-files">Binary files</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-kv</samp>&rsquo;</dt>
+<dd><p>Generate only keyword values for keyword strings.  For
+example, for the <code>Revision</code> keyword, generate the string
+<code>5.7</code> instead of <code>$<i></i>Revision: 5.7 $</code>.
+This can help generate files in programming languages
+where it is hard to strip keyword delimiters like
+<code>$<i></i>Revision: $</code> from a string.  However,
+further keyword substitution cannot be performed once
+the keyword names are removed, so this option should be
+used with care.
+</p>
+<p>One often would like to use &lsquo;<samp>-kv</samp>&rsquo; with <code>cvs
+export</code>&mdash;see <a href="export.html#export">export</a>.  But be aware 
that doesn&rsquo;t
+handle an export containing binary files correctly.
+</p>
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Log-keyword.html#Log-keyword" accesskey="n" rel="next">Log 
keyword</a>, Previous: <a 
href="Avoiding-substitution.html#Avoiding-substitution" accesskey="p" 
rel="prev">Avoiding substitution</a>, Up: <a 
href="Keyword-substitution.html#Keyword-substitution" accesskey="u" 
rel="up">Keyword substitution</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Tagging-add_002fremove.html
===================================================================
RCS file: html_node/Tagging-add_002fremove.html
diff -N html_node/Tagging-add_002fremove.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Tagging-add_002fremove.html       28 Dec 2015 15:58:08 -0000      
1.1
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Tagging 
add/remove</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Tagging add/remove">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Tagging add/remove">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Sticky-tags.html#Sticky-tags" rel="next" title="Sticky tags">
+<link href="Modifying-tags.html#Modifying-tags" rel="prev" title="Modifying 
tags">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Tagging-add_002fremove"></a>
+<div class="header">
+<p>
+Next: <a href="Sticky-tags.html#Sticky-tags" accesskey="n" rel="next">Sticky 
tags</a>, Previous: <a href="Modifying-tags.html#Modifying-tags" accesskey="p" 
rel="prev">Modifying tags</a>, Up: <a href="Revisions.html#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Tagging-and-adding-and-removing-files"></a>
+<h3 class="section">4.8 Tagging and adding and removing files</h3>
+
+<p>The subject of exactly how tagging interacts with
+adding and removing files is somewhat obscure; for the
+most part <small>CVS</small> will keep track of whether files
+exist or not without too much fussing.  By default,
+tags are applied to only files which have a revision
+corresponding to what is being tagged.  Files which did
+not exist yet, or which were already removed, simply
+omit the tag, and <small>CVS</small> knows to treat the absence
+of a tag as meaning that the file didn&rsquo;t exist as of
+that tag.
+</p>
+<p>However, this can lose a small amount of information.
+For example, suppose a file was added and then removed.
+Then, if the tag is missing for that file, there is no
+way to know whether the tag refers to the time before
+the file was added, or the time after it was removed.
+If you specify the &lsquo;<samp>-r</samp>&rsquo; option to <code>cvs 
rtag</code>,
+then <small>CVS</small> tags the files which have been removed,
+and thereby avoids this problem.  For example, one
+might specify <code>-r HEAD</code> to tag the head.
+</p>
+<p>On the subject of adding and removing files, the
+<code>cvs rtag</code> command has a &lsquo;<samp>-a</samp>&rsquo; option which
+means to clear the tag from removed files that would
+not otherwise be tagged.  For example, one might
+specify this option in conjunction with &lsquo;<samp>-F</samp>&rsquo; when
+moving a tag.  If one moved a tag without &lsquo;<samp>-a</samp>&rsquo;,
+then the tag in the removed files might still refer to
+the old revision, rather than reflecting the fact that
+the file had been removed.  I don&rsquo;t think this is
+necessary if &lsquo;<samp>-r</samp>&rsquo; is specified, as noted above.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Sticky-tags.html#Sticky-tags" accesskey="n" rel="next">Sticky 
tags</a>, Previous: <a href="Modifying-tags.html#Modifying-tags" accesskey="p" 
rel="prev">Modifying tags</a>, Up: <a href="Revisions.html#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Tagging-by-date_002ftag.html
===================================================================
RCS file: html_node/Tagging-by-date_002ftag.html
diff -N html_node/Tagging-by-date_002ftag.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Tagging-by-date_002ftag.html      28 Dec 2015 15:58:09 -0000      
1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Tagging by 
date/tag</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Tagging by date/tag">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Tagging by date/tag">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Modifying-tags.html#Modifying-tags" rel="next" title="Modifying 
tags">
+<link href="Tagging-the-working-directory.html#Tagging-the-working-directory" 
rel="prev" title="Tagging the working directory">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Tagging-by-date_002ftag"></a>
+<div class="header">
+<p>
+Next: <a href="Modifying-tags.html#Modifying-tags" accesskey="n" 
rel="next">Modifying tags</a>, Previous: <a 
href="Tagging-the-working-directory.html#Tagging-the-working-directory" 
accesskey="p" rel="prev">Tagging the working directory</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Specifying-what-to-tag-by-date-or-revision"></a>
+<h3 class="section">4.6 Specifying what to tag by date or revision</h3>
+<a name="index-rtag-_0028subcommand_0029"></a>
+
+<p>The <code>cvs rtag</code> command tags the repository as of a
+certain date or time (or can be used to tag the latest
+revision).  <code>rtag</code> works directly on the
+repository contents (it requires no prior checkout and
+does not look for a working directory).
+</p>
+<p>The following options specify which date or revision to
+tag.  See <a href="Common-options.html#Common-options">Common options</a>, for 
a complete
+description of them.
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Tag the most recent revision no later than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Only useful with the &lsquo;<samp>-D <var>date</var></samp>&rsquo; or 
&lsquo;<samp>-r <var>tag</var></samp>&rsquo;
+flags.  If no matching revision is found, use the most
+recent revision (instead of ignoring the file).
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Only tag those files that contain existing tag <var>tag</var>.
+</p></dd>
+</dl>
+
+<p>The <code>cvs tag</code> command also allows one to specify
+files by revision or date, using the same &lsquo;<samp>-r</samp>&rsquo;,
+&lsquo;<samp>-D</samp>&rsquo;, and &lsquo;<samp>-f</samp>&rsquo; options.  
However, this
+feature is probably not what you want.  The reason is
+that <code>cvs tag</code> chooses which files to tag based on
+the files that exist in the working directory, rather
+than the files which existed as of the given tag/date.
+Therefore, you are generally better off using <code>cvs
+rtag</code>.  The exceptions might be cases like:
+</p>
+<div class="example">
+<pre class="example">cvs tag -r 1.4 backend.c
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Tagging-the-working-directory.html
===================================================================
RCS file: html_node/Tagging-the-working-directory.html
diff -N html_node/Tagging-the-working-directory.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Tagging-the-working-directory.html        28 Dec 2015 15:58:09 
-0000      1.1
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Tagging the working 
directory</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Tagging the working directory">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Tagging the working directory">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag" rel="next" 
title="Tagging by date/tag">
+<link href="Tags.html#Tags" rel="prev" title="Tags">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Tagging-the-working-directory"></a>
+<div class="header">
+<p>
+Next: <a href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag" 
accesskey="n" rel="next">Tagging by date/tag</a>, Previous: <a 
href="Tags.html#Tags" accesskey="p" rel="prev">Tags</a>, Up: <a 
href="Revisions.html#Revisions" accesskey="u" rel="up">Revisions</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Specifying-what-to-tag-from-the-working-directory"></a>
+<h3 class="section">4.5 Specifying what to tag from the working directory</h3>
+
+<a name="index-tag-_0028subcommand_0029"></a>
+<p>The example in the previous section demonstrates one of
+the most common ways to choose which revisions to tag.
+Namely, running the <code>cvs tag</code> command without
+arguments causes <small>CVS</small> to select the revisions which
+are checked out in the current working directory.  For
+example, if the copy of <samp>backend.c</samp> in working
+directory was checked out from revision 1.4, then
+<small>CVS</small> will tag revision 1.4.  Note that the tag is
+applied immediately to revision 1.4 in the repository;
+tagging is not like modifying a file, or other
+operations in which one first modifies the working
+directory and then runs <code>cvs commit</code> to transfer
+that modification to the repository.
+</p>
+<p>One potentially surprising aspect of the fact that
+<code>cvs tag</code> operates on the repository is that you
+are tagging the checked-in revisions, which may differ
+from locally modified files in your working directory.
+If you want to avoid doing this by mistake, specify the
+&lsquo;<samp>-c</samp>&rsquo; option to <code>cvs tag</code>.  If there are any
+locally modified files, <small>CVS</small> will abort with an
+error before it tags any files:
+</p>
+<div class="example">
+<pre class="example">$ cvs tag -c rel-0-4
+cvs tag: backend.c is locally modified
+cvs [tag aborted]: correct the above errors first!
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Tags.html
===================================================================
RCS file: html_node/Tags.html
diff -N html_node/Tags.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Tags.html 28 Dec 2015 15:58:09 -0000      1.1
@@ -0,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Tags</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Tags">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Tags">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Tagging-the-working-directory.html#Tagging-the-working-directory" 
rel="next" title="Tagging the working directory">
+<link href="Assigning-revisions.html#Assigning-revisions" rel="prev" 
title="Assigning revisions">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Tags"></a>
+<div class="header">
+<p>
+Next: <a 
href="Tagging-the-working-directory.html#Tagging-the-working-directory" 
accesskey="n" rel="next">Tagging the working directory</a>, Previous: <a 
href="Assigning-revisions.html#Assigning-revisions" accesskey="p" 
rel="prev">Assigning revisions</a>, Up: <a href="Revisions.html#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Tags_002d_002dSymbolic-revisions"></a>
+<h3 class="section">4.4 Tags&ndash;Symbolic revisions</h3>
+<a name="index-Tags"></a>
+
+<p>The revision numbers live a life of their own.  They
+need not have anything at all to do with the release
+numbers of your software product.  Depending
+on how you use <small>CVS</small> the revision numbers might change several 
times
+between two releases.  As an example, some of the
+source files that make up <small>RCS</small> 5.6 have the following
+revision numbers:
+<a name="index-RCS-revision-numbers"></a>
+</p>
+<div class="example">
+<pre class="example">ci.c            5.21
+co.c            5.9
+ident.c         5.3
+rcs.c           5.12
+rcsbase.h       5.11
+rcsdiff.c       5.10
+rcsedit.c       5.11
+rcsfcmp.c       5.9
+rcsgen.c        5.10
+rcslex.c        5.11
+rcsmap.c        5.2
+rcsutil.c       5.10
+</pre></div>
+
+<a name="index-tag_002c-command_002c-introduction"></a>
+<a name="index-Tag_002c-symbolic-name"></a>
+<a name="index-Symbolic-name-_0028tag_0029"></a>
+<a name="index-Name_002c-symbolic-_0028tag_0029"></a>
+<a name="index-HEAD_002c-as-reserved-tag-name"></a>
+<a name="index-BASE_002c-as-reserved-tag-name"></a>
+<p>You can use the <code>tag</code> command to give a symbolic name to a
+certain revision of a file.  You can use the &lsquo;<samp>-v</samp>&rsquo; 
flag to the
+<code>status</code> command to see all tags that a file has, and
+which revision numbers they represent.  Tag names must
+start with an uppercase or lowercase letter and can
+contain uppercase and lowercase letters, digits,
+&lsquo;<samp>-</samp>&rsquo;, and &lsquo;<samp>_</samp>&rsquo;.  The two tag 
names <code>BASE</code>
+and <code>HEAD</code> are reserved for use by <small>CVS</small>.  It
+is expected that future names which are special to
+<small>CVS</small> will be specially named, for example by
+starting with &lsquo;<samp>.</samp>&rsquo;, rather than being named 
analogously to
+<code>BASE</code> and <code>HEAD</code>, to avoid conflicts with
+actual tag names.
+</p>
+<p>You&rsquo;ll want to choose some convention for naming tags,
+based on information such as the name of the program
+and the version number of the release.  For example,
+one might take the name of the program, immediately
+followed by the version number with &lsquo;<samp>.</samp>&rsquo; changed to
+&lsquo;<samp>-</samp>&rsquo;, so that <small>CVS</small> 1.9 would be tagged 
with the name
+<code>cvs1-9</code>.  If you choose a consistent convention,
+then you won&rsquo;t constantly be guessing whether a tag is
+<code>cvs-1-9</code> or <code>cvs1_9</code> or what.  You might
+even want to consider enforcing your convention in the
+<samp>taginfo</samp> file (see <a href="taginfo.html#taginfo">taginfo</a>).
+</p>
+<a name="index-Adding-a-tag"></a>
+<a name="index-Tag_002c-example"></a>
+<p>The following example shows how you can add a tag to a
+file.  The commands must be issued inside your working
+directory.  That is, you should issue the
+command in the directory where <samp>backend.c</samp>
+resides.
+</p>
+<div class="example">
+<pre class="example">$ cvs tag rel-0-4 backend.c
+T backend.c
+$ cvs status -v backend.c
+===================================================================
+File: backend.c         Status: Up-to-date
+
+    Version:            1.4     Tue Dec  1 14:39:01 1992
+    RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
+    Sticky Tag:         (none)
+    Sticky Date:        (none)
+    Sticky Options:     (none)
+
+    Existing Tags:
+        rel-0-4                     (revision: 1.4)
+
+</pre></div>
+
+<p>For a complete summary of the syntax of <code>cvs tag</code>,
+including the various options, see <a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>.
+</p>
+<p>There is seldom reason to tag a file in isolation.  A more common use is
+to tag all the files that constitute a module with the same tag at
+strategic points in the development life-cycle, such as when a release
+is made.
+</p>
+<div class="example">
+<pre class="example">$ cvs tag rel-1-0 .
+cvs tag: Tagging .
+T Makefile
+T backend.c
+T driver.c
+T frontend.c
+T parser.c
+</pre></div>
+
+<p>(When you give <small>CVS</small> a directory as argument, it generally 
applies the
+operation to all the files in that directory, and (recursively), to any
+subdirectories that it may contain.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.)
+</p>
+<a name="index-Retrieving-an-old-revision-using-tags"></a>
+<a name="index-Tag_002c-retrieving-old-revisions"></a>
+<p>The <code>checkout</code> command has a flag, 
&lsquo;<samp>-r</samp>&rsquo;, that lets you check out
+a certain revision of a module.  This flag makes it easy to
+retrieve the sources that make up release 1.0 of the module 
&lsquo;<samp>tc</samp>&rsquo; at
+any time in the future:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -r rel-1-0 tc
+</pre></div>
+
+<p>This is useful, for instance, if someone claims that there is a bug in
+that release, but you cannot find the bug in the current working copy.
+</p>
+<p>You can also check out a module as it was at any given date.
+See <a href="checkout-options.html#checkout-options">checkout options</a>.  
When specifying &lsquo;<samp>-r</samp>&rsquo; to
+any of these commands, you will need beware of sticky
+tags; see <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a>.
+</p>
+<p>When you tag more than one file with the same tag you
+can think about the tag as &quot;a curve drawn through a
+matrix of filename vs. revision number.&quot;  Say we have 5
+files with the following revisions:
+</p>
+<div class="example">
+<pre class="example">        file1   file2   file3   file4   file5
+
+        1.1     1.1     1.1     1.1  /--1.1*      &lt;-*-  TAG
+        1.2*-   1.2     1.2    -1.2*-
+        1.3  \- 1.3*-   1.3   / 1.3
+        1.4          \  1.4  /  1.4
+                      \-1.5*-   1.5
+                        1.6
+</pre></div>
+
+<p>At some time in the past, the <code>*</code> versions were tagged.
+You can think of the tag as a handle attached to the curve
+drawn through the tagged revisions.  When you pull on
+the handle, you get all the tagged revisions.  Another
+way to look at it is that you &quot;sight&quot; through a set of
+revisions that is &quot;flat&quot; along the tagged revisions,
+like this:
+</p>
+<div class="example">
+<pre class="example">        file1   file2   file3   file4   file5
+
+                        1.1
+                        1.2
+                1.1     1.3                       _
+        1.1     1.2     1.4     1.1              /
+        1.2*----1.3*----1.5*----1.2*----1.1     (--- &lt;--- Look here
+        1.3             1.6     1.3              \_
+        1.4                     1.4
+                                1.5
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Next: <a 
href="Tagging-the-working-directory.html#Tagging-the-working-directory" 
accesskey="n" rel="next">Tagging the working directory</a>, Previous: <a 
href="Assigning-revisions.html#Assigning-revisions" accesskey="p" 
rel="prev">Assigning revisions</a>, Up: <a href="Revisions.html#Revisions" 
accesskey="u" rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Tracking-sources.html
===================================================================
RCS file: html_node/Tracking-sources.html
diff -N html_node/Tracking-sources.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Tracking-sources.html     28 Dec 2015 15:58:09 -0000      1.1
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Tracking sources</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Tracking sources">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Tracking sources">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="First-import.html#First-import" rel="next" title="First import">
+<link href="Log-keyword.html#Log-keyword" rel="prev" title="Log keyword">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Tracking-sources"></a>
+<div class="header">
+<p>
+Next: <a href="Builds.html#Builds" accesskey="n" rel="next">Builds</a>, 
Previous: <a href="Keyword-substitution.html#Keyword-substitution" 
accesskey="p" rel="prev">Keyword substitution</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Tracking-third_002dparty-sources"></a>
+<h2 class="chapter">13 Tracking third-party sources</h2>
+<a name="index-Third_002dparty-sources"></a>
+<a name="index-Tracking-sources"></a>
+
+<p>If you modify a program to better fit your site, you
+probably want to include your modifications when the next
+release of the program arrives.  <small>CVS</small> can help you with
+this task.
+</p>
+<a name="index-Vendor"></a>
+<a name="index-Vendor-branch"></a>
+<a name="index-Branch_002c-vendor_002d"></a>
+<p>In the terminology used in <small>CVS</small>, the supplier of the
+program is called a <em>vendor</em>.  The unmodified
+distribution from the vendor is checked in on its own
+branch, the <em>vendor branch</em>.  <small>CVS</small> reserves branch
+1.1.1 for this use.
+</p>
+<p>When you modify the source and commit it, your revision
+will end up on the main trunk.  When a new release is
+made by the vendor, you commit it on the vendor branch
+and copy the modifications onto the main trunk.
+</p>
+<p>Use the <code>import</code> command to create and update
+the vendor branch.  When you import a new file,
+the vendor branch is made the &lsquo;head&rsquo; revision, so
+anyone that checks out a copy of the file gets that
+revision.  When a local modification is committed it is
+placed on the main trunk, and made the &lsquo;head&rsquo;
+revision.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="First-import.html#First-import" accesskey="1">First 
import</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Importing 
for the first time
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Update-imports.html#Update-imports" accesskey="2">Update 
imports</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Updating 
with the import command
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Reverting-local-changes.html#Reverting-local-changes" 
accesskey="3">Reverting local changes</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Reverting to the latest vendor release
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Binary-files-in-imports.html#Binary-files-in-imports" 
accesskey="4">Binary files in imports</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Binary files require special handling
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Keywords-in-imports.html#Keywords-in-imports" accesskey="5">Keywords in 
imports</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Keyword 
substitution might be undesirable
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Multiple-vendor-branches.html#Multiple-vendor-branches" 
accesskey="6">Multiple vendor branches</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">What if you get sources from several places?
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Builds.html#Builds" accesskey="n" rel="next">Builds</a>, 
Previous: <a href="Keyword-substitution.html#Keyword-substitution" 
accesskey="p" rel="prev">Keyword substitution</a>, Up: <a href="index.html#Top" 
accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Trigger-Script-Security.html
===================================================================
RCS file: html_node/Trigger-Script-Security.html
diff -N html_node/Trigger-Script-Security.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Trigger-Script-Security.html      28 Dec 2015 15:58:09 -0000      
1.1
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Trigger Script 
Security</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Trigger Script Security">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Trigger Script Security">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Trigger-Scripts.html#Trigger-Scripts" rel="up" title="Trigger 
Scripts">
+<link href="commit-files.html#commit-files" rel="next" title="commit files">
+<link href="syntax.html#syntax" rel="prev" title="syntax">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Trigger-Script-Security"></a>
+<div class="header">
+<p>
+Previous: <a href="syntax.html#syntax" accesskey="p" rel="prev">syntax</a>, 
Up: <a href="Trigger-Scripts.html#Trigger-Scripts" accesskey="u" 
rel="up">Trigger Scripts</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Security-and-the-Trigger-Scripts"></a>
+<h4 class="appendixsubsec">C.3.2 Security and the Trigger Scripts</h4>
+<a name="index-Info-files_002c-security"></a>
+<a name="index-Trigger-scripts_002c-security"></a>
+
+<p>Security is a huge subject, and implementing a secure system is a 
non-trivial
+task.  This section will barely touch on all the issues involved, but it is
+well to note that, as with any script you will be allowing an untrusted
+user to run on your server, there are measures you can take to help prevent
+your trigger scripts from being abused.
+</p>
+<p>For instance, since the CVS trigger scripts all run in a copy of the 
user&rsquo;s
+sandbox on the server, a naively coded Perl trigger script which attempts to
+use a Perl module that is not installed on the system can be hijacked by any
+user with commit access who is checking in a file with the correct name.  Other
+scripting languages may be vulnerable to similar hacks.
+</p>
+<p>One way to make a script more secure, at least with Perl, is to use scripts
+which invoke the <code>-T</code>, or &quot;taint-check&quot; switch on their 
<code>#!</code> line.
+In the most basic terms, this causes Perl to avoid running code that may have
+come from an external source.  Please run the <code>perldoc perlsec</code> 
command
+for more on Perl security.  Again, other languages may implement other security
+verification hooks which look more or less like Perl&rsquo;s 
&quot;taint-check&quot; mechanism.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Trigger-Scripts.html
===================================================================
RCS file: html_node/Trigger-Scripts.html
diff -N html_node/Trigger-Scripts.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Trigger-Scripts.html      28 Dec 2015 15:58:10 -0000      1.1
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Trigger Scripts</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Trigger Scripts">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Trigger Scripts">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="syntax.html#syntax" rel="next" title="syntax">
+<link href="Wrappers.html#Wrappers" rel="prev" title="Wrappers">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Trigger-Scripts"></a>
+<div class="header">
+<p>
+Next: <a href="commit-files.html#commit-files" accesskey="n" rel="next">commit 
files</a>, Previous: <a href="Wrappers.html#Wrappers" accesskey="p" 
rel="prev">Wrappers</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-Trigger-Scripts"></a>
+<h3 class="appendixsec">C.3 The Trigger Scripts</h3>
+<a name="index-Info-files"></a>
+<a name="index-Trigger-scripts"></a>
+
+<p>Several of the administrative files support triggers, or the launching 
external
+scripts or programs at specific times before or after particular events.  The
+individual files are discussed in the later sections, <a 
href="commit-files.html#commit-files">commit files</a> and
+<a href="taginfo.html#taginfo">taginfo</a>, but some of the common elements 
are discussed here.
+</p>
+<p>All the trigger scripts are launched in a copy of the user sandbox being
+committed, on the server, in client-server mode.  In local mode, the scripts
+are actually launched directly from the user sandbox directory being committed.
+For most intents and purposes, the same scripts can be run in both locations
+without alteration.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="syntax.html#syntax" 
accesskey="1">syntax</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">The common syntax
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Trigger-Script-Security.html#Trigger-Script-Security" 
accesskey="2">Trigger Script Security</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Trigger script security
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/Troubleshooting.html
===================================================================
RCS file: html_node/Troubleshooting.html
diff -N html_node/Troubleshooting.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Troubleshooting.html      28 Dec 2015 15:58:10 -0000      1.1
@@ -0,0 +1,82 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Troubleshooting</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Troubleshooting">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Troubleshooting">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Error-messages.html#Error-messages" rel="next" title="Error 
messages">
+<link href="Compatibility.html#Compatibility" rel="prev" title="Compatibility">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Troubleshooting"></a>
+<div class="header">
+<p>
+Next: <a href="Credits.html#Credits" accesskey="n" rel="next">Credits</a>, 
Previous: <a href="Compatibility.html#Compatibility" accesskey="p" 
rel="prev">Compatibility</a>, Up: <a href="index.html#Top" accesskey="u" 
rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Troubleshooting-1"></a>
+<h2 class="appendix">Appendix F Troubleshooting</h2>
+
+<p>If you are having trouble with <small>CVS</small>, this appendix
+may help.  If there is a particular error message which
+you are seeing, then you can look up the message
+alphabetically.  If not, you can look through the
+section on other problems to see if your problem is
+mentioned there.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Error-messages.html#Error-messages" accesskey="1">Error 
messages</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Partial 
list of CVS errors
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Connection.html#Connection" 
accesskey="2">Connection</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Trouble making a connection to a CVS server
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Other-problems.html#Other-problems" accesskey="3">Other 
problems</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Problems 
not readily listed by error message
+</td></tr>
+</table>
+
+
+
+
+
+</body>
+</html>

Index: html_node/Update-imports.html
===================================================================
RCS file: html_node/Update-imports.html
diff -N html_node/Update-imports.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Update-imports.html       28 Dec 2015 15:58:10 -0000      1.1
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Update imports</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Update imports">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Update imports">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Tracking-sources.html#Tracking-sources" rel="up" title="Tracking 
sources">
+<link href="Reverting-local-changes.html#Reverting-local-changes" rel="next" 
title="Reverting local changes">
+<link href="First-import.html#First-import" rel="prev" title="First import">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Update-imports"></a>
+<div class="header">
+<p>
+Next: <a href="Reverting-local-changes.html#Reverting-local-changes" 
accesskey="n" rel="next">Reverting local changes</a>, Previous: <a 
href="First-import.html#First-import" accesskey="p" rel="prev">First 
import</a>, Up: <a href="Tracking-sources.html#Tracking-sources" accesskey="u" 
rel="up">Tracking sources</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Updating-with-the-import-command"></a>
+<h3 class="section">13.2 Updating with the import command</h3>
+
+<p>When a new release of the source arrives, you import it into the
+repository with the same <code>import</code> command that you used to set up
+the repository in the first place.  The only difference is that you
+specify a different release tag this time:
+</p>
+<div class="example">
+<pre class="example">$ tar xfz wdiff-0.05.tar.gz
+$ cd wdiff-0.05
+$ cvs import -m &quot;Import of FSF v. 0.05&quot; fsf/wdiff FSF_DIST WDIFF_0_05
+</pre></div>
+
+<p><strong>WARNING:  If you use a release tag that already exists in one of the
+repository archives, files removed by an import may not be detected.</strong>
+</p>
+<p>For files that have not been modified locally, the newly created
+revision becomes the head revision.  If you have made local
+changes, <code>import</code> will warn you that you must merge the changes
+into the main trunk, and tell you to use &lsquo;<samp>checkout 
-j</samp>&rsquo; to do so:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -jFSF_DIST:yesterday -jFSF_DIST wdiff
+</pre></div>
+
+<p>The above command will check out the latest revision of
+&lsquo;<samp>wdiff</samp>&rsquo;, merging the changes made on the vendor 
branch &lsquo;<samp>FSF_DIST</samp>&rsquo;
+since yesterday into the working copy.  If any conflicts arise during
+the merge they should be resolved in the normal way (see <a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a>).  Then, 
the modified files may be committed.
+</p>
+<p>However, it is much better to use the two release tags rather than using
+a date on the branch as suggested above:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -jWDIFF_0_04 -jWDIFF_0_05 wdiff
+</pre></div>
+
+<p>The reason this is better is that
+using a date, as suggested above, assumes that you do
+not import more than one release of a product per day.
+More importantly, using the release tags allows <small>CVS</small> to detect 
files
+that were removed between the two vendor releases and mark them for
+removal.  Since <code>import</code> has no way to detect removed files, you
+should do a merge like this even if <code>import</code> doesn&rsquo;t tell you 
to.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Reverting-local-changes.html#Reverting-local-changes" 
accesskey="n" rel="next">Reverting local changes</a>, Previous: <a 
href="First-import.html#First-import" accesskey="p" rel="prev">First 
import</a>, Up: <a href="Tracking-sources.html#Tracking-sources" accesskey="u" 
rel="up">Tracking sources</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Updating-a-file.html
===================================================================
RCS file: html_node/Updating-a-file.html
diff -N html_node/Updating-a-file.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Updating-a-file.html      28 Dec 2015 15:58:10 -0000      1.1
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Updating a file</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Updating a file">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Updating a file">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Conflicts-example.html#Conflicts-example" rel="next" 
title="Conflicts example">
+<link href="File-status.html#File-status" rel="prev" title="File status">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Updating-a-file"></a>
+<div class="header">
+<p>
+Next: <a href="Conflicts-example.html#Conflicts-example" accesskey="n" 
rel="next">Conflicts example</a>, Previous: <a 
href="File-status.html#File-status" accesskey="p" rel="prev">File status</a>, 
Up: <a href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Bringing-a-file-up-to-date"></a>
+<h3 class="section">10.2 Bringing a file up to date</h3>
+<a name="index-Bringing-a-file-up-to-date"></a>
+<a name="index-Updating-a-file"></a>
+<a name="index-Merging-a-file"></a>
+<a name="index-Update_002c-introduction"></a>
+
+<p>When you want to update or merge a file, use the <code>cvs update -d</code>
+command.  For files that are not up to date this is roughly equivalent
+to a <code>checkout</code> command: the newest revision of the file is
+extracted from the repository and put in your working directory.  The
+<code>-d</code> option, not necessary with <code>checkout</code>, tells 
<small>CVS</small>
+that you wish it to create directories added by other developers.
+</p>
+<p>Your modifications to a file are never lost when you
+use <code>update</code>.  If no newer revision exists,
+running <code>update</code> has no effect.  If you have
+edited the file, and a newer revision is available,
+<small>CVS</small> will merge all changes into your working copy.
+</p>
+<p>For instance, imagine that you checked out revision 1.4 and started
+editing it.  In the meantime someone else committed revision 1.5, and
+shortly after that revision 1.6.  If you run <code>update</code> on the file
+now, <small>CVS</small> will incorporate all changes between revision 1.4 and 
1.6 into
+your file.
+</p>
+<a name="index-Overlap"></a>
+<p>If any of the changes between 1.4 and 1.6 were made too
+close to any of the changes you have made, an
+<em>overlap</em> occurs.  In such cases a warning is
+printed, and the resulting file includes both
+versions of the lines that overlap, delimited by
+special markers.
+See <a href="update.html#update">update</a>, for a complete description of the
+<code>update</code> command.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Using-keywords.html
===================================================================
RCS file: html_node/Using-keywords.html
diff -N html_node/Using-keywords.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Using-keywords.html       28 Dec 2015 15:58:11 -0000      1.1
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Using keywords</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Using keywords">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Using keywords">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="up" 
title="Keyword substitution">
+<link href="Avoiding-substitution.html#Avoiding-substitution" rel="next" 
title="Avoiding substitution">
+<link href="Keyword-list.html#Keyword-list" rel="prev" title="Keyword list">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Using-keywords"></a>
+<div class="header">
+<p>
+Next: <a href="Avoiding-substitution.html#Avoiding-substitution" accesskey="n" 
rel="next">Avoiding substitution</a>, Previous: <a 
href="Keyword-list.html#Keyword-list" accesskey="p" rel="prev">Keyword 
list</a>, Up: <a href="Keyword-substitution.html#Keyword-substitution" 
accesskey="u" rel="up">Keyword substitution</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Using-keywords-1"></a>
+<h3 class="section">12.2 Using keywords</h3>
+
+<p>To include a keyword string you simply include the
+relevant text string, such as <code>$<i></i>Id$</code>, inside the
+file, and commit the file.  <small>CVS</small> will automatically (Or,
+more accurately, as part of the update run that
+automatically happens after a commit.)
+expand the string as part of the commit operation.
+</p>
+<p>It is common to embed the <code>$<i></i>Id$</code> string in
+the source files so that it gets passed through to
+generated files.  For example, if you are managing
+computer program source code, you might include a
+variable which is initialized to contain that string.
+Or some C compilers may provide a <code>#pragma ident</code>
+directive.  Or a document management system might
+provide a way to pass a string through to generated
+files.
+</p>
+
+<a name="index-Ident-_0028shell-command_0029"></a>
+<p>The <code>ident</code> command (which is part of the <small>RCS</small>
+package) can be used to extract keywords and their
+values from a file.  This can be handy for text files,
+but it is even more useful for extracting keywords from
+binary files.
+</p>
+<div class="example">
+<pre class="example">$ ident samp.c
+samp.c:
+     $<i></i>Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
+$ gcc samp.c
+$ ident a.out
+a.out:
+     $<i></i>Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
+</pre></div>
+
+<a name="index-What-_0028shell-command_0029"></a>
+<p>S<small>CCS</small> is another popular revision control system.
+It has a command, <code>what</code>, which is very similar to
+<code>ident</code> and used for the same purpose.  Many sites
+without <small>RCS</small> have <small>SCCS</small>.  Since <code>what</code>
+looks for the character sequence <code>@(#)</code> it is
+easy to include keywords that are detected by either
+command.  Simply prefix the keyword with the
+magic <small>SCCS</small> phrase, like this:
+</p>
+<div class="example">
+<pre class="example">static char *id=&quot;@(#) $<i></i>Id: ab.c,v 1.5 
1993/10/19 14:57:32 ceder Exp $&quot;;
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Avoiding-substitution.html#Avoiding-substitution" accesskey="n" 
rel="next">Avoiding substitution</a>, Previous: <a 
href="Keyword-list.html#Keyword-list" accesskey="p" rel="prev">Keyword 
list</a>, Up: <a href="Keyword-substitution.html#Keyword-substitution" 
accesskey="u" rel="up">Keyword substitution</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Variables.html
===================================================================
RCS file: html_node/Variables.html
diff -N html_node/Variables.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Variables.html    28 Dec 2015 15:58:11 -0000      1.1
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Variables</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Variables">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Variables">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="config.html#config" rel="next" title="config">
+<link href="history-file.html#history-file" rel="prev" title="history file">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Variables"></a>
+<div class="header">
+<p>
+Next: <a href="config.html#config" accesskey="n" rel="next">config</a>, 
Previous: <a href="history-file.html#history-file" accesskey="p" 
rel="prev">history file</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Expansions-in-administrative-files"></a>
+<h3 class="appendixsec">C.10 Expansions in administrative files</h3>
+<a name="index-Internal-variables"></a>
+<a name="index-Variables"></a>
+
+<p>Sometimes in writing an administrative file, you might
+want the file to be able to know various things based
+on environment <small>CVS</small> is running in.  There are
+several mechanisms to do that.
+</p>
+<p>To find the home directory of the user running <small>CVS</small>
+(from the <code>HOME</code> environment variable), use
+&lsquo;<samp>~</samp>&rsquo; followed by &lsquo;<samp>/</samp>&rsquo; or the 
end of the line.
+Likewise for the home directory of <var>user</var>, use
+&lsquo;<samp>~<var>user</var></samp>&rsquo;.  These variables are expanded on
+the server machine, and don&rsquo;t get any reasonable
+expansion if pserver (see <a 
href="Password-authenticated.html#Password-authenticated">Password 
authenticated</a>)
+is in use; therefore user variables (see below) may be
+a better choice to customize behavior based on the user
+running <small>CVS</small>.
+</p>
+<p>One may want to know about various pieces of
+information internal to <small>CVS</small>.  A <small>CVS</small> internal
+variable has the syntax <code>${<var>variable</var>}</code>,
+where <var>variable</var> starts with a letter and consists
+of alphanumeric characters and &lsquo;<samp>_</samp>&rsquo;.  If the
+character following <var>variable</var> is a
+non-alphanumeric character other than &lsquo;<samp>_</samp>&rsquo;, the
+&lsquo;<samp>{</samp>&rsquo; and &lsquo;<samp>}</samp>&rsquo; can be omitted.  
The <small>CVS</small>
+internal variables are:
+</p>
+<dl compact="compact">
+<dt><code>CVSROOT</code></dt>
+<dd><a name="index-CVSROOT_002c-internal-variable"></a>
+<p>This is the absolute path to the current <small>CVS</small> root directory.
+See <a href="Repository.html#Repository">Repository</a>, for a description of 
the various
+ways to specify this, but note that the internal
+variable contains just the directory and not any
+of the access method information.
+</p>
+</dd>
+<dt><code>RCSBIN</code></dt>
+<dd><a name="index-RCSBIN_002c-internal-variable"></a>
+<p>In <small>CVS</small> 1.9.18 and older, this specified the
+directory where <small>CVS</small> was looking for <small>RCS</small>
+programs.  Because <small>CVS</small> no longer runs <small>RCS</small>
+programs, specifying this internal variable is now an
+error.
+</p>
+</dd>
+<dt><code>CVSEDITOR</code></dt>
+<dd><a name="index-CVSEDITOR_002c-internal-variable"></a>
+</dd>
+<dt><code>EDITOR</code></dt>
+<dd><a name="index-EDITOR_002c-internal-variable"></a>
+</dd>
+<dt><code>VISUAL</code></dt>
+<dd><a name="index-VISUAL_002c-internal-variable"></a>
+<p>These all expand to the same value, which is the editor
+that <small>CVS</small> is using.  See <a 
href="Global-options.html#Global-options">Global options</a>, for how
+to specify this.
+</p>
+</dd>
+<dt><code>USER</code></dt>
+<dd><a name="index-USER_002c-internal-variable"></a>
+<p>Username of the user running <small>CVS</small> (on the <small>CVS</small>
+server machine).
+When using pserver, this is the user specified in the repository
+specification which need not be the same as the username the
+server is running as (see <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>).
+Do not confuse this with the environment variable of the same name.
+</p></dd>
+</dl>
+
+<p>If you want to pass a value to the administrative files
+which the user who is running <small>CVS</small> can specify,
+use a user variable.
+<a name="index-User-variables"></a>
+To expand a user variable, the
+administrative file contains
+<code>${=<var>variable</var>}</code>.  To set a user variable,
+specify the global option &lsquo;<samp>-s</samp>&rsquo; to <small>CVS</small>, 
with
+argument <code><var>variable</var>=<var>value</var></code>.  It may be
+particularly useful to specify this option via
+<samp>.cvsrc</samp> (see <a 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc">~/.cvsrc</a>).
+</p>
+<p>For example, if you want the administrative file to
+refer to a test directory you might create a user
+variable <code>TESTDIR</code>.  Then if <small>CVS</small> is invoked
+as
+</p>
+<div class="example">
+<pre class="example">cvs -s TESTDIR=/work/local/tests
+</pre></div>
+
+<p>and the
+administrative file contains <code>sh
+${=TESTDIR}/runtests</code>, then that string is expanded
+to <code>sh /work/local/tests/runtests</code>.
+</p>
+<p>All other strings containing &lsquo;<samp>$</samp>&rsquo; are reserved;
+there is no way to quote a &lsquo;<samp>$</samp>&rsquo; character so that
+&lsquo;<samp>$</samp>&rsquo; represents itself.
+</p>
+<p>Environment variables passed to administrative files are:
+</p>
+<dl compact="compact">
+<dd><a 
name="index-environment-variables_002c-passed-to-administrative-files"></a>
+
+</dd>
+<dt><code>CVS_USER</code></dt>
+<dd><a name="index-CVS_005fUSER_002c-environment-variable"></a>
+<p>The <small>CVS</small>-specific username provided by the user, if it
+can be provided (currently just for the pserver access
+method), and to the empty string otherwise.  (<code>CVS_USER</code>
+and <code>USER</code> may differ when <samp>$CVSROOT/CVSROOT/passwd</samp>
+is used to map <small>CVS</small> usernames to system usernames.)
+</p>
+</dd>
+<dt><code>LOGNAME</code></dt>
+<dd><a name="index-LOGNAME_002c-environment-variable"></a>
+<p>The username of the system user.
+</p>
+</dd>
+<dt><code>USER</code></dt>
+<dd><a name="index-USER_002c-environment-variable"></a>
+<p>Same as <code>LOGNAME</code>.
+Do not confuse this with the internal variable of the same name.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="config.html#config" accesskey="n" rel="next">config</a>, 
Previous: <a href="history-file.html#history-file" accesskey="p" 
rel="prev">history file</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Versions-revisions-releases.html
===================================================================
RCS file: html_node/Versions-revisions-releases.html
diff -N html_node/Versions-revisions-releases.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Versions-revisions-releases.html  28 Dec 2015 15:58:12 -0000      
1.1
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Versions revisions 
releases</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Versions revisions releases">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Versions revisions releases">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revisions.html#Revisions" rel="up" title="Revisions">
+<link href="Assigning-revisions.html#Assigning-revisions" rel="next" 
title="Assigning revisions">
+<link href="Revision-numbers.html#Revision-numbers" rel="prev" title="Revision 
numbers">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Versions-revisions-releases"></a>
+<div class="header">
+<p>
+Next: <a href="Assigning-revisions.html#Assigning-revisions" accesskey="n" 
rel="next">Assigning revisions</a>, Previous: <a 
href="Revision-numbers.html#Revision-numbers" accesskey="p" rel="prev">Revision 
numbers</a>, Up: <a href="Revisions.html#Revisions" accesskey="u" 
rel="up">Revisions</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table 
of contents" rel="contents">Contents</a>][<a href="Index.html#Index" 
title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Versions_002c-revisions-and-releases"></a>
+<h3 class="section">4.2 Versions, revisions and releases</h3>
+<a name="index-Revisions_002c-versions-and-releases"></a>
+<a name="index-Versions_002c-revisions-and-releases"></a>
+<a name="index-Releases_002c-revisions-and-versions"></a>
+
+<p>A file can have several versions, as described above.
+Likewise, a software product can have several versions.
+A software product is often given a version number such
+as &lsquo;<samp>4.1.1</samp>&rsquo;.
+</p>
+<p>Versions in the first sense are called <em>revisions</em>
+in this document, and versions in the second sense are
+called <em>releases</em>.  To avoid confusion, the word
+<em>version</em> is almost never used in this document.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Viewing-differences.html
===================================================================
RCS file: html_node/Viewing-differences.html
diff -N html_node/Viewing-differences.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Viewing-differences.html  28 Dec 2015 15:58:12 -0000      1.1
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Viewing 
differences</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Viewing differences">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Viewing differences">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="A-sample-session.html#A-sample-session" rel="up" title="A sample 
session">
+<link href="Repository.html#Repository" rel="next" title="Repository">
+<link href="Cleaning-up.html#Cleaning-up" rel="prev" title="Cleaning up">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Viewing-differences"></a>
+<div class="header">
+<p>
+Previous: <a href="Cleaning-up.html#Cleaning-up" accesskey="p" 
rel="prev">Cleaning up</a>, Up: <a 
href="A-sample-session.html#A-sample-session" accesskey="u" rel="up">A sample 
session</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Viewing-differences-1"></a>
+<h4 class="subsection">1.3.4 Viewing differences</h4>
+<a name="index-Viewing-differences"></a>
+<a name="index-Diff"></a>
+
+<p>You do not remember modifying <samp>driver.c</samp>, so you want to see what
+has happened to that file.
+</p>
+<div class="example">
+<pre class="example">$ cd tc
+$ cvs diff driver.c
+</pre></div>
+
+<p>This command runs <code>diff</code> to compare the version of 
<samp>driver.c</samp>
+that you checked out with your working copy.  When you see the output
+you remember that you added a command line option that enabled the
+optimization pass.  You check it in, and release the module.
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -m &quot;Added an optimization pass&quot; 
driver.c
+Checking in driver.c;
+/usr/local/cvsroot/tc/driver.c,v  &lt;--  driver.c
+new revision: 1.2; previous revision: 1.1
+done
+$ cd ..
+$ cvs release -d tc
+? tc
+You have [0] altered files in this repository.
+Are you sure you want to release (and delete) directory `tc': y
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/Watch-information.html
===================================================================
RCS file: html_node/Watch-information.html
diff -N html_node/Watch-information.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Watch-information.html    28 Dec 2015 15:58:12 -0000      1.1
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Watch information</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Watch information">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Watch information">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Watches.html#Watches" rel="up" title="Watches">
+<link href="Watches-Compatibility.html#Watches-Compatibility" rel="next" 
title="Watches Compatibility">
+<link href="Editing-files.html#Editing-files" rel="prev" title="Editing files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Watch-information"></a>
+<div class="header">
+<p>
+Next: <a href="Watches-Compatibility.html#Watches-Compatibility" accesskey="n" 
rel="next">Watches Compatibility</a>, Previous: <a 
href="Editing-files.html#Editing-files" accesskey="p" rel="prev">Editing 
files</a>, Up: <a href="Watches.html#Watches" accesskey="u" 
rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Information-about-who-is-watching-and-editing"></a>
+<h4 class="subsection">10.6.4 Information about who is watching and 
editing</h4>
+
+<a name="index-watchers-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-watchers"></a>Command: <strong>cvs watchers</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>List the users currently watching changes to <var>files</var>.  The report
+includes the files being watched, and the mail address of each watcher.
+</p>
+<p>The <var>files</var> and options are processed as for the
+<code>cvs watch</code> commands.
+</p>
+</dd></dl>
+
+
+<a name="index-editors-_0028subcommand_0029"></a>
+<dl>
+<dt><a name="index-cvs-editors"></a>Command: <strong>cvs editors</strong> 
<em>[<code>-lR</code>] [<var>files</var>]&hellip;</em></dt>
+<dd>
+<p>List the users currently working on <var>files</var>.  The report
+includes the mail address of each user, the time when the user began
+working with the file, and the host and path of the working directory
+containing the file.
+</p>
+<p>The <var>files</var> and options are processed as for the
+<code>cvs watch</code> commands.
+</p>
+</dd></dl>
+
+
+
+
+</body>
+</html>

Index: html_node/Watches-Compatibility.html
===================================================================
RCS file: html_node/Watches-Compatibility.html
diff -N html_node/Watches-Compatibility.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Watches-Compatibility.html        28 Dec 2015 15:58:12 -0000      
1.1
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Watches 
Compatibility</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Watches Compatibility">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Watches Compatibility">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Watches.html#Watches" rel="up" title="Watches">
+<link href="Choosing-a-model.html#Choosing-a-model" rel="next" title="Choosing 
a model">
+<link href="Watch-information.html#Watch-information" rel="prev" title="Watch 
information">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Watches-Compatibility"></a>
+<div class="header">
+<p>
+Previous: <a href="Watch-information.html#Watch-information" accesskey="p" 
rel="prev">Watch information</a>, Up: <a href="Watches.html#Watches" 
accesskey="u" rel="up">Watches</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Using-watches-with-old-versions-of-CVS"></a>
+<h4 class="subsection">10.6.5 Using watches with old versions of CVS</h4>
+
+<a name="index-CVS-1_002e6_002c-and-watches"></a>
+<p>If you use the watch features on a repository, it
+creates <samp>CVS</samp> directories in the repository and
+stores the information about watches in that directory.
+If you attempt to use <small>CVS</small> 1.6 or earlier with the
+repository, you get an error message such as the
+following (all on one line):
+</p>
+<div class="example">
+<pre class="example">cvs update: cannot open CVS/Entries for reading:
+No such file or directory
+</pre></div>
+
+<p>and your operation will likely be aborted.  To use the
+watch features, you must upgrade all copies of <small>CVS</small>
+which use that repository in local or server mode.  If
+you cannot upgrade, use the <code>watch off</code> and
+<code>watch remove</code> commands to remove all watches, and
+that will restore the repository to a state which
+<small>CVS</small> 1.6 can cope with.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Watches.html
===================================================================
RCS file: html_node/Watches.html
diff -N html_node/Watches.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Watches.html      28 Dec 2015 15:58:12 -0000      1.1
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Watches</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Watches">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Watches">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Multiple-developers.html#Multiple-developers" rel="up" 
title="Multiple developers">
+<link href="Setting-a-watch.html#Setting-a-watch" rel="next" title="Setting a 
watch">
+<link href="Concurrency.html#Concurrency" rel="prev" title="Concurrency">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Watches"></a>
+<div class="header">
+<p>
+Next: <a href="Choosing-a-model.html#Choosing-a-model" accesskey="n" 
rel="next">Choosing a model</a>, Previous: <a 
href="Concurrency.html#Concurrency" accesskey="p" rel="prev">Concurrency</a>, 
Up: <a href="Multiple-developers.html#Multiple-developers" accesskey="u" 
rel="up">Multiple developers</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Mechanisms-to-track-who-is-editing-files"></a>
+<h3 class="section">10.6 Mechanisms to track who is editing files</h3>
+<a name="index-Watches"></a>
+
+<p>For many groups, use of <small>CVS</small> in its default mode is
+perfectly satisfactory.  Users may sometimes go to
+check in a modification only to find that another
+modification has intervened, but they deal with it and
+proceed with their check in.  Other groups prefer to be
+able to know who is editing what files, so that if two
+people try to edit the same file they can choose to
+talk about who is doing what when rather than be
+surprised at check in time.  The features in this
+section allow such coordination, while retaining the
+ability of two developers to edit the same file at the
+same time.
+</p>
+<p>For maximum benefit developers should use <code>cvs
+edit</code> (not <code>chmod</code>) to make files read-write to
+edit them, and <code>cvs release</code> (not <code>rm</code>) to
+discard a working directory which is no longer in use,
+but <small>CVS</small> is not able to enforce this behavior.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Setting-a-watch.html#Setting-a-watch" accesskey="1">Setting a 
watch</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Telling CVS 
to watch certain files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Getting-Notified.html#Getting-Notified" accesskey="2">Getting 
Notified</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Telling 
CVS to notify you
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Editing-files.html#Editing-files" accesskey="3">Editing 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to edit a 
file which is being watched
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Watch-information.html#Watch-information" accesskey="4">Watch 
information</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Information about who is watching and editing
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Watches-Compatibility.html#Watches-Compatibility" accesskey="5">Watches 
Compatibility</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Watches interact poorly with CVS 1.6 or earlier
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/What-is-CVS-not_003f.html
===================================================================
RCS file: html_node/What-is-CVS-not_003f.html
diff -N html_node/What-is-CVS-not_003f.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/What-is-CVS-not_003f.html 28 Dec 2015 15:58:13 -0000      1.1
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: What is CVS not?</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: What is CVS not?">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
What is CVS not?">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Overview.html#Overview" rel="up" title="Overview">
+<link href="A-sample-session.html#A-sample-session" rel="next" title="A sample 
session">
+<link href="What-is-CVS_003f.html#What-is-CVS_003f" rel="prev" title="What is 
CVS?">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="What-is-CVS-not_003f"></a>
+<div class="header">
+<p>
+Next: <a href="A-sample-session.html#A-sample-session" accesskey="n" 
rel="next">A sample session</a>, Previous: <a 
href="What-is-CVS_003f.html#What-is-CVS_003f" accesskey="p" rel="prev">What is 
CVS?</a>, Up: <a href="Overview.html#Overview" accesskey="u" 
rel="up">Overview</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="What-is-CVS-not_003f-1"></a>
+<h3 class="section">1.2 What is CVS not?</h3>
+<a name="index-What-is-CVS-not_003f"></a>
+
+<p><small>CVS</small> can do a lot of things for you, but it does
+not try to be everything for everyone.
+</p>
+<dl compact="compact">
+<dt><small>CVS</small> is not a build system.</dt>
+<dd>
+<p>Though the structure of your repository and modules
+file interact with your build system
+(e.g. <samp>Makefile</samp>s), they are essentially
+independent.
+</p>
+<p><small>CVS</small> does not dictate how you build anything.  It
+merely stores files for retrieval in a tree structure
+you devise.
+</p>
+<p><small>CVS</small> does not dictate how to use disk space in the
+checked out working directories.  If you write your
+<samp>Makefile</samp>s or scripts in every directory so they
+have to know the relative positions of everything else,
+you wind up requiring the entire repository to be
+checked out.
+</p>
+<p>If you modularize your work, and construct a build
+system that will share files (via links, mounts,
+<code>VPATH</code> in <samp>Makefile</samp>s, etc.), you can
+arrange your disk usage however you like.
+</p>
+<p>But you have to remember that <em>any</em> such system is
+a lot of work to construct and maintain.  <small>CVS</small> does
+not address the issues involved.
+</p>
+<p>Of course, you should place the tools created to
+support such a build system (scripts, <samp>Makefile</samp>s,
+etc.) under <small>CVS</small>.
+</p>
+<p>Figuring out what files need to be rebuilt when
+something changes is, again, something to be handled
+outside the scope of <small>CVS</small>.  One traditional
+approach is to use <code>make</code> for building, and use
+some automated tool for generating the dependencies which
+<code>make</code> uses.
+</p>
+<p>See <a href="Builds.html#Builds">Builds</a>, for more information on doing 
builds
+in conjunction with <small>CVS</small>.
+</p>
+</dd>
+<dt><small>CVS</small> is not a substitute for management.</dt>
+<dd>
+<p>Your managers and project leaders are expected to talk
+to you frequently enough to make certain you are aware
+of schedules, merge points, branch names and release
+dates.  If they don&rsquo;t, <small>CVS</small> can&rsquo;t help.
+</p>
+<p><small>CVS</small> is an instrument for making sources dance to
+your tune.  But you are the piper and the composer.  No
+instrument plays itself or writes its own music.
+</p>
+</dd>
+<dt><small>CVS</small> is not a substitute for developer communication.</dt>
+<dd>
+<p>When faced with conflicts within a single file, most
+developers manage to resolve them without too much
+effort.  But a more general definition of &ldquo;conflict&rdquo;
+includes problems too difficult to solve without
+communication between developers.
+</p>
+<p><small>CVS</small> cannot determine when simultaneous changes
+within a single file, or across a whole collection of
+files, will logically conflict with one another.  Its
+concept of a <em>conflict</em> is purely textual, arising
+when two changes to the same base file are near enough
+to spook the merge (i.e., <code>diff3</code>) command.
+</p>
+<p><small>CVS</small> does not claim to help at all in figuring out
+non-textual or distributed conflicts in program logic.
+</p>
+<p>For example: Say you change the arguments to function
+<code>X</code> defined in file <samp>A</samp>.  At the same time,
+someone edits file <samp>B</samp>, adding new calls to
+function <code>X</code> using the old arguments.  You are
+outside the realm of <small>CVS</small>&rsquo;s competence.
+</p>
+<p>Acquire the habit of reading specs and talking to your
+peers.
+</p>
+
+</dd>
+<dt><small>CVS</small> does not have change control</dt>
+<dd>
+<p>Change control refers to a number of things.  First of
+all it can mean <em>bug-tracking</em>, that is being able
+to keep a database of reported bugs and the status of
+each one (Is it fixed?  In what release?  Has the bug
+submitter agreed that it is fixed?).  For interfacing
+<small>CVS</small> to an external bug-tracking system, see the
+<samp>rcsinfo</samp> and <samp>verifymsg</samp> files
+(see <a href="Administrative-files.html#Administrative-files">Administrative 
files</a>).
+</p>
+<p>Another aspect of change control is keeping track of
+the fact that changes to several files were in fact
+changed together as one logical change.  If you check
+in several files in a single <code>cvs commit</code>
+operation, <small>CVS</small> then forgets that those files were
+checked in together, and the fact that they have the
+same log message is the only thing tying them
+together.  Keeping a <small>GNU</small> style <samp>ChangeLog</samp>
+can help somewhat.
+</p>
+<p>Another aspect of change control, in some systems, is
+the ability to keep track of the status of each
+change.  Some changes have been written by a developer,
+others have been reviewed by a second developer, and so
+on.  Generally, the way to do this with <small>CVS</small> is to
+generate a diff (using <code>cvs diff</code> or <code>diff</code>)
+and email it to someone who can then apply it using the
+<code>patch</code> utility.  This is very flexible, but
+depends on mechanisms outside <small>CVS</small> to make sure
+nothing falls through the cracks.
+</p>
+</dd>
+<dt><small>CVS</small> is not an automated testing program</dt>
+<dd>
+<p>It should be possible to enforce mandatory use of a
+test suite using the <code>commitinfo</code> file.  I haven&rsquo;t
+heard a lot about projects trying to do that or whether
+there are subtle gotchas, however.
+</p>
+</dd>
+<dt><small>CVS</small> does not have a built-in process model</dt>
+<dd>
+<p>Some systems provide ways to ensure that changes or
+releases go through various steps, with various
+approvals as needed.  Generally, one can accomplish
+this with <small>CVS</small> but it might be a little more work.
+In some cases you&rsquo;ll want to use the <samp>commitinfo</samp>,
+<samp>loginfo</samp>, <samp>rcsinfo</samp>, or <samp>verifymsg</samp>
+files, to require that certain steps be performed
+before cvs will allow a checkin.  Also consider whether
+features such as branches and tags can be used to
+perform tasks such as doing work in a development tree
+and then merging certain changes over to a stable tree
+only once they have been proven.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="A-sample-session.html#A-sample-session" accesskey="n" 
rel="next">A sample session</a>, Previous: <a 
href="What-is-CVS_003f.html#What-is-CVS_003f" accesskey="p" rel="prev">What is 
CVS?</a>, Up: <a href="Overview.html#Overview" accesskey="u" 
rel="up">Overview</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/What-is-CVS_003f.html
===================================================================
RCS file: html_node/What-is-CVS_003f.html
diff -N html_node/What-is-CVS_003f.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/What-is-CVS_003f.html     28 Dec 2015 15:58:13 -0000      1.1
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: What is CVS?</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: What is CVS?">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
What is CVS?">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Overview.html#Overview" rel="up" title="Overview">
+<link href="What-is-CVS-not_003f.html#What-is-CVS-not_003f" rel="next" 
title="What is CVS not?">
+<link href="Overview.html#Overview" rel="prev" title="Overview">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="What-is-CVS_003f"></a>
+<div class="header">
+<p>
+Next: <a href="What-is-CVS-not_003f.html#What-is-CVS-not_003f" accesskey="n" 
rel="next">What is CVS not?</a>, Up: <a href="Overview.html#Overview" 
accesskey="u" rel="up">Overview</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="What-is-CVS_003f-1"></a>
+<h3 class="section">1.1 What is CVS?</h3>
+<a name="index-What-is-CVS_003f"></a>
+<a name="index-Introduction-to-CVS"></a>
+<a name="index-CVS_002c-introduction-to"></a>
+
+<p><small>CVS</small> is a version control system.  Using it, you can
+record the history of your source files.
+</p>
+
+<p>For example, bugs sometimes creep in when
+software is modified, and you might not detect the bug
+until a long time after you make the modification.
+With <small>CVS</small>, you can easily retrieve old versions to see
+exactly which change caused the bug.  This can
+sometimes be a big help.
+</p>
+<p>You could of course save every version of every file
+you have ever created.  This would
+however waste an enormous amount of disk space.  <small>CVS</small>
+stores all the versions of a file in a single file in a
+clever way that only stores the differences between
+versions.
+</p>
+<p><small>CVS</small> also helps you if you are part of a group of people 
working
+on the same project.  It is all too easy to overwrite
+each others&rsquo; changes unless you are extremely careful.
+Some editors, like <small>GNU</small> Emacs, try to make sure that
+two people never modify the same file at the
+same time.  Unfortunately, if someone is using another
+editor, that safeguard will not work.  <small>CVS</small> solves this problem
+by insulating the different developers from each other.  Every
+developer works in his own directory, and <small>CVS</small> merges
+the work when each developer is done.
+</p>
+<a name="index-History-of-CVS"></a>
+<a name="index-CVS_002c-history-of"></a>
+<a name="index-Credits-_0028CVS-program_0029"></a>
+<a name="index-Contributors-_0028CVS-program_0029"></a>
+<p><small>CVS</small> started out as a bunch of shell scripts written by
+Dick Grune, posted to the newsgroup
+<code>comp.sources.unix</code> in the volume 6
+release of July, 1986.  While no actual code from
+these shell scripts is present in the current version
+of <small>CVS</small> much of the <small>CVS</small> conflict resolution 
algorithms
+come from them.
+</p>
+<p>In April, 1989, Brian Berliner designed and coded <small>CVS</small>.
+Jeff Polk later helped Brian with the design of the <small>CVS</small>
+module and vendor branch support.
+</p>
+<a name="index-Source_002c-getting-CVS-source"></a>
+<p>You can get <small>CVS</small> in a variety of ways, including
+free download from the Internet.  For more information
+on downloading <small>CVS</small> and other <small>CVS</small> topics, see:
+</p>
+<div class="example">
+<pre class="example"><a 
href="http://cvs.nongnu.org/";>http://cvs.nongnu.org/</a>
+</pre></div>
+
+<a name="index-Mailing-list"></a>
+<a name="index-List_002c-mailing-list"></a>
+<a name="index-Newsgroups"></a>
+<p>There is a mailing list, known as <a 
href="mailto:address@hidden";>address@hidden</a>,
+devoted to <small>CVS</small>.  To subscribe or
+unsubscribe
+write to
+<a href="mailto:address@hidden";>address@hidden</a>.
+If you prefer a Usenet group, there is a one-way mirror (posts to the email
+list are usually sent to the news group, but not vice versa) of
+<a href="mailto:address@hidden";>address@hidden</a> at <a 
href="news:gnu.cvs.help";>news:gnu.cvs.help</a>.  The right
+Usenet group for posts is <a 
href="news:comp.software.config-mgmt";>news:comp.software.config-mgmt</a> which 
is for
+<small>CVS</small> discussions (along with other configuration
+management systems).  In the future, it might be
+possible to create a
+<code>comp.software.config-mgmt.cvs</code>, but probably only
+if there is sufficient <small>CVS</small> traffic on
+<a href="news:comp.software.config-mgmt";>news:comp.software.config-mgmt</a>.
+</p>
+<p>You can also subscribe to the <a 
href="mailto:address@hidden";>address@hidden</a> mailing list,
+described in more detail in <a href="BUGS.html#BUGS">BUGS</a>.  To subscribe
+send mail to <a href="mailto:address@hidden";>address@hidden</a>.  There is a 
two-way
+Usenet mirror (posts to the Usenet group are usually sent to the email list and
+vice versa) of <a href="mailto:address@hidden";>address@hidden</a> named <a 
href="news:gnu.cvs.bug";>news:gnu.cvs.bug</a>.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="What-is-CVS-not_003f.html#What-is-CVS-not_003f" accesskey="n" 
rel="next">What is CVS not?</a>, Up: <a href="Overview.html#Overview" 
accesskey="u" rel="up">Overview</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/When-to-commit.html
===================================================================
RCS file: html_node/When-to-commit.html
diff -N html_node/When-to-commit.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/When-to-commit.html       28 Dec 2015 15:58:13 -0000      1.1
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: When to commit</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: When to commit">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
When to commit">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Revision-management.html#Revision-management" rel="up" 
title="Revision management">
+<link href="Keyword-substitution.html#Keyword-substitution" rel="next" 
title="Keyword substitution">
+<link href="Revision-management.html#Revision-management" rel="prev" 
title="Revision management">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="When-to-commit"></a>
+<div class="header">
+<p>
+Up: <a href="Revision-management.html#Revision-management" accesskey="u" 
rel="up">Revision management</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="When-to-commit_003f"></a>
+<h3 class="section">11.1 When to commit?</h3>
+<a name="index-When-to-commit"></a>
+<a name="index-Committing_002c-when-to"></a>
+<a name="index-Policy"></a>
+
+<p>Your group should decide which policy to use regarding
+commits.  Several policies are possible, and as your
+experience with <small>CVS</small> grows you will probably find
+out what works for you.
+</p>
+<p>If you commit files too quickly you might commit files
+that do not even compile.  If your partner updates his
+working sources to include your buggy file, he will be
+unable to compile the code.  On the other hand, other
+persons will not be able to benefit from the
+improvements you make to the code if you commit very
+seldom, and conflicts will probably be more common.
+</p>
+<p>It is common to only commit files after making sure
+that they can be compiled.  Some sites require that the
+files pass a test suite.  Policies like this can be
+enforced using the commitinfo file
+(see <a href="commitinfo.html#commitinfo">commitinfo</a>), but you should 
think twice before
+you enforce such a convention.  By making the
+development environment too controlled it might become
+too regimented and thus counter-productive to the real
+goal, which is to get software written.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Windows-permissions.html
===================================================================
RCS file: html_node/Windows-permissions.html
diff -N html_node/Windows-permissions.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Windows-permissions.html  28 Dec 2015 15:58:13 -0000      1.1
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Windows 
permissions</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Windows permissions">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Windows permissions">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository-storage.html#Repository-storage" rel="up" 
title="Repository storage">
+<link href="Attic.html#Attic" rel="next" title="Attic">
+<link href="File-permissions.html#File-permissions" rel="prev" title="File 
permissions">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Windows-permissions"></a>
+<div class="header">
+<p>
+Next: <a href="Attic.html#Attic" accesskey="n" rel="next">Attic</a>, Previous: 
<a href="File-permissions.html#File-permissions" accesskey="p" rel="prev">File 
permissions</a>, Up: <a href="Repository-storage.html#Repository-storage" 
accesskey="u" rel="up">Repository storage</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="File-Permission-issues-specific-to-Windows"></a>
+<h4 class="subsection">2.2.3 File Permission issues specific to Windows</h4>
+<a name="index-Windows_002c-and-permissions"></a>
+<a name="index-File-permissions_002c-Windows_002dspecific"></a>
+<a name="index-Permissions_002c-Windows_002dspecific"></a>
+
+<p>Some file permission issues are specific to Windows
+operating systems (Windows 95, Windows NT, and
+presumably future operating systems in this family.
+Some of the following might apply to OS/2 but I&rsquo;m not
+sure).
+</p>
+<p>If you are using local <small>CVS</small> and the repository is on a
+networked file system which is served by the Samba SMB
+server, some people have reported problems with
+permissions.  Enabling WRITE=YES in the samba
+configuration is said to fix/workaround it.
+Disclaimer: I haven&rsquo;t investigated enough to know the
+implications of enabling that option, nor do I know
+whether there is something which <small>CVS</small> could be doing
+differently in order to avoid the problem.  If you find
+something out, please let us know as described in
+<a href="BUGS.html#BUGS">BUGS</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/Working-directory-storage.html
===================================================================
RCS file: html_node/Working-directory-storage.html
diff -N html_node/Working-directory-storage.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Working-directory-storage.html    28 Dec 2015 15:58:13 -0000      
1.1
@@ -0,0 +1,364 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Working directory 
storage</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Working directory storage">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Working directory storage">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Repository.html#Repository" rel="up" title="Repository">
+<link href="Intro-administrative-files.html#Intro-administrative-files" 
rel="next" title="Intro administrative files">
+<link href="CVSROOT-storage.html#CVSROOT-storage" rel="prev" title="CVSROOT 
storage">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Working-directory-storage"></a>
+<div class="header">
+<p>
+Next: <a href="Intro-administrative-files.html#Intro-administrative-files" 
accesskey="n" rel="next">Intro administrative files</a>, Previous: <a 
href="Repository-storage.html#Repository-storage" accesskey="p" 
rel="prev">Repository storage</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="How-data-is-stored-in-the-working-directory"></a>
+<h3 class="section">2.3 How data is stored in the working directory</h3>
+
+
+<a name="index-CVS-directory_002c-in-working-directory"></a>
+<p>While we are discussing <small>CVS</small> internals which may
+become visible from time to time, we might as well talk
+about what <small>CVS</small> puts in the <samp>CVS</samp> directories
+in the working directories.  As with the repository,
+<small>CVS</small> handles this information and one can usually
+access it via <small>CVS</small> commands.  But in some cases it
+may be useful to look at it, and other programs, such
+as the <code>jCVS</code> graphical user interface or the
+<code>VC</code> package for emacs, may need to look at it.
+Such programs should follow the recommendations in this
+section if they hope to be able to work with other
+programs which use those files, including future
+versions of the programs just mentioned and the
+command-line <small>CVS</small> client.
+</p>
+<p>The <samp>CVS</samp> directory contains several files.
+Programs which are reading this directory should
+silently ignore files which are in the directory but
+which are not documented here, to allow for future
+expansion.
+</p>
+<p>The files are stored according to the text file
+convention for the system in question.  This means that
+working directories are not portable between systems
+with differing conventions for storing text files.
+This is intentional, on the theory that the files being
+managed by <small>CVS</small> probably will not be portable between
+such systems either.
+</p>
+<dl compact="compact">
+<dt><samp>Root</samp></dt>
+<dd><p>This file contains the current <small>CVS</small> root, as
+described in <a 
href="Specifying-a-repository.html#Specifying-a-repository">Specifying a 
repository</a>.
+</p>
+<a name="index-Repository-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fRepository-file"></a>
+</dd>
+<dt><samp>Repository</samp></dt>
+<dd><p>This file contains the directory within the repository
+which the current directory corresponds with.  It can
+be either an absolute pathname or a relative pathname;
+<small>CVS</small> has had the ability to read either format
+since at least version 1.3 or so.  The relative
+pathname is relative to the root, and is the more
+sensible approach, but the absolute pathname is quite
+common and implementations should accept either.  For
+example, after the command
+</p>
+<div class="example">
+<pre class="example">cvs -d :local:/usr/local/cvsroot checkout yoyodyne/tc
+</pre></div>
+
+<p><samp>Root</samp> will contain
+</p>
+<div class="example">
+<pre class="example">:local:/usr/local/cvsroot
+</pre></div>
+
+<p>and <samp>Repository</samp> will contain either
+</p>
+<div class="example">
+<pre class="example">/usr/local/cvsroot/yoyodyne/tc
+</pre></div>
+
+<p>or
+</p>
+<div class="example">
+<pre class="example">yoyodyne/tc
+</pre></div>
+
+<p>If the particular working directory does not correspond
+to a directory in the repository, then <samp>Repository</samp>
+should contain <samp>CVSROOT/Emptydir</samp>.
+<a name="index-Emptydir_002c-in-CVSROOT-directory"></a>
+<a name="index-CVSROOT_002fEmptydir-directory"></a>
+</p>
+<a name="index-Entries-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries-file"></a>
+</dd>
+<dt><samp>Entries</samp></dt>
+<dd><p>This file lists the files and directories in the
+working directory.
+The first character of each line indicates what sort of
+line it is.  If the character is unrecognized, programs
+reading the file should silently skip that line, to
+allow for future expansion.
+</p>
+<p>If the first character is &lsquo;<samp>/</samp>&rsquo;, then the format is:
+</p>
+<div class="example">
+<pre 
class="example">/<var>name</var>/<var>revision</var>/<var>timestamp</var>[+<var>conflict</var>]/<var>options</var>/<var>tagdate</var>
+</pre></div>
+
+<p>where &lsquo;<samp>[</samp>&rsquo; and &lsquo;<samp>]</samp>&rsquo; are not 
part of the entry,
+but instead indicate that the &lsquo;<samp>+</samp>&rsquo; and conflict
+marker are optional.  <var>name</var> is the name of the
+file within the directory.  <var>revision</var> is the
+revision that the file in the working derives from, or
+&lsquo;<samp>0</samp>&rsquo; for an added file, or 
&lsquo;<samp>-</samp>&rsquo; followed by a
+revision for a removed file.  <var>timestamp</var> is the
+timestamp of the file at the time that <small>CVS</small> created
+it; if the timestamp differs with the actual
+modification time of the file it means the file has
+been modified.  It is stored in
+the format used by the ISO C asctime() function (for
+example, &lsquo;<samp>Sun Apr  7 01:29:26 1996</samp>&rsquo;).  One may
+write a string which is not in that format, for
+example, &lsquo;<samp>Result of merge</samp>&rsquo;, to indicate that the
+file should always be considered to be modified.  This
+is not a special case; to see whether a file is
+modified a program should take the timestamp of the file
+and simply do a string compare with <var>timestamp</var>.
+If there was a conflict, <var>conflict</var> can be set to
+the modification time of the file after the file has been
+written with conflict markers (see <a 
href="Conflicts-example.html#Conflicts-example">Conflicts example</a>).
+Thus if <var>conflict</var> is subsequently the same as the actual
+modification time of the file it means that the user
+has obviously not resolved the conflict.  <var>options</var>
+contains sticky options (for example &lsquo;<samp>-kb</samp>&rsquo; for a
+binary file).  <var>tagdate</var> contains &lsquo;<samp>T</samp>&rsquo; 
followed
+by a tag name, or &lsquo;<samp>D</samp>&rsquo; for a date, followed by a
+sticky tag or date.  Note that if <var>timestamp</var>
+contains a pair of timestamps separated by a space,
+rather than a single timestamp, you are dealing with a
+version of <small>CVS</small> earlier than <small>CVS</small> 1.5 (not
+documented here).
+</p>
+<p>The timezone on the timestamp in CVS/Entries (local or
+universal) should be the same as the operating system
+stores for the timestamp of the file itself.  For
+example, on Unix the file&rsquo;s timestamp is in universal
+time (UT), so the timestamp in CVS/Entries should be
+too.  On <small>VMS</small>, the file&rsquo;s timestamp is in local
+time, so <small>CVS</small> on <small>VMS</small> should use local time.
+This rule is so that files do not appear to be modified
+merely because the timezone changed (for example, to or
+from summer time).
+</p>
+<p>If the first character of a line in <samp>Entries</samp> is
+&lsquo;<samp>D</samp>&rsquo;, then it indicates a subdirectory.  
&lsquo;<samp>D</samp>&rsquo;
+on a line all by itself indicates that the program
+which wrote the <samp>Entries</samp> file does record
+subdirectories (therefore, if there is such a line and
+no other lines beginning with &lsquo;<samp>D</samp>&rsquo;, one knows there
+are no subdirectories).  Otherwise, the line looks
+like:
+</p>
+<div class="example">
+<pre 
class="example">D/<var>name</var>/<var>filler1</var>/<var>filler2</var>/<var>filler3</var>/<var>filler4</var>
+</pre></div>
+
+<p>where <var>name</var> is the name of the subdirectory, and
+all the <var>filler</var> fields should be silently ignored,
+for future expansion.  Programs which modify
+<code>Entries</code> files should preserve these fields.
+</p>
+<p>The lines in the <samp>Entries</samp> file can be in any order.
+</p>
+<a name="index-Entries_002eLog-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries_002eLog-file"></a>
+</dd>
+<dt><samp>Entries.Log</samp></dt>
+<dd><p>This file does not record any information beyond that
+in <samp>Entries</samp>, but it does provide a way to update
+the information without having to rewrite the entire
+<samp>Entries</samp> file, including the ability to preserve
+the information even if the program writing
+<samp>Entries</samp> and <samp>Entries.Log</samp> abruptly aborts.
+Programs which are reading the <samp>Entries</samp> file
+should also check for <samp>Entries.Log</samp>.  If the latter
+exists, they should read <samp>Entries</samp> and then apply
+the changes mentioned in <samp>Entries.Log</samp>.  After
+applying the changes, the recommended practice is to
+rewrite <samp>Entries</samp> and then delete <samp>Entries.Log</samp>.
+The format of a line in <samp>Entries.Log</samp> is a single
+character command followed by a space followed by a
+line in the format specified for a line in
+<samp>Entries</samp>.  The single character command is
+&lsquo;<samp>A</samp>&rsquo; to indicate that the entry is being added,
+&lsquo;<samp>R</samp>&rsquo; to indicate that the entry is being removed,
+or any other character to indicate that the entire line
+in <samp>Entries.Log</samp> should be silently ignored (for
+future expansion).  If the second character of the line
+in <samp>Entries.Log</samp> is not a space, then it was
+written by an older version of <small>CVS</small> (not documented
+here).
+</p>
+<p>Programs which are writing rather than reading can
+safely ignore <samp>Entries.Log</samp> if they so choose.
+</p>
+<a name="index-Entries_002eBackup-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries_002eBackup-file"></a>
+</dd>
+<dt><samp>Entries.Backup</samp></dt>
+<dd><p>This is a temporary file.  Recommended usage is to
+write a new entries file to <samp>Entries.Backup</samp>, and
+then to rename it (atomically, where possible) to <samp>Entries</samp>.
+</p>
+<a name="index-Entries_002eStatic-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fEntries_002eStatic-file"></a>
+</dd>
+<dt><samp>Entries.Static</samp></dt>
+<dd><p>The only relevant thing about this file is whether it
+exists or not.  If it exists, then it means that only
+part of a directory was gotten and <small>CVS</small> will
+not create additional files in that directory.  To
+clear it, use the <code>update</code> command with the
+&lsquo;<samp>-d</samp>&rsquo; option, which will get the additional files
+and remove <samp>Entries.Static</samp>.
+</p>
+<a name="index-Tag-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fTag-file"></a>
+<a name="index-Sticky-tags_002fdates_002c-per_002ddirectory"></a>
+<a name="index-Per_002ddirectory-sticky-tags_002fdates"></a>
+</dd>
+<dt><samp>Tag</samp></dt>
+<dd><p>This file contains per-directory sticky tags or dates.
+The first character is &lsquo;<samp>T</samp>&rsquo; for a branch tag,
+&lsquo;<samp>N</samp>&rsquo; for a non-branch tag, or 
&lsquo;<samp>D</samp>&rsquo; for a date,
+or another character to mean the file should be
+silently ignored, for future expansion.  This character
+is followed by the tag or date.  Note that
+per-directory sticky tags or dates are used for things
+like applying to files which are newly added; they
+might not be the same as the sticky tags or dates on
+individual files.  For general information on sticky
+tags and dates, see <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a>.
+</p>
+<a name="index-Notify-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fNotify-file"></a>
+</dd>
+<dt><samp>Notify</samp></dt>
+<dd><p>This file stores notifications (for example, for
+<code>edit</code> or <code>unedit</code>) which have not yet been
+sent to the server.  Its format is not yet documented
+here.
+</p>
+<a name="index-Notify_002etmp-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fNotify_002etmp-file"></a>
+</dd>
+<dt><samp>Notify.tmp</samp></dt>
+<dd><p>This file is to <samp>Notify</samp> as <samp>Entries.Backup</samp>
+is to <samp>Entries</samp>.  That is, to write <samp>Notify</samp>,
+first write the new contents to <samp>Notify.tmp</samp> and
+then (atomically where possible), rename it to
+<samp>Notify</samp>.
+</p>
+<a name="index-Base-directory_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fBase-directory"></a>
+</dd>
+<dt><samp>Base</samp></dt>
+<dd><p>If watches are in use, then an <code>edit</code> command
+stores the original copy of the file in the <samp>Base</samp>
+directory.  This allows the <code>unedit</code> command to
+operate even if it is unable to communicate with the
+server.
+</p>
+<a name="index-Baserev-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fBaserev-file"></a>
+</dd>
+<dt><samp>Baserev</samp></dt>
+<dd><p>The file lists the revision for each of the files in
+the <samp>Base</samp> directory.  The format is:
+</p>
+<div class="example">
+<pre class="example">B<var>name</var>/<var>rev</var>/<var>expansion</var>
+</pre></div>
+
+<p>where <var>expansion</var> should be ignored, to allow for
+future expansion.
+</p>
+<a name="index-Baserev_002etmp-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fBaserev_002etmp-file"></a>
+</dd>
+<dt><samp>Baserev.tmp</samp></dt>
+<dd><p>This file is to <samp>Baserev</samp> as <samp>Entries.Backup</samp>
+is to <samp>Entries</samp>.  That is, to write <samp>Baserev</samp>,
+first write the new contents to <samp>Baserev.tmp</samp> and
+then (atomically where possible), rename it to
+<samp>Baserev</samp>.
+</p>
+<a name="index-Template-file_002c-in-CVS-directory"></a>
+<a name="index-CVS_002fTemplate-file"></a>
+</dd>
+<dt><samp>Template</samp></dt>
+<dd><p>This file contains the template specified by the
+<samp>rcsinfo</samp> file (see <a href="rcsinfo.html#rcsinfo">rcsinfo</a>).  
It is only used
+by the client; the non-client/server <small>CVS</small> consults
+<samp>rcsinfo</samp> directly.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Intro-administrative-files.html#Intro-administrative-files" 
accesskey="n" rel="next">Intro administrative files</a>, Previous: <a 
href="Repository-storage.html#Repository-storage" accesskey="p" 
rel="prev">Repository storage</a>, Up: <a href="Repository.html#Repository" 
accesskey="u" rel="up">Repository</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/Wrappers.html
===================================================================
RCS file: html_node/Wrappers.html
diff -N html_node/Wrappers.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/Wrappers.html     28 Dec 2015 15:58:14 -0000      1.1
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Wrappers</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Wrappers">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Wrappers">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="Trigger-Scripts.html#Trigger-Scripts" rel="next" title="Trigger 
Scripts">
+<link href="Module-program-options.html#Module-program-options" rel="prev" 
title="Module program options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="Wrappers"></a>
+<div class="header">
+<p>
+Next: <a href="Trigger-Scripts.html#Trigger-Scripts" accesskey="n" 
rel="next">Trigger Scripts</a>, Previous: <a href="modules.html#modules" 
accesskey="p" rel="prev">modules</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-cvswrappers-file"></a>
+<h3 class="appendixsec">C.2 The cvswrappers file</h3>
+<a name="index-cvswrappers-_0028admin-file_0029"></a>
+<a name="index-CVSWRAPPERS_002c-environment-variable"></a>
+<a name="index-Wrappers"></a>
+
+
+<p>Wrappers refers to a <small>CVS</small> feature which lets you
+control certain settings based on the name of the file
+which is being operated on.  The settings are &lsquo;<samp>-k</samp>&rsquo;
+for binary files, and &lsquo;<samp>-m</samp>&rsquo; for nonmergeable text
+files.
+</p>
+<p>The &lsquo;<samp>-m</samp>&rsquo; option
+specifies the merge methodology that should be used when
+a non-binary file is updated.  <code>MERGE</code> means the usual
+<small>CVS</small> behavior: try to merge the files.  <code>COPY</code>
+means that <code>cvs update</code> will refuse to merge
+files, as it also does for files specified as binary
+with &lsquo;<samp>-kb</samp>&rsquo; (but if the file is specified as
+binary, there is no need to specify &lsquo;<samp>-m 'COPY'</samp>&rsquo;).
+<small>CVS</small> will provide the user with the
+two versions of the files, and require the user using
+mechanisms outside <small>CVS</small>, to insert any necessary
+changes.
+</p>
+<p><strong>WARNING:  Do not use <code>COPY</code> with
+<small>CVS</small> 1.9 or earlier - such versions of <small>CVS</small> will
+copy one version of your file over the other, wiping
+out the previous contents.</strong>
+The &lsquo;<samp>-m</samp>&rsquo; wrapper option only affects behavior when
+merging is done on update; it does not affect how files
+are stored.  See <a href="Binary-files.html#Binary-files">Binary files</a>, 
for more on
+binary files.
+</p>
+<p>The basic format of the file <samp>cvswrappers</samp> is:
+</p>
+<div class="example">
+<pre class="example">wildcard     [option value][option value]...
+
+where option is one of
+-m           update methodology      value: MERGE or COPY
+-k           keyword expansion       value: expansion mode
+
+and value is a single-quote delimited value.
+</pre></div>
+
+
+<p>For example, the following command imports a
+directory, treating files whose name ends in
+&lsquo;<samp>.exe</samp>&rsquo; as binary:
+</p>
+<div class="example">
+<pre class="example">cvs import -I ! -W &quot;*.exe -k 'b'&quot; first-dir 
vendortag reltag
+</pre></div>
+
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Trigger-Scripts.html#Trigger-Scripts" accesskey="n" 
rel="next">Trigger Scripts</a>, Previous: <a href="modules.html#modules" 
accesskey="p" rel="prev">modules</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/_007e_002f_002ecvsrc.html
===================================================================
RCS file: html_node/_007e_002f_002ecvsrc.html
diff -N html_node/_007e_002f_002ecvsrc.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/_007e_002f_002ecvsrc.html 28 Dec 2015 15:58:14 -0000      1.1
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: ~/.cvsrc</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: ~/.cvsrc">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
~/.cvsrc">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="Global-options.html#Global-options" rel="next" title="Global 
options">
+<link href="Exit-status.html#Exit-status" rel="prev" title="Exit status">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="g_t_007e_002f_002ecvsrc"></a>
+<div class="header">
+<p>
+Next: <a href="Global-options.html#Global-options" accesskey="n" 
rel="next">Global options</a>, Previous: <a href="Exit-status.html#Exit-status" 
accesskey="p" rel="prev">Exit status</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Default-options-and-the-_007e_002f_002ecvsrc-file"></a>
+<h3 class="appendixsec">A.3 Default options and the ~/.cvsrc file</h3>
+<a name="index-_002ecvsrc-file"></a>
+<a name="index-Option-defaults"></a>
+
+<p>There are some <code>command_options</code> that are used so
+often that you might have set up an alias or some other
+means to make sure you always specify that option.  One
+example (the one that drove the implementation of the
+<samp>.cvsrc</samp> support, actually) is that many people find the
+default output of the &lsquo;<samp>diff</samp>&rsquo; command to be very
+hard to read, and that either context diffs or unidiffs
+are much easier to understand.
+</p>
+<p>The <samp>~/.cvsrc</samp> file is a way that you can add
+default options to <code>cvs_commands</code> within cvs,
+instead of relying on aliases or other shell scripts.
+</p>
+<p>The format of the <samp>~/.cvsrc</samp> file is simple.  The
+file is searched for a line that begins with the same
+name as the <code>cvs_command</code> being executed.  If a
+match is found, then the remainder of the line is split
+up (at whitespace characters) into separate options and
+added to the command arguments <em>before</em> any
+options from the command line.
+</p>
+<p>If a command has two names (e.g., <code>checkout</code> and
+<code>co</code>), the official name, not necessarily the one
+used on the command line, will be used to match against
+the file.  So if this is the contents of the user&rsquo;s
+<samp>~/.cvsrc</samp> file:
+</p>
+<div class="example">
+<pre class="example">log -N
+diff -uN
+rdiff -u
+update -Pd
+checkout -P
+release -d
+</pre></div>
+
+<p>the command &lsquo;<samp>cvs checkout foo</samp>&rsquo; would have the
+&lsquo;<samp>-P</samp>&rsquo; option added to the arguments, as well as
+&lsquo;<samp>cvs co foo</samp>&rsquo;.
+</p>
+<p>With the example file above, the output from &lsquo;<samp>cvs
+diff foobar</samp>&rsquo; will be in unidiff format.  &lsquo;<samp>cvs diff
+-c foobar</samp>&rsquo; will provide context diffs, as usual.
+Getting &quot;old&quot; format diffs would be slightly more
+complicated, because <code>diff</code> doesn&rsquo;t have an option
+to specify use of the &quot;old&quot; format, so you would need
+&lsquo;<samp>cvs -f diff foobar</samp>&rsquo;.
+</p>
+<p>In place of the command name you can use <code>cvs</code> to
+specify global options (see <a 
href="Global-options.html#Global-options">Global options</a>).  For
+example the following line in <samp>.cvsrc</samp>
+</p>
+<div class="example">
+<pre class="example">cvs -z6
+</pre></div>
+
+<p>causes <small>CVS</small> to use compression level 6.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Global-options.html#Global-options" accesskey="n" 
rel="next">Global options</a>, Previous: <a href="Exit-status.html#Exit-status" 
accesskey="p" rel="prev">Exit status</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/add-examples.html
===================================================================
RCS file: html_node/add-examples.html
diff -N html_node/add-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/add-examples.html 28 Dec 2015 15:58:14 -0000      1.1
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: add examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: add examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
add examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="add.html#add" rel="up" title="add">
+<link href="admin.html#admin" rel="next" title="admin">
+<link href="add-options.html#add-options" rel="prev" title="add options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="add-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="add-options.html#add-options" accesskey="p" rel="prev">add 
options</a>, Up: <a href="add.html#add" accesskey="u" rel="up">add</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="add-examples-1"></a>
+<h4 class="appendixsubsec">A.6.2 add examples</h4>
+
+<a name="Adding-a-directory"></a>
+<h4 class="appendixsubsubsec">A.6.2.1 Adding a directory</h4>
+
+<div class="example">
+<pre class="example">$ mkdir doc
+$ cvs add doc
+Directory /path/to/repository/doc added to the repository
+</pre></div>
+
+<a name="Adding-a-file"></a>
+<h4 class="appendixsubsubsec">A.6.2.2 Adding a file</h4>
+
+<div class="example">
+<pre class="example">
+$ &gt;TODO
+$ cvs add TODO
+cvs add: scheduling file `TODO' for addition
+cvs add: use 'cvs commit' to add this file permanently
+</pre></div>
+
+<a name="Undoing-a-remove-command"></a>
+<h4 class="appendixsubsubsec">A.6.2.3 Undoing a <code>remove</code> 
command</h4>
+
+<div class="example">
+<pre class="example">$ rm -f makefile
+$ cvs remove makefile
+cvs remove: scheduling `makefile' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+$ cvs add makefile
+U makefile
+cvs add: makefile, version 1.2, resurrected
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/add-options.html
===================================================================
RCS file: html_node/add-options.html
diff -N html_node/add-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/add-options.html  28 Dec 2015 15:58:14 -0000      1.1
@@ -0,0 +1,86 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: add options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: add options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
add options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="add.html#add" rel="up" title="add">
+<link href="add-examples.html#add-examples" rel="next" title="add examples">
+<link href="add.html#add" rel="prev" title="add">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="add-options"></a>
+<div class="header">
+<p>
+Next: <a href="add-examples.html#add-examples" accesskey="n" rel="next">add 
examples</a>, Up: <a href="add.html#add" accesskey="u" rel="up">add</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="add-options-1"></a>
+<h4 class="appendixsubsec">A.6.1 add options</h4>
+
+<p>These standard options are supported by <code>add</code>
+(see <a href="Common-options.html#Common-options">Common options</a>, for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>.
+This option is sticky; future updates of
+this file in this working directory will use the same
+<var>kflag</var>.  The <code>status</code> command can be viewed
+to see the sticky options.  For more information on
+the <code>status</code> command, See <a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>.
+</p>
+</dd>
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as the log message, instead of
+invoking an editor.
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/add.html
===================================================================
RCS file: html_node/add.html
diff -N html_node/add.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/add.html  28 Dec 2015 15:58:14 -0000      1.1
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: add</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: add">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
add">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="add-options.html#add-options" rel="next" title="add options">
+<link href="Common-options.html#Common-options" rel="prev" title="Common 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="add"></a>
+<div class="header">
+<p>
+Next: <a href="admin.html#admin" accesskey="n" rel="next">admin</a>, Previous: 
<a href="Common-options.html#Common-options" accesskey="p" rel="prev">Common 
options</a>, Up: <a href="CVS-commands.html#CVS-commands" accesskey="u" 
rel="up">CVS commands</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="add_002d_002d_002dAdd-files-and-directories-to-the-repository"></a>
+<h3 class="appendixsec">A.6 add&mdash;Add files and directories to the 
repository</h3>
+<a name="index-add-_0028subcommand_0029-1"></a>
+
+<ul>
+<li> Synopsis: add [-k rcs-kflag] [-m message] files...
+</li><li> Requires: repository, working directory.
+</li><li> Changes: repository, working directory.
+</li></ul>
+
+<p>The <code>add</code> command is used to present new files
+and directories for addition into the <small>CVS</small>
+repository.  When <code>add</code> is used on a directory,
+a new directory is created in the repository
+immediately.  When used on a file, only the working
+directory is updated.  Changes to the repository are
+not made until the <code>commit</code> command is used on
+the newly added file. 
+</p>
+<p>The <code>add</code> command also resurrects files that
+have been previously removed.  This can be done
+before or after the <code>commit</code> command is used
+to finalize the removal of files.  Resurrected files
+are restored into the working directory at the time
+the <code>add</code> command is executed.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="add-options.html#add-options" accesskey="1">add 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">add options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="add-examples.html#add-examples" accesskey="2">add 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">add 
examples
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/admin-options.html
===================================================================
RCS file: html_node/admin-options.html
diff -N html_node/admin-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/admin-options.html        28 Dec 2015 15:58:15 -0000      1.1
@@ -0,0 +1,400 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: admin options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: admin options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
admin options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="admin.html#admin" rel="up" title="admin">
+<link href="annotate.html#annotate" rel="next" title="annotate">
+<link href="admin.html#admin" rel="prev" title="admin">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="admin-options"></a>
+<div class="header">
+<p>
+Up: <a href="admin.html#admin" accesskey="u" rel="up">admin</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="admin-options-1"></a>
+<h4 class="appendixsubsec">A.7.1 admin options</h4>
+
+<p>Some of these options have questionable usefulness for
+<small>CVS</small> but exist for historical purposes.  Some even
+make it impossible to use <small>CVS</small> until you undo the
+effect!
+</p>
+<dl compact="compact">
+<dt><code>-A<var>oldfile</var></code></dt>
+<dd><p>Might not work together with <small>CVS</small>.  Append the
+access list of <var>oldfile</var> to the access list of the
+<small>RCS</small> file.
+</p>
+</dd>
+<dt><code>-a<var>logins</var></code></dt>
+<dd><p>Might not work together with <small>CVS</small>.  Append the
+login names appearing in the comma-separated list
+<var>logins</var> to the access list of the <small>RCS</small> file.
+</p>
+</dd>
+<dt><code>-b[<var>rev</var>]</code></dt>
+<dd><p>Set the default branch to <var>rev</var>.  In <small>CVS</small>, you
+normally do not manipulate default branches; sticky
+tags (see <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a>) are a better 
way to decide
+which branch you want to work on.  There is one reason
+to run <code>cvs admin -b</code>: to revert to the vendor&rsquo;s
+version when using vendor branches (see <a 
href="Reverting-local-changes.html#Reverting-local-changes">Reverting local 
changes</a>).
+There can be no space between &lsquo;<samp>-b</samp>&rsquo; and its argument.
+</p>
+<a name="index-Comment-leader"></a>
+</dd>
+<dt><code>-c<var>string</var></code></dt>
+<dd><p>Sets the comment leader to <var>string</var>.  The comment
+leader is not used by current versions of <small>CVS</small> or
+<small>RCS</small> 5.7.  Therefore, you can almost surely not
+worry about it.  See <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword substitution</a>.
+</p>
+</dd>
+<dt><code>-e[<var>logins</var>]</code></dt>
+<dd><p>Might not work together with <small>CVS</small>.  Erase the login
+names appearing in the comma-separated list
+<var>logins</var> from the access list of the RCS file.  If
+<var>logins</var> is omitted, erase the entire access list.
+There can be no space between &lsquo;<samp>-e</samp>&rsquo; and its argument.
+</p>
+</dd>
+<dt><code>-I</code></dt>
+<dd><p>Run interactively, even if the standard input is not a
+terminal.  This option does not work with the
+client/server <small>CVS</small> and is likely to disappear in
+a future release of <small>CVS</small>.
+</p>
+</dd>
+<dt><code>-i</code></dt>
+<dd><p>Useless with <small>CVS</small>.  This creates and initializes a
+new <small>RCS</small> file, without depositing a revision.  With
+<small>CVS</small>, add files with the <code>cvs add</code> command
+(see <a href="Adding-files.html#Adding-files">Adding files</a>).
+</p>
+</dd>
+<dt><code>-k<var>subst</var></code></dt>
+<dd><p>Set the default keyword
+substitution to <var>subst</var>.  See <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword substitution</a>. 
 Giving an explicit &lsquo;<samp>-k</samp>&rsquo; option to
+<code>cvs update</code>, <code>cvs export</code>, or <code>cvs
+checkout</code> overrides this default.
+</p>
+</dd>
+<dt><code>-l[<var>rev</var>]</code></dt>
+<dd><p>Lock the revision with number <var>rev</var>.  If a branch
+is given, lock the latest revision on that branch.  If
+<var>rev</var> is omitted, lock the latest revision on the
+default branch.  There can be no space between
+&lsquo;<samp>-l</samp>&rsquo; and its argument.
+</p>
+<p>This can be used in conjunction with the
+<samp>rcslock.pl</samp> script in the <samp>contrib</samp>
+directory of the <small>CVS</small> source distribution to
+provide reserved checkouts (where only one user can be
+editing a given file at a time).  See the comments in
+that file for details (and see the <samp>README</samp> file
+in that directory for disclaimers about the unsupported
+nature of contrib).  According to comments in that
+file, locking must set to strict (which is the default).
+</p>
+</dd>
+<dt><code>-L</code></dt>
+<dd><p>Set locking to strict.  Strict locking means that the
+owner of an RCS file is not exempt from locking for
+checkin.  For use with <small>CVS</small>, strict locking must be
+set; see the discussion under the &lsquo;<samp>-l</samp>&rsquo; option above.
+</p>
+<a name="index-Changing-a-log-message"></a>
+<a name="index-Replacing-a-log-message"></a>
+<a name="index-Correcting-a-log-message"></a>
+<a name="index-Fixing-a-log-message"></a>
+<a name="index-Log-message_002c-correcting"></a>
+</dd>
+<dt><code>-m<var>rev</var>:<var>msg</var></code></dt>
+<dd><p>Replace the log message of revision <var>rev</var> with
+<var>msg</var>.
+</p>
+
+</dd>
+<dt><code>-N<var>name</var>[:[<var>rev</var>]]</code></dt>
+<dd><p>Act like &lsquo;<samp>-n</samp>&rsquo;, except override any previous
+assignment of <var>name</var>.  For use with magic branches,
+see <a href="Magic-branch-numbers.html#Magic-branch-numbers">Magic branch 
numbers</a>.
+</p>
+</dd>
+<dt><code>-n<var>name</var>[:[<var>rev</var>]]</code></dt>
+<dd><p>Associate the symbolic name <var>name</var> with the branch
+or revision <var>rev</var>.  It is normally better to use
+&lsquo;<samp>cvs tag</samp>&rsquo; or &lsquo;<samp>cvs rtag</samp>&rsquo; 
instead.  Delete the
+symbolic name if both &lsquo;<samp>:</samp>&rsquo; and <var>rev</var> are
+omitted; otherwise, print an error message if
+<var>name</var> is already associated with another number.
+If <var>rev</var> is symbolic, it is expanded before
+association.  A <var>rev</var> consisting of a branch number
+followed by a &lsquo;<samp>.</samp>&rsquo; stands for the current latest
+revision in the branch.  A &lsquo;<samp>:</samp>&rsquo; with an empty
+<var>rev</var> stands for the current latest revision on the
+default branch, normally the trunk.  For example,
+&lsquo;<samp>cvs admin -n<var>name</var>:</samp>&rsquo; associates 
<var>name</var> with the
+current latest revision of all the RCS files;
+this contrasts with &lsquo;<samp>cvs admin -n<var>name</var>:$</samp>&rsquo; 
which
+associates <var>name</var> with the revision numbers
+extracted from keyword strings in the corresponding
+working files.
+</p>
+<a name="index-Deleting-revisions"></a>
+<a name="index-Outdating-revisions"></a>
+<a name="index-Saving-space"></a>
+</dd>
+<dt><code>-o<var>range</var></code></dt>
+<dd><p>Deletes (<em>outdates</em>) the revisions given by
+<var>range</var>.
+</p>
+<p>Note that this command can be quite dangerous unless
+you know <em>exactly</em> what you are doing (for example
+see the warnings below about how the
+<var>rev1</var>:<var>rev2</var> syntax is confusing).
+</p>
+<p>If you are short on disc this option might help you.
+But think twice before using it&mdash;there is no way short
+of restoring the latest backup to undo this command!
+If you delete different revisions than you planned,
+either due to carelessness or (heaven forbid) a <small>CVS</small>
+bug, there is no opportunity to correct the error
+before the revisions are deleted.  It probably would be
+a good idea to experiment on a copy of the repository
+first.
+</p>
+<p>Specify <var>range</var> in one of the following ways:
+</p>
+<dl compact="compact">
+<dt><code><var>rev1</var>::<var>rev2</var></code></dt>
+<dd><p>Collapse all revisions between rev1 and rev2, so that
+<small>CVS</small> only stores the differences associated with going
+from rev1 to rev2, not intermediate steps.  For
+example, after &lsquo;<samp>-o 1.3::1.5</samp>&rsquo; one can retrieve
+revision 1.3, revision 1.5, or the differences to get
+from 1.3 to 1.5, but not the revision 1.4, or the
+differences between 1.3 and 1.4.  Other examples:
+&lsquo;<samp>-o 1.3::1.4</samp>&rsquo; and &lsquo;<samp>-o 
1.3::1.3</samp>&rsquo; have no
+effect, because there are no intermediate revisions to
+remove.
+</p>
+</dd>
+<dt><code>::<var>rev</var></code></dt>
+<dd><p>Collapse revisions between the beginning of the branch
+containing <var>rev</var> and <var>rev</var> itself.  The
+branchpoint and <var>rev</var> are left intact.  For
+example, &lsquo;<samp>-o ::1.3.2.6</samp>&rsquo; deletes revision 1.3.2.1,
+revision 1.3.2.5, and everything in between, but leaves
+1.3 and 1.3.2.6 intact.
+</p>
+</dd>
+<dt><code><var>rev</var>::</code></dt>
+<dd><p>Collapse revisions between <var>rev</var> and the end of the
+branch containing <var>rev</var>.  Revision <var>rev</var> is
+left intact but the head revision is deleted.
+</p>
+</dd>
+<dt><code><var>rev</var></code></dt>
+<dd><p>Delete the revision <var>rev</var>.  For example, &lsquo;<samp>-o
+1.3</samp>&rsquo; is equivalent to &lsquo;<samp>-o 1.2::1.4</samp>&rsquo;.
+</p>
+</dd>
+<dt><code><var>rev1</var>:<var>rev2</var></code></dt>
+<dd><p>Delete the revisions from <var>rev1</var> to <var>rev2</var>,
+inclusive, on the same branch.  One will not be able to
+retrieve <var>rev1</var> or <var>rev2</var> or any of the
+revisions in between.  For example, the command
+&lsquo;<samp>cvs admin -oR_1_01:R_1_02 .</samp>&rsquo; is rarely useful.
+It means to delete revisions up to, and including, the
+tag R_1_02.  But beware!  If there are files that have not
+changed between R_1_02 and R_1_03 the file will have
+<em>the same</em> numerical revision number assigned to
+the tags R_1_02 and R_1_03.  So not only will it be
+impossible to retrieve R_1_02; R_1_03 will also have to
+be restored from the tapes!  In most cases you want to
+specify <var>rev1</var>::<var>rev2</var> instead.
+</p>
+</dd>
+<dt><code>:<var>rev</var></code></dt>
+<dd><p>Delete revisions from the beginning of the
+branch containing <var>rev</var> up to and including
+<var>rev</var>.
+</p>
+</dd>
+<dt><code><var>rev</var>:</code></dt>
+<dd><p>Delete revisions from revision <var>rev</var>, including
+<var>rev</var> itself, to the end of the branch containing
+<var>rev</var>.
+</p></dd>
+</dl>
+
+<p>None of the revisions to be deleted may have
+branches or locks.
+</p>
+<p>If any of the revisions to be deleted have symbolic
+names, and one specifies one of the &lsquo;<samp>::</samp>&rsquo; syntaxes,
+then <small>CVS</small> will give an error and not delete any
+revisions.  If you really want to delete both the
+symbolic names and the revisions, first delete the
+symbolic names with <code>cvs tag -d</code>, then run
+<code>cvs admin -o</code>.  If one specifies the
+non-&lsquo;<samp>::</samp>&rsquo; syntaxes, then <small>CVS</small> will 
delete the
+revisions but leave the symbolic names pointing to
+nonexistent revisions.  This behavior is preserved for
+compatibility with previous versions of <small>CVS</small>, but
+because it isn&rsquo;t very useful, in the future it may
+change to be like the &lsquo;<samp>::</samp>&rsquo; case.
+</p>
+<p>Due to the way <small>CVS</small> handles branches <var>rev</var>
+cannot be specified symbolically if it is a branch.
+See <a href="Magic-branch-numbers.html#Magic-branch-numbers">Magic branch 
numbers</a> for an explanation.
+</p>
+<p>Make sure that no-one has checked out a copy of the
+revision you outdate.  Strange things will happen if he
+starts to edit it and tries to check it back in.  For
+this reason, this option is not a good way to take back
+a bogus commit; commit a new revision undoing the bogus
+change instead (see <a 
href="Merging-two-revisions.html#Merging-two-revisions">Merging two 
revisions</a>).
+</p>
+</dd>
+<dt><code>-q</code></dt>
+<dd><p>Run quietly; do not print diagnostics.
+</p>
+</dd>
+<dt><code>-s<var>state</var>[:<var>rev</var>]</code></dt>
+<dd><p>Useful with <small>CVS</small>.  Set the state attribute of the
+revision <var>rev</var> to <var>state</var>.  If <var>rev</var> is a
+branch number, assume the latest revision on that
+branch.  If <var>rev</var> is omitted, assume the latest
+revision on the default branch.  Any identifier is
+acceptable for <var>state</var>.  A useful set of states is
+&lsquo;<samp>Exp</samp>&rsquo; (for experimental), 
&lsquo;<samp>Stab</samp>&rsquo; (for
+stable), and &lsquo;<samp>Rel</samp>&rsquo; (for released).  By default,
+the state of a new revision is set to &lsquo;<samp>Exp</samp>&rsquo; when
+it is created.  The state is visible in the output from
+<var>cvs log</var> (see <a href="log.html#log">log</a>), and in the
+&lsquo;<samp>$<i></i>Log$</samp>&rsquo; and 
&lsquo;<samp>$<i></i>State$</samp>&rsquo; keywords
+(see <a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>).  Note that <small>CVS</small>
+uses the <code>dead</code> state for its own purposes (see <a 
href="Attic.html#Attic">Attic</a>); to
+take a file to or from the <code>dead</code> state use
+commands like <code>cvs remove</code> and <code>cvs add</code>
+(see <a href="Adding-and-removing.html#Adding-and-removing">Adding and 
removing</a>), not <code>cvs admin -s</code>.
+</p>
+</dd>
+<dt><code>-t[<var>file</var>]</code></dt>
+<dd><p>Useful with <small>CVS</small>.  Write descriptive text from the
+contents of the named <var>file</var> into the RCS file,
+deleting the existing text.  The <var>file</var> pathname
+may not begin with &lsquo;<samp>-</samp>&rsquo;.  The descriptive text can be 
seen in the
+output from &lsquo;<samp>cvs log</samp>&rsquo; (see <a 
href="log.html#log">log</a>).
+There can be no space between &lsquo;<samp>-t</samp>&rsquo; and its argument.
+</p>
+<p>If <var>file</var> is omitted,
+obtain the text from standard input, terminated by
+end-of-file or by a line containing &lsquo;<samp>.</samp>&rsquo; by itself.
+Prompt for the text if interaction is possible; see
+&lsquo;<samp>-I</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-t-<var>string</var></code></dt>
+<dd><p>Similar to &lsquo;<samp>-t<var>file</var></samp>&rsquo;. Write 
descriptive text
+from the <var>string</var> into the <small>RCS</small> file, deleting
+the existing text.
+There can be no space between &lsquo;<samp>-t</samp>&rsquo; and its argument.
+</p>
+
+</dd>
+<dt><code>-U</code></dt>
+<dd><p>Set locking to non-strict.  Non-strict locking means
+that the owner of a file need not lock a revision for
+checkin.  For use with <small>CVS</small>, strict locking must be
+set; see the discussion under the &lsquo;<samp>-l</samp>&rsquo; option
+above.
+</p>
+</dd>
+<dt><code>-u[<var>rev</var>]</code></dt>
+<dd><p>See the option &lsquo;<samp>-l</samp>&rsquo; above, for a discussion of
+using this option with <small>CVS</small>.  Unlock the revision
+with number <var>rev</var>.  If a branch is given, unlock
+the latest revision on that branch.  If <var>rev</var> is
+omitted, remove the latest lock held by the caller.
+Normally, only the locker of a revision may unlock it;
+somebody else unlocking a revision breaks the lock.
+This causes the original locker to be sent a <code>commit</code>
+notification (see <a href="Getting-Notified.html#Getting-Notified">Getting 
Notified</a>).
+There can be no space between &lsquo;<samp>-u</samp>&rsquo; and its argument.
+</p>
+</dd>
+<dt><code>-V<var>n</var></code></dt>
+<dd><p>In previous versions of <small>CVS</small>, this option meant to
+write an <small>RCS</small> file which would be acceptable to
+<small>RCS</small> version <var>n</var>, but it is now obsolete and
+specifying it will produce an error.
+</p>
+</dd>
+<dt><code>-x<var>suffixes</var></code></dt>
+<dd><p>In previous versions of <small>CVS</small>, this was documented
+as a way of specifying the names of the <small>RCS</small>
+files.  However, <small>CVS</small> has always required that the
+<small>RCS</small> files used by <small>CVS</small> end in 
&lsquo;<samp>,v</samp>&rsquo;, so
+this option has never done anything useful.
+</p>
+</dd>
+</dl>
+
+
+<hr>
+<div class="header">
+<p>
+Up: <a href="admin.html#admin" accesskey="u" rel="up">admin</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/admin.html
===================================================================
RCS file: html_node/admin.html
diff -N html_node/admin.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/admin.html        28 Dec 2015 15:58:15 -0000      1.1
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: admin</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: admin">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
admin">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="admin-options.html#admin-options" rel="next" title="admin options">
+<link href="add-examples.html#add-examples" rel="prev" title="add examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="admin"></a>
+<div class="header">
+<p>
+Next: <a href="annotate.html#annotate" accesskey="n" rel="next">annotate</a>, 
Previous: <a href="add.html#add" accesskey="p" rel="prev">add</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="admin_002d_002d_002dAdministration"></a>
+<h3 class="appendixsec">A.7 admin&mdash;Administration</h3>
+<a name="index-Admin-_0028subcommand_0029"></a>
+
+<ul>
+<li> Requires: repository, working directory.
+</li><li> Changes: repository.
+</li><li> Synonym: rcs
+</li></ul>
+
+<p>This is the <small>CVS</small> interface to assorted
+administrative facilities.  Some of them have
+questionable usefulness for <small>CVS</small> but exist for
+historical purposes.  Some of the questionable options
+are likely to disappear in the future.  This command
+<em>does</em> work recursively, so extreme care should be
+used.
+</p>
+<a name="index-cvsadmin"></a>
+<p>On unix, if there is a group named <code>cvsadmin</code>,
+only members of that group can run <code>cvs admin</code>
+(except for the <code>cvs admin -k</code> command, which can
+be run by anybody).  This group should exist on the
+server, or any system running the non-client/server
+<small>CVS</small>.  To disallow <code>cvs admin</code> for all users,
+create a group with no users in it.  On NT, the
+<code>cvsadmin</code> feature does not exist and all users
+can run <code>cvs admin</code>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="admin-options.html#admin-options" accesskey="1">admin 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">admin 
options
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/annotate-example.html
===================================================================
RCS file: html_node/annotate-example.html
diff -N html_node/annotate-example.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/annotate-example.html     28 Dec 2015 15:58:15 -0000      1.1
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: annotate example</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: annotate example">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
annotate example">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="annotate.html#annotate" rel="up" title="annotate">
+<link href="checkout.html#checkout" rel="next" title="checkout">
+<link href="annotate-options.html#annotate-options" rel="prev" title="annotate 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="annotate-example"></a>
+<div class="header">
+<p>
+Previous: <a href="annotate-options.html#annotate-options" accesskey="p" 
rel="prev">annotate options</a>, Up: <a href="annotate.html#annotate" 
accesskey="u" rel="up">annotate</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="annotate-example-1"></a>
+<h4 class="appendixsubsec">A.8.2 annotate example</h4>
+
+<p>For example:
+</p>
+<div class="example">
+<pre class="example">$ cvs annotate ssfile
+Annotations for ssfile
+***************
+1.1          (mary     27-Mar-96): ssfile line 1
+1.2          (joe      28-Mar-96): ssfile line 2
+</pre></div>
+
+<p>The file <samp>ssfile</samp> currently contains two lines.
+The <code>ssfile line 1</code> line was checked in by
+<code>mary</code> on March 27.  Then, on March 28, <code>joe</code>
+added a line <code>ssfile line 2</code>, without modifying
+the <code>ssfile line 1</code> line.  This report doesn&rsquo;t
+tell you anything about lines which have been deleted
+or replaced; you need to use <code>cvs diff</code> for that
+(see <a href="diff.html#diff">diff</a>).
+</p>
+<p>The options to <code>cvs annotate</code> are listed in
+<a href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a>, and can be used to 
select the files
+and revisions to annotate.  The options are described
+in more detail there and in <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+
+
+
+
+
+</body>
+</html>

Index: html_node/annotate-options.html
===================================================================
RCS file: html_node/annotate-options.html
diff -N html_node/annotate-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/annotate-options.html     28 Dec 2015 15:58:15 -0000      1.1
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: annotate options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: annotate options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
annotate options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="annotate.html#annotate" rel="up" title="annotate">
+<link href="annotate-example.html#annotate-example" rel="next" title="annotate 
example">
+<link href="annotate.html#annotate" rel="prev" title="annotate">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="annotate-options"></a>
+<div class="header">
+<p>
+Next: <a href="annotate-example.html#annotate-example" accesskey="n" 
rel="next">annotate example</a>, Up: <a href="annotate.html#annotate" 
accesskey="u" rel="up">annotate</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="annotate-options-1"></a>
+<h4 class="appendixsubsec">A.8.1 annotate options</h4>
+
+<p>These standard options are supported by <code>annotate</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local directory only, no recursion.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Process directories recursively.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Use head revision if tag/date not found.
+</p>
+</dd>
+<dt><code>-F</code></dt>
+<dd><p>Annotate binary files.
+</p>
+</dd>
+<dt><code>-r <var>revision</var></code></dt>
+<dd><p>Annotate file as of specified revision/tag.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Annotate file as of specified date.
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/annotate.html
===================================================================
RCS file: html_node/annotate.html
diff -N html_node/annotate.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/annotate.html     28 Dec 2015 15:58:16 -0000      1.1
@@ -0,0 +1,84 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: annotate</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: annotate">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
annotate">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="annotate-options.html#annotate-options" rel="next" title="annotate 
options">
+<link href="admin-options.html#admin-options" rel="prev" title="admin options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="annotate"></a>
+<div class="header">
+<p>
+Next: <a href="checkout.html#checkout" accesskey="n" rel="next">checkout</a>, 
Previous: <a href="admin.html#admin" accesskey="p" rel="prev">admin</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a 
name="annotate_002d_002d_002dWhat-revision-modified-each-line-of-a-file_003f"></a>
+<h3 class="appendixsec">A.8 annotate&mdash;What revision modified each line of 
a file?</h3>
+<a name="index-annotate-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: annotate [options] files&hellip;
+</li><li> Requires: repository.
+</li><li> Synonym: blame
+</li><li> Changes: nothing.
+</li></ul>
+
+<p>For each file in <var>files</var>, print the head revision
+of the trunk, together with information on the last
+modification for each line.  
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="annotate-options.html#annotate-options" accesskey="1">annotate 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">annotate 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="annotate-example.html#annotate-example" accesskey="2">annotate 
example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">annotate 
example
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/checkout-examples.html
===================================================================
RCS file: html_node/checkout-examples.html
diff -N html_node/checkout-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/checkout-examples.html    28 Dec 2015 15:58:16 -0000      1.1
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: checkout examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: checkout examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
checkout examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="checkout.html#checkout" rel="up" title="checkout">
+<link href="commit.html#commit" rel="next" title="commit">
+<link href="checkout-options.html#checkout-options" rel="prev" title="checkout 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="checkout-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="checkout-options.html#checkout-options" accesskey="p" 
rel="prev">checkout options</a>, Up: <a href="checkout.html#checkout" 
accesskey="u" rel="up">checkout</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="checkout-examples-1"></a>
+<h4 class="appendixsubsec">A.9.2 checkout examples</h4>
+
+<p>Get a copy of the module &lsquo;<samp>tc</samp>&rsquo;:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout tc
+</pre></div>
+
+<p>Get a copy of the module &lsquo;<samp>tc</samp>&rsquo; as it looked one day
+ago:
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -D yesterday tc
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/checkout-options.html
===================================================================
RCS file: html_node/checkout-options.html
diff -N html_node/checkout-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/checkout-options.html     28 Dec 2015 15:58:16 -0000      1.1
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: checkout options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: checkout options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
checkout options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="checkout.html#checkout" rel="up" title="checkout">
+<link href="checkout-examples.html#checkout-examples" rel="next" 
title="checkout examples">
+<link href="checkout.html#checkout" rel="prev" title="checkout">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="checkout-options"></a>
+<div class="header">
+<p>
+Next: <a href="checkout-examples.html#checkout-examples" accesskey="n" 
rel="next">checkout examples</a>, Up: <a href="checkout.html#checkout" 
accesskey="u" rel="up">checkout</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="checkout-options-1"></a>
+<h4 class="appendixsubsec">A.9.1 checkout options</h4>
+
+<p>These standard options are supported by <code>checkout</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+This option is sticky, and implies &lsquo;<samp>-P</samp>&rsquo;.  See
+<a href="Sticky-tags.html#Sticky-tags">Sticky tags</a> for more information on 
sticky tags/dates.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Only useful with the &lsquo;<samp>-D <var>date</var></samp>&rsquo; or 
&lsquo;<samp>-r
+<var>tag</var></samp>&rsquo; flags.  If no matching revision is found,
+retrieve the most recent revision (instead of ignoring
+the file).
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>.
+This option is sticky; future updates of
+this file in this working directory will use the same
+<var>kflag</var>.  The <code>status</code> command can be viewed
+to see the sticky options.  See <a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a> for
+more information on the <code>status</code> command.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run any checkout program (as specified
+with the &lsquo;<samp>-o</samp>&rsquo; option in the modules file;
+see <a href="modules.html#modules">modules</a>).
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a 
href="Moving-directories.html#Moving-directories">Moving directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Pipe files to the standard output.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Checkout directories recursively.  This option is on by default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Use revision <var>tag</var>.  This option is sticky, and implies 
&lsquo;<samp>-P</samp>&rsquo;.
+See <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a>, for more 
information on sticky tags/dates.
+</p></dd>
+</dl>
+
+<p>In addition to those, you can use these special command
+options with <code>checkout</code>:
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags, dates, or &lsquo;<samp>-k</samp>&rsquo; options.
+Does not reset sticky &lsquo;<samp>-k</samp>&rsquo; options on modified files.
+See <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a> for more 
information on sticky tags/dates.
+</p>
+</dd>
+<dt><code>-c</code></dt>
+<dd><p>Copy the module file, sorted, to the standard output,
+instead of creating or modifying any files or
+directories in your working directory.
+</p>
+</dd>
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Create a directory called <var>dir</var> for the working
+files, instead of using the module name.  In general,
+using this flag is equivalent to using &lsquo;<samp>mkdir
+<var>dir</var>; cd <var>dir</var></samp>&rsquo; followed by the checkout
+command without the &lsquo;<samp>-d</samp>&rsquo; flag.
+</p>
+<p>There is an important exception, however.  It is very
+convenient when checking out a single item to have the
+output appear in a directory that doesn&rsquo;t contain empty
+intermediate directories.  In this case <em>only</em>,
+<small>CVS</small> tries to &ldquo;shorten&rdquo; pathnames to avoid those 
empty
+directories.
+</p>
+<p>For example, given a module &lsquo;<samp>foo</samp>&rsquo; that contains
+the file &lsquo;<samp>bar.c</samp>&rsquo;, the command &lsquo;<samp>cvs co -d 
dir
+foo</samp>&rsquo; will create directory &lsquo;<samp>dir</samp>&rsquo; and 
place
+&lsquo;<samp>bar.c</samp>&rsquo; inside.  Similarly, given a module
+&lsquo;<samp>bar</samp>&rsquo; which has subdirectory 
&lsquo;<samp>baz</samp>&rsquo; wherein
+there is a file &lsquo;<samp>quux.c</samp>&rsquo;, the command 
&lsquo;<samp>cvs co
+-d dir bar/baz</samp>&rsquo; will create directory 
&lsquo;<samp>dir</samp>&rsquo; and
+place &lsquo;<samp>quux.c</samp>&rsquo; inside.
+</p>
+<p>Using the &lsquo;<samp>-N</samp>&rsquo; flag will defeat this behavior.
+Given the same module definitions above, &lsquo;<samp>cvs co
+-N -d dir foo</samp>&rsquo; will create directories 
&lsquo;<samp>dir/foo</samp>&rsquo;
+and place &lsquo;<samp>bar.c</samp>&rsquo; inside, while &lsquo;<samp>cvs co 
-N -d
+dir bar/baz</samp>&rsquo; will create directories 
&lsquo;<samp>dir/bar/baz</samp>&rsquo;
+and place &lsquo;<samp>quux.c</samp>&rsquo; inside.
+</p>
+</dd>
+<dt><code>-j <var>tag</var></code></dt>
+<dd><p>With two &lsquo;<samp>-j</samp>&rsquo; options, merge changes from the
+revision specified with the first &lsquo;<samp>-j</samp>&rsquo; option to
+the revision specified with the second &lsquo;<samp>j</samp>&rsquo; option,
+into the working directory.
+</p>
+<p>With one &lsquo;<samp>-j</samp>&rsquo; option, merge changes from the
+ancestor revision to the revision specified with the
+&lsquo;<samp>-j</samp>&rsquo; option, into the working directory.  The
+ancestor revision is the common ancestor of the
+revision which the working directory is based on, and
+the revision specified in the &lsquo;<samp>-j</samp>&rsquo; option.
+</p>
+<p>In addition, each -j option can contain an optional
+date specification which, when used with branches, can
+limit the chosen revision to one within a specific
+date.  An optional date is specified by adding a colon
+(:) to the tag:
+&lsquo;<samp>-j<var>Symbolic_Tag</var>:<var>Date_Specifier</var></samp>&rsquo;.
+</p>
+<p>See <a href="Branching-and-merging.html#Branching-and-merging">Branching 
and merging</a>.
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Only useful together with &lsquo;<samp>-d <var>dir</var></samp>&rsquo;. 
 With
+this option, <small>CVS</small> will not &ldquo;shorten&rdquo; module paths
+in your working directory when you check out a single
+module.  See the &lsquo;<samp>-d</samp>&rsquo; flag for examples and a
+discussion.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Like &lsquo;<samp>-c</samp>&rsquo;, but include the status of all 
modules,
+and sort it by the status string.  See <a 
href="modules.html#modules">modules</a>, for
+info about the &lsquo;<samp>-s</samp>&rsquo; option that is used inside the
+modules file to set the module status.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="checkout-examples.html#checkout-examples" accesskey="n" 
rel="next">checkout examples</a>, Up: <a href="checkout.html#checkout" 
accesskey="u" rel="up">checkout</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/checkout.html
===================================================================
RCS file: html_node/checkout.html
diff -N html_node/checkout.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/checkout.html     28 Dec 2015 15:58:16 -0000      1.1
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: checkout</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: checkout">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
checkout">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="checkout-options.html#checkout-options" rel="next" title="checkout 
options">
+<link href="annotate-example.html#annotate-example" rel="prev" title="annotate 
example">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="checkout"></a>
+<div class="header">
+<p>
+Next: <a href="commit.html#commit" accesskey="n" rel="next">commit</a>, 
Previous: <a href="annotate.html#annotate" accesskey="p" 
rel="prev">annotate</a>, Up: <a href="CVS-commands.html#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="checkout_002d_002d_002dCheck-out-sources-for-editing"></a>
+<h3 class="appendixsec">A.9 checkout&mdash;Check out sources for editing</h3>
+<a name="index-checkout-_0028subcommand_0029"></a>
+<a name="index-co-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: checkout [options] modules&hellip;
+</li><li> Requires: repository.
+</li><li> Changes: working directory.
+</li><li> Synonyms: co, get
+</li></ul>
+
+<p>Create or update a working directory containing copies of the
+source files specified by <var>modules</var>.  You must execute
+<code>checkout</code> before using most of the other <small>CVS</small>
+commands, since most of them operate on your working
+directory.
+</p>
+<p>The <var>modules</var> are either
+symbolic names for some
+collection of source directories and files, or paths to
+directories or files in the repository.  The symbolic
+names are defined in the &lsquo;<samp>modules</samp>&rsquo; file.
+See <a href="modules.html#modules">modules</a>.
+</p>
+<p>Depending on the modules you specify, <code>checkout</code> may
+recursively create directories and populate them with
+the appropriate source files.  You can then edit these
+source files at any time (regardless of whether other
+software developers are editing their own copies of the
+sources); update them to include new changes applied by
+others to the source repository; or commit your work as
+a permanent change to the source repository.
+</p>
+<p>Note that <code>checkout</code> is used to create
+directories.  The top-level directory created is always
+added to the directory where <code>checkout</code> is
+invoked, and usually has the same name as the specified
+module.  In the case of a module alias, the created
+sub-directory may have a different name, but you can be
+sure that it will be a sub-directory, and that
+<code>checkout</code> will show the relative path leading to
+each file as it is extracted into your private work
+area (unless you specify the &lsquo;<samp>-Q</samp>&rsquo; global option).
+</p>
+<p>The files created by <code>checkout</code> are created
+read-write, unless the &lsquo;<samp>-r</samp>&rsquo; option to 
<small>CVS</small>
+(see <a href="Global-options.html#Global-options">Global options</a>) is 
specified, the
+<code>CVSREAD</code> environment variable is specified
+(see <a href="Environment-variables.html#Environment-variables">Environment 
variables</a>), or a watch is in
+effect for that file (see <a href="Watches.html#Watches">Watches</a>).
+</p>
+<p>Note that running <code>checkout</code> on a directory that was already
+built by a prior <code>checkout</code> is also permitted.
+This is similar to specifying the &lsquo;<samp>-d</samp>&rsquo; option
+to the <code>update</code> command in the sense that new
+directories that have been created in the repository
+will appear in your work area.
+However, <code>checkout</code> takes a module name whereas
+<code>update</code> takes a directory name.  Also
+to use <code>checkout</code> this way it must be run from the
+top level directory (where you originally ran
+<code>checkout</code> from), so before you run
+<code>checkout</code> to update an existing directory, don&rsquo;t
+forget to change your directory to the top level
+directory.
+</p>
+<p>For the output produced by the <code>checkout</code> command,
+See <a href="update-output.html#update-output">update output</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="checkout-options.html#checkout-options" accesskey="1">checkout 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">checkout 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="checkout-examples.html#checkout-examples" accesskey="2">checkout 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">checkout 
examples
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="commit.html#commit" accesskey="n" rel="next">commit</a>, 
Previous: <a href="annotate.html#annotate" accesskey="p" 
rel="prev">annotate</a>, Up: <a href="CVS-commands.html#CVS-commands" 
accesskey="u" rel="up">CVS commands</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/checkoutlist.html
===================================================================
RCS file: html_node/checkoutlist.html
diff -N html_node/checkoutlist.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/checkoutlist.html 28 Dec 2015 15:58:17 -0000      1.1
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: checkoutlist</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: checkoutlist">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
checkoutlist">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="history-file.html#history-file" rel="next" title="history file">
+<link href="cvsignore.html#cvsignore" rel="prev" title="cvsignore">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="checkoutlist"></a>
+<div class="header">
+<p>
+Next: <a href="history-file.html#history-file" accesskey="n" 
rel="next">history file</a>, Previous: <a href="cvsignore.html#cvsignore" 
accesskey="p" rel="prev">cvsignore</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-checkoutlist-file"></a>
+<h3 class="appendixsec">C.8 The checkoutlist file</h3>
+<a name="index-checkoutlist"></a>
+
+<p>It may be helpful to use <small>CVS</small> to maintain your own
+files in the <samp>CVSROOT</samp> directory.  For example,
+suppose that you have a script <samp>logcommit.pl</samp>
+which you run by including the following line in the
+<samp>commitinfo</samp> administrative file:
+</p>
+<div class="example">
+<pre class="example">ALL   $CVSROOT/CVSROOT/logcommit.pl
+</pre></div>
+
+<p>To maintain <samp>logcommit.pl</samp> with <small>CVS</small> you would
+add the following line to the <samp>checkoutlist</samp>
+administrative file:
+</p>
+<div class="example">
+<pre class="example">logcommit.pl
+</pre></div>
+
+<p>The format of <samp>checkoutlist</samp> is one line for each
+file that you want to maintain using <small>CVS</small>, giving
+the name of the file, followed optionally by more whitespace
+and any error message that should print if the file cannot be
+checked out into CVSROOT after a commit:
+</p>
+<div class="example">
+<pre class="example">logcommit.pl      Could not update CVSROOT/logcommit.pl.
+</pre></div>
+
+<p>After setting up <samp>checkoutlist</samp> in this fashion,
+the files listed there will function just like
+<small>CVS</small>&rsquo;s built-in administrative files.  For example,
+when checking in one of the files you should get a
+message such as:
+</p>
+<div class="example">
+<pre class="example">cvs commit: Rebuilding administrative file database
+</pre></div>
+
+<p>and the checked out copy in the <samp>CVSROOT</samp>
+directory should be updated.
+</p>
+<p>Note that listing <samp>passwd</samp> (see <a 
href="Password-authentication-server.html#Password-authentication-server">Password
 authentication server</a>) in <samp>checkoutlist</samp> is not
+recommended for security reasons.
+</p>
+<p>For information about keeping a checkout out copy in a
+more general context than the one provided by
+<samp>checkoutlist</samp>, see <a 
href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy">Keeping a 
checked out copy</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/commit-examples.html
===================================================================
RCS file: html_node/commit-examples.html
diff -N html_node/commit-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/commit-examples.html      28 Dec 2015 15:58:17 -0000      1.1
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: commit examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: commit examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
commit examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="commit.html#commit" rel="up" title="commit">
+<link href="diff.html#diff" rel="next" title="diff">
+<link href="commit-options.html#commit-options" rel="prev" title="commit 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="commit-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="commit-options.html#commit-options" accesskey="p" 
rel="prev">commit options</a>, Up: <a href="commit.html#commit" accesskey="u" 
rel="up">commit</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="commit-examples-1"></a>
+<h4 class="appendixsubsec">A.10.2 commit examples</h4>
+
+
+<a name="Committing-to-a-branch"></a>
+<h4 class="appendixsubsubsec">A.10.2.1 Committing to a branch</h4>
+
+<p>You can commit to a branch revision (one that has an
+even number of dots) with the &lsquo;<samp>-r</samp>&rsquo; option.  To
+create a branch revision, use the &lsquo;<samp>-b</samp>&rsquo; option
+of the <code>rtag</code> or <code>tag</code> commands
+(see <a href="Branching-and-merging.html#Branching-and-merging">Branching and 
merging</a>).  Then, either <code>checkout</code> or
+<code>update</code> can be used to base your sources on the
+newly created branch.  From that point on, all
+<code>commit</code> changes made within these working sources
+will be automatically added to a branch revision,
+thereby not disturbing main-line development in any
+way.  For example, if you had to create a patch to the
+1.2 version of the product, even though the 2.0 version
+is already under development, you might do:
+</p>
+<div class="example">
+<pre class="example">$ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
+$ cvs checkout -r FCS1_2_Patch product_module
+$ cd product_module
+[[ hack away ]]
+$ cvs commit
+</pre></div>
+
+<p>This works automatically since the &lsquo;<samp>-r</samp>&rsquo; option is
+sticky.
+</p>
+<a name="Creating-the-branch-after-editing"></a>
+<h4 class="appendixsubsubsec">A.10.2.2 Creating the branch after editing</h4>
+
+<p>Say you have been working on some extremely
+experimental software, based on whatever revision you
+happened to checkout last week.  If others in your
+group would like to work on this software with you, but
+without disturbing main-line development, you could
+commit your change to a new branch.  Others can then
+checkout your experimental stuff and utilize the full
+benefit of <small>CVS</small> conflict resolution.  The scenario might
+look like:
+</p>
+<div class="example">
+<pre class="example">[[ hacked sources are present ]]
+$ cvs tag -b EXPR1
+$ cvs update -r EXPR1
+$ cvs commit
+</pre></div>
+
+<p>The <code>update</code> command will make the &lsquo;<samp>-r
+EXPR1</samp>&rsquo; option sticky on all files.  Note that your
+changes to the files will never be removed by the
+<code>update</code> command.  The <code>commit</code> will
+automatically commit to the correct branch, because the
+&lsquo;<samp>-r</samp>&rsquo; is sticky.  You could also do like this:
+</p>
+<div class="example">
+<pre class="example">[[ hacked sources are present ]]
+$ cvs tag -b EXPR1
+$ cvs commit -r EXPR1
+</pre></div>
+
+<p>but then, only those files that were changed by you
+will have the &lsquo;<samp>-r EXPR1</samp>&rsquo; sticky flag.  If you hack
+away, and commit without specifying the &lsquo;<samp>-r EXPR1</samp>&rsquo;
+flag, some files may accidentally end up on the main
+trunk.
+</p>
+<p>To work with you on the experimental change, others
+would simply do
+</p>
+<div class="example">
+<pre class="example">$ cvs checkout -r EXPR1 whatever_module
+</pre></div>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="commit-options.html#commit-options" accesskey="p" 
rel="prev">commit options</a>, Up: <a href="commit.html#commit" accesskey="u" 
rel="up">commit</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/commit-files.html
===================================================================
RCS file: html_node/commit-files.html
diff -N html_node/commit-files.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/commit-files.html 28 Dec 2015 15:58:17 -0000      1.1
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: commit files</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: commit files">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
commit files">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="commitinfo.html#commitinfo" rel="next" title="commitinfo">
+<link href="Trigger-Script-Security.html#Trigger-Script-Security" rel="prev" 
title="Trigger Script Security">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="commit-files"></a>
+<div class="header">
+<p>
+Next: <a href="rcsinfo.html#rcsinfo" accesskey="n" rel="next">rcsinfo</a>, 
Previous: <a href="Trigger-Scripts.html#Trigger-Scripts" accesskey="p" 
rel="prev">Trigger Scripts</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-commit-support-files"></a>
+<h3 class="appendixsec">C.4 The commit support files</h3>
+<a name="index-Committing_002c-administrative-support-files"></a>
+
+<p>There are three kinds of trigger scripts (see <a 
href="Trigger-Scripts.html#Trigger-Scripts">Trigger Scripts</a>) that can be
+run at various times during a commit.  They are specified in files in the
+repository, as described below.  The following table summarizes the
+file names and the purpose of the corresponding programs.
+</p>
+<dl compact="compact">
+<dt><samp>commitinfo</samp></dt>
+<dd><p>The program is responsible for checking that the commit
+is allowed.  If it exits with a non-zero exit status
+the commit will be aborted.
+</p>
+</dd>
+<dt><samp>verifymsg</samp></dt>
+<dd><p>The specified program is used to evaluate the log message,
+and possibly verify that it contains all required
+fields.  This is most useful in combination with the
+<samp>rcsinfo</samp> file, which can hold a log message
+template (see <a href="rcsinfo.html#rcsinfo">rcsinfo</a>).
+</p>
+</dd>
+<dt><samp>editinfo</samp></dt>
+<dd><p>The specified program is used to edit the log message,
+and possibly verify that it contains all required
+fields.  This is most useful in combination with the
+<samp>rcsinfo</samp> file, which can hold a log message
+template (see <a href="rcsinfo.html#rcsinfo">rcsinfo</a>).  (obsolete)
+</p>
+</dd>
+<dt><samp>loginfo</samp></dt>
+<dd><p>The specified program is called when the commit is
+complete.  It receives the log message and some
+additional information and can store the log message in
+a file, or mail it to appropriate persons, or maybe
+post it to a local newsgroup, or&hellip;  Your
+imagination is the limit!
+</p></dd>
+</dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="commitinfo.html#commitinfo" 
accesskey="1">commitinfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Pre-commit checking
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="verifymsg.html#verifymsg" 
accesskey="2">verifymsg</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">How are log messages evaluated?
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="editinfo.html#editinfo" 
accesskey="3">editinfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Specifying how log messages are created
+                                (obsolete)
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="loginfo.html#loginfo" 
accesskey="4">loginfo</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Where should log messages be sent?
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="rcsinfo.html#rcsinfo" accesskey="n" rel="next">rcsinfo</a>, 
Previous: <a href="Trigger-Scripts.html#Trigger-Scripts" accesskey="p" 
rel="prev">Trigger Scripts</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/commit-options.html
===================================================================
RCS file: html_node/commit-options.html
diff -N html_node/commit-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/commit-options.html       28 Dec 2015 15:58:17 -0000      1.1
@@ -0,0 +1,121 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: commit options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: commit options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
commit options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="commit.html#commit" rel="up" title="commit">
+<link href="commit-examples.html#commit-examples" rel="next" title="commit 
examples">
+<link href="commit.html#commit" rel="prev" title="commit">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="commit-options"></a>
+<div class="header">
+<p>
+Next: <a href="commit-examples.html#commit-examples" accesskey="n" 
rel="next">commit examples</a>, Up: <a href="commit.html#commit" accesskey="u" 
rel="up">commit</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="commit-options-1"></a>
+<h4 class="appendixsubsec">A.10.1 commit options</h4>
+
+<p>These standard options are supported by <code>commit</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Commit directories recursively.  This is on by default.
+</p>
+</dd>
+<dt><code>-r <var>revision</var></code></dt>
+<dd><p>Commit to <var>revision</var>.  <var>revision</var> must be
+either a branch, or a revision on the main trunk that
+is higher than any existing revision number
+(see <a href="Assigning-revisions.html#Assigning-revisions">Assigning 
revisions</a>).  You
+cannot commit to a specific revision on a branch.
+</p></dd>
+</dl>
+
+<p><code>commit</code> also supports these options:
+</p>
+<dl compact="compact">
+<dt><code>-F <var>file</var></code></dt>
+<dd><p>Read the log message from <var>file</var>, instead
+of invoking an editor.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Note that this is not the standard behavior of
+the &lsquo;<samp>-f</samp>&rsquo; option as defined in <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+<p>Force <small>CVS</small> to commit a new revision even if you haven&rsquo;t
+made any changes to the file.  If the current revision
+of <var>file</var> is 1.7, then the following two commands
+are equivalent:
+</p>
+<div class="example">
+<pre class="example">$ cvs commit -f <var>file</var>
+$ cvs commit -r 1.8 <var>file</var>
+</pre></div>
+
+<p>The &lsquo;<samp>-f</samp>&rsquo; option disables recursion (i.e., it
+implies &lsquo;<samp>-l</samp>&rsquo;).  To force <small>CVS</small> to commit 
a new
+revision for all files in all subdirectories, you must
+use &lsquo;<samp>-f -R</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as the log message, instead of
+invoking an editor.
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/commit.html
===================================================================
RCS file: html_node/commit.html
diff -N html_node/commit.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/commit.html       28 Dec 2015 15:58:17 -0000      1.1
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: commit</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: commit">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
commit">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="commit-options.html#commit-options" rel="next" title="commit 
options">
+<link href="checkout-examples.html#checkout-examples" rel="prev" 
title="checkout examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="commit"></a>
+<div class="header">
+<p>
+Next: <a href="diff.html#diff" accesskey="n" rel="next">diff</a>, Previous: <a 
href="checkout.html#checkout" accesskey="p" rel="prev">checkout</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="commit_002d_002d_002dCheck-files-into-the-repository"></a>
+<h3 class="appendixsec">A.10 commit&mdash;Check files into the repository</h3>
+<a name="index-commit-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: commit [-lRf] [-m &rsquo;log_message&rsquo; |
+-F file] [-r revision] [files&hellip;]
+</li><li> Requires: working directory, repository.
+</li><li> Changes: repository.
+</li><li> Synonym: ci
+</li></ul>
+
+<p>Use <code>commit</code> when you want to incorporate changes
+from your working source files into the source
+repository.
+</p>
+<p>If you don&rsquo;t specify particular files to commit, all of
+the files in your working current directory are
+examined.  <code>commit</code> is careful to change in the
+repository only those files that you have really
+changed.  By default (or if you explicitly specify the
+&lsquo;<samp>-R</samp>&rsquo; option), files in subdirectories are also
+examined and committed if they have changed; you can
+use the &lsquo;<samp>-l</samp>&rsquo; option to limit <code>commit</code> to 
the
+current directory only.
+</p>
+<p><code>commit</code> verifies that the selected files are up
+to date with the current revisions in the source
+repository; it will notify you, and exit without
+committing, if any of the specified files must be made
+current first with <code>update</code> (see <a 
href="update.html#update">update</a>).
+<code>commit</code> does not call the <code>update</code> command
+for you, but rather leaves that for you to do when the
+time is right.
+</p>
+<p>When all is well, an editor is invoked to allow you to
+enter a log message that will be written to one or more
+logging programs (see <a href="modules.html#modules">modules</a>, and see <a 
href="loginfo.html#loginfo">loginfo</a>)
+and placed in the <small>RCS</small> file inside the
+repository.  This log message can be retrieved with the
+<code>log</code> command; See <a href="log.html#log">log</a>.  You can specify 
the
+log message on the command line with the &lsquo;<samp>-m
+<var>message</var></samp>&rsquo; option, and thus avoid the editor invocation,
+or use the &lsquo;<samp>-F <var>file</var></samp>&rsquo; option to specify
+that the argument file contains the log message.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="commit-options.html#commit-options" accesskey="1">commit 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">commit 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="commit-examples.html#commit-examples" accesskey="2">commit 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">commit 
examples
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="diff.html#diff" accesskey="n" rel="next">diff</a>, Previous: <a 
href="checkout.html#checkout" accesskey="p" rel="prev">checkout</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/commitinfo.html
===================================================================
RCS file: html_node/commitinfo.html
diff -N html_node/commitinfo.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/commitinfo.html   28 Dec 2015 15:58:18 -0000      1.1
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: commitinfo</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: commitinfo">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
commitinfo">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="commit-files.html#commit-files" rel="up" title="commit files">
+<link href="verifymsg.html#verifymsg" rel="next" title="verifymsg">
+<link href="commit-files.html#commit-files" rel="prev" title="commit files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="commitinfo"></a>
+<div class="header">
+<p>
+Next: <a href="verifymsg.html#verifymsg" accesskey="n" 
rel="next">verifymsg</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Commitinfo"></a>
+<h4 class="appendixsubsec">C.4.1 Commitinfo</h4>
+<a name="index-commitinfo"></a>
+<a name="index-Commits_002c-precommit-verification-of"></a>
+<a name="index-Precommit-checking"></a>
+
+<p>The <samp>commitinfo</samp> file defines programs to execute
+whenever &lsquo;<samp>cvs commit</samp>&rsquo; is about to execute.  These
+programs are used for pre-commit checking to verify
+that the modified, added and removed files are really
+ready to be committed.  This could be used, for
+instance, to verify that the changed files conform to
+to your site&rsquo;s standards for coding practice.
+</p>
+<p>As mentioned earlier, each line in the
+<samp>commitinfo</samp> file consists of a regular expression
+and a command-line template.  The template can include
+a program name and any number of arguments you wish to
+supply to it.  The full path to the current source
+repository is appended to the template, followed by the
+file names of any files involved in the commit (added,
+removed, and modified files).
+</p>
+<a name="index-Exit-status_002c-of-commitinfo"></a>
+<p>The first line with a regular expression matching the
+directory within the repository will be used.  If the
+command returns a non-zero exit status the commit will
+be aborted.
+</p>
+<a name="index-DEFAULT-in-commitinfo"></a>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<a name="index-ALL-in-commitinfo"></a>
+<p>All occurrences of the name &lsquo;<samp>ALL</samp>&rsquo; appearing as a
+regular expression are used in addition to the first
+matching regular expression or the name &lsquo;<samp>DEFAULT</samp>&rsquo;.
+</p>
+<a name="index-commitinfo_002c-working-directory"></a>
+<a name="index-commitinfo_002c-command-environment"></a>
+<p>The command will be run in the root of the workspace
+containing the new versions of any files the user would like
+to modify (commit), <em>or in a copy of the workspace on
+the server (see <a href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a>)</em>.  If a file is
+being removed, there will be no copy of the file under the
+current directory.  If a file is being added, there will be
+no corresponding archive file in the repository unless the
+file is being resurrected.
+</p>
+<p>Note that both the repository directory and the corresponding
+Attic (see <a href="Attic.html#Attic">Attic</a>) directory may need to be 
checked to
+locate the archive file corresponding to any given file being
+committed.  Much of the information about the specific commit
+request being made, including the destination branch, commit
+message, and command line options specified, is not available
+to the command.
+</p>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="verifymsg.html#verifymsg" accesskey="n" 
rel="next">verifymsg</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/config.html
===================================================================
RCS file: html_node/config.html
diff -N html_node/config.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/config.html       28 Dec 2015 15:58:18 -0000      1.1
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: config</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: config">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
config">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="Environment-variables.html#Environment-variables" rel="next" 
title="Environment variables">
+<link href="Variables.html#Variables" rel="prev" title="Variables">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="config"></a>
+<div class="header">
+<p>
+Previous: <a href="Variables.html#Variables" accesskey="p" 
rel="prev">Variables</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-CVSROOT_002fconfig-configuration-file"></a>
+<h3 class="appendixsec">C.11 The CVSROOT/config configuration file</h3>
+
+<a name="index-config_002c-in-CVSROOT"></a>
+<a name="index-CVSROOT_002fconfig"></a>
+
+<p>The administrative file <samp>config</samp> contains various
+miscellaneous settings which affect the behavior of
+<small>CVS</small>.  The syntax is slightly different from the
+other administrative files.  Variables are not
+expanded.  Lines which start with &lsquo;<samp>#</samp>&rsquo; are
+considered comments.
+Other lines consist of a keyword, &lsquo;<samp>=</samp>&rsquo;, and a
+value.  Note that this syntax is very strict.
+Extraneous spaces or tabs are not permitted.
+</p>
+<p>Currently defined keywords are:
+</p>
+<dl compact="compact">
+<dd><a name="index-RCSBIN_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>RCSBIN=<var>bindir</var></code></dt>
+<dd><p>For <small>CVS</small> 1.9.12 through 1.9.18, this setting told
+<small>CVS</small> to look for <small>RCS</small> programs in the
+<var>bindir</var> directory.  Current versions of <small>CVS</small>
+do not run <small>RCS</small> programs; for compatibility this
+setting is accepted, but it does nothing.
+</p>
+<a name="index-SystemAuth_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>SystemAuth=<var>value</var></code></dt>
+<dd><p>If <var>value</var> is &lsquo;<samp>yes</samp>&rsquo;, then pserver 
should check
+for users in the system&rsquo;s user database if not found in
+<samp>CVSROOT/passwd</samp>.  If it is &lsquo;<samp>no</samp>&rsquo;, then all
+pserver users must exist in <samp>CVSROOT/passwd</samp>.
+The default is &lsquo;<samp>yes</samp>&rsquo;.  For more on pserver, see
+<a href="Password-authenticated.html#Password-authenticated">Password 
authenticated</a>.
+</p>
+
+<a name="index-TopLevelAdmin_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>TopLevelAdmin=<var>value</var></code></dt>
+<dd><p>Modify the &lsquo;<samp>checkout</samp>&rsquo; command to create a
+&lsquo;<samp>CVS</samp>&rsquo; directory at the top level of the new
+working directory, in addition to &lsquo;<samp>CVS</samp>&rsquo;
+directories created within checked-out directories.
+The default value is &lsquo;<samp>no</samp>&rsquo;.
+</p>
+<p>This option is useful if you find yourself performing
+many commands at the top level of your working
+directory, rather than in one of the checked out
+subdirectories.  The <samp>CVS</samp> directory created there
+will mean you don&rsquo;t have to specify <code>CVSROOT</code> for
+each command.  It also provides a place for the
+<samp>CVS/Template</samp> file (see <a 
href="Working-directory-storage.html#Working-directory-storage">Working 
directory storage</a>).
+</p>
+<a name="index-LockDir_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>LockDir=<var>directory</var></code></dt>
+<dd><p>Put <small>CVS</small> lock files in <var>directory</var> rather than
+directly in the repository.  This is useful if you want
+to let users read from the repository while giving them
+write access only to <var>directory</var>, not to the
+repository.
+It can also be used to put the locks on a very fast
+in-memory file system to speed up locking and unlocking
+the repository.
+You need to create <var>directory</var>, but
+<small>CVS</small> will create subdirectories of <var>directory</var> as it
+needs them.  For information on <small>CVS</small> locks, see
+<a href="Concurrency.html#Concurrency">Concurrency</a>.
+</p>
+<p>Before enabling the LockDir option, make sure that you
+have tracked down and removed any copies of <small>CVS</small> 1.9 or
+older.  Such versions neither support LockDir, nor will
+give an error indicating that they don&rsquo;t support it.
+The result, if this is allowed to happen, is that some
+<small>CVS</small> users will put the locks one place, and others will
+put them another place, and therefore the repository
+could become corrupted.  <small>CVS</small> 1.10 does not support
+LockDir but it will print a warning if run on a
+repository with LockDir enabled.
+</p>
+<a name="index-LogHistory_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>LogHistory=<var>value</var></code></dt>
+<dd><p>Control what is logged to the <samp>CVSROOT/history</samp> file (see <a 
href="history.html#history">history</a>).
+Default of &lsquo;<samp>TOEFWUPCGMAR</samp>&rsquo; (or simply 
&lsquo;<samp>all</samp>&rsquo;) will log
+all transactions.  Any subset of the default is
+legal.  (For example, to only log transactions that modify the
+<samp>*,v</samp> files, use &lsquo;<samp>LogHistory=TMAR</samp>&rsquo;.)
+</p>
+<a name="index-RereadLogAfterVerify_002c-in-CVSROOT_002fconfig"></a>
+<a name="index-verifymsg_002c-changing-the-log-message-1"></a>
+</dd>
+<dt><code>RereadLogAfterVerify=<var>value</var></code></dt>
+<dd><p>Modify the &lsquo;<samp>commit</samp>&rsquo; command such that CVS will 
reread the
+log message after running the program specified by <samp>verifymsg</samp>.
+<var>value</var> may be one of &lsquo;<samp>yes</samp>&rsquo; or 
&lsquo;<samp>always</samp>&rsquo;, indicating that
+the log message should always be reread; &lsquo;<samp>no</samp>&rsquo;
+or &lsquo;<samp>never</samp>&rsquo;, indicating that it should never be
+reread; or <var>value</var> may be &lsquo;<samp>stat</samp>&rsquo;, indicating
+that the file should be checked with the file system
+&lsquo;<samp>stat()</samp>&rsquo; function to see if it has changed (see 
warning below)
+before rereading.  The default value is &lsquo;<samp>always</samp>&rsquo;.
+</p>
+<p><strong>The &lsquo;stat&rsquo; mode can cause CVS to pause for up to
+one extra second per directory committed.  This can be less IO and
+CPU intensive but is not recommended for use with large repositories</strong>
+</p>
+<p>See <a href="verifymsg.html#verifymsg">verifymsg</a>, for more information 
on how verifymsg
+may be used.
+</p>
+<a name="index-IgnoreUnknownConfigKeys_002c-in-CVSROOT_002fconfig"></a>
+</dd>
+<dt><code>IgnoreUnknownConfigKeys=<var>value</var></code></dt>
+<dd><p>If <var>value</var> is &lsquo;<samp>yes</samp>&rsquo;, then 
<small>CVS</small> should
+ignore any keywords in <samp>CVSROOT/config</samp> which it
+does not recognize. This option is intended primarily
+for transitions between versions of <small>CVS</small> which
+support more configuration options in an environment
+where a read-only mirror of the current <small>CVS</small> server
+may be maintained by someone else who is not yet ready
+to upgrade to the same version. It is recommended that
+this option be used only for a short time so that
+problems with the <samp>CVSROOT/config</samp> file will be
+found quickly. The default is &lsquo;<samp>no</samp>&rsquo;.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="Variables.html#Variables" accesskey="p" 
rel="prev">Variables</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/cvsignore.html
===================================================================
RCS file: html_node/cvsignore.html
diff -N html_node/cvsignore.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/cvsignore.html    28 Dec 2015 15:58:18 -0000      1.1
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: cvsignore</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: cvsignore">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
cvsignore">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="checkoutlist.html#checkoutlist" rel="next" title="checkoutlist">
+<link href="taginfo.html#taginfo" rel="prev" title="taginfo">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="cvsignore"></a>
+<div class="header">
+<p>
+Next: <a href="checkoutlist.html#checkoutlist" accesskey="n" 
rel="next">checkoutlist</a>, Previous: <a href="taginfo.html#taginfo" 
accesskey="p" rel="prev">taginfo</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Ignoring-files-via-cvsignore"></a>
+<h3 class="appendixsec">C.7 Ignoring files via cvsignore</h3>
+<a name="index-cvsignore-_0028admin-file_0029_002c-global"></a>
+<a name="index-Global-cvsignore"></a>
+<a name="index-Ignoring-files"></a>
+
+<p>There are certain file names that frequently occur
+inside your working copy, but that you don&rsquo;t want to
+put under <small>CVS</small> control.  Examples are all the object
+files that you get while you compile your sources.
+Normally, when you run &lsquo;<samp>cvs update</samp>&rsquo;, it prints a
+line for each file it encounters that it doesn&rsquo;t know
+about (see <a href="update-output.html#update-output">update output</a>).
+</p>
+<p><small>CVS</small> has a list of files (or sh(1) file name patterns)
+that it should ignore while running <code>update</code>,
+<code>import</code> and <code>release</code>.
+This list is constructed in the following way.
+</p>
+<ul>
+<li> The list is initialized to include certain file name
+patterns: names associated with <small>CVS</small>
+administration, or with other common source control
+systems; common names for patch files, object files,
+archive files, and editor backup files; and other names
+that are usually artifacts of assorted utilities.
+Currently, the default list of ignored file name
+patterns is:
+
+<a name="index-Ignored-files"></a>
+<a name="index-Automatically-ignored-files"></a>
+<div class="example">
+<pre class="example">    RCS     SCCS    CVS     CVS.adm
+    RCSLOG  cvslog.*
+    tags    TAGS
+    .make.state     .nse_depinfo
+    *~      #*      .#*     ,*      _$*     *$
+    *.old   *.bak   *.BAK   *.orig  *.rej   .del-*
+    *.a     *.olb   *.o     *.obj   *.so    *.exe
+    *.Z     *.elc   *.ln
+    core
+</pre></div>
+
+</li><li> The per-repository list in
+<samp>$CVSROOT/CVSROOT/cvsignore</samp> is appended to
+the list, if that file exists.
+
+</li><li> The per-user list in <samp>.cvsignore</samp> in your home
+directory is appended to the list, if it exists.
+
+</li><li> Any entries in the environment variable
+<code>$CVSIGNORE</code> is appended to the list.
+
+</li><li> Any &lsquo;<samp>-I</samp>&rsquo; options given to 
<small>CVS</small> is appended.
+
+</li><li> As <small>CVS</small> traverses through your directories, the 
contents
+of any <samp>.cvsignore</samp> will be appended to the list.
+The patterns found in <samp>.cvsignore</samp> are only valid
+for the directory that contains them, not for
+any sub-directories.
+</li></ul>
+
+<p>In any of the 5 places listed above, a single
+exclamation mark (&lsquo;<samp>!</samp>&rsquo;) clears the ignore list.
+This can be used if you want to store any file which
+normally is ignored by <small>CVS</small>.
+</p>
+<p>Specifying &lsquo;<samp>-I !</samp>&rsquo; to <code>cvs import</code> will 
import
+everything, which is generally what you want to do if
+you are importing files from a pristine distribution or
+any other source which is known to not contain any
+extraneous files.  However, looking at the rules above
+you will see there is a fly in the ointment; if the
+distribution contains any <samp>.cvsignore</samp> files, then
+the patterns from those files will be processed even if
+&lsquo;<samp>-I !</samp>&rsquo; is specified.  The only workaround is to
+remove the <samp>.cvsignore</samp> files in order to do the
+import.  Because this is awkward, in the future
+&lsquo;<samp>-I !</samp>&rsquo; might be modified to override
+<samp>.cvsignore</samp> files in each directory.
+</p>
+<p>Note that the syntax of the ignore files consists of a
+series of lines, each of which contains a space
+separated list of filenames.  This offers no clean way
+to specify filenames which contain spaces, but you can
+use a workaround like <samp>foo?bar</samp> to match a file
+named <samp>foo bar</samp> (it also matches <samp>fooxbar</samp>
+and the like).  Also note that there is currently no
+way to specify comments.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="checkoutlist.html#checkoutlist" accesskey="n" 
rel="next">checkoutlist</a>, Previous: <a href="taginfo.html#taginfo" 
accesskey="p" rel="prev">taginfo</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/diff-examples.html
===================================================================
RCS file: html_node/diff-examples.html
diff -N html_node/diff-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/diff-examples.html        28 Dec 2015 15:58:19 -0000      1.1
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: diff examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: diff examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
diff examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="diff.html#diff" rel="up" title="diff">
+<link href="export.html#export" rel="next" title="export">
+<link href="Line-formats.html#Line-formats" rel="prev" title="Line formats">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="diff-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="diff-options.html#diff-options" accesskey="p" 
rel="prev">diff options</a>, Up: <a href="diff.html#diff" accesskey="u" 
rel="up">diff</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="diff-examples-1"></a>
+<h4 class="appendixsubsec">A.11.2 diff examples</h4>
+
+<p>The following line produces a Unidiff (&lsquo;<samp>-u</samp>&rsquo; flag)
+between revision 1.14 and 1.19 of
+<samp>backend.c</samp>.  Due to the &lsquo;<samp>-kk</samp>&rsquo; flag no
+keywords are substituted, so differences that only depend
+on keyword substitution are ignored.
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
+</pre></div>
+
+<p>Suppose the experimental branch EXPR1 was based on a
+set of files tagged RELEASE_1_0.  To see what has
+happened on that branch, the following can be used:
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -r RELEASE_1_0 -r EXPR1
+</pre></div>
+
+<p>A command like this can be used to produce a context
+diff between two releases:
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 &gt; diffs
+</pre></div>
+
+<p>If you are maintaining ChangeLogs, a command like the following
+just before you commit your changes may help you write
+the ChangeLog entry.  All local modifications that have
+not yet been committed will be printed.
+</p>
+<div class="example">
+<pre class="example">$ cvs diff -u | less
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/diff-options.html
===================================================================
RCS file: html_node/diff-options.html
diff -N html_node/diff-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/diff-options.html 28 Dec 2015 15:58:19 -0000      1.1
@@ -0,0 +1,393 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: diff options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: diff options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
diff options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="diff.html#diff" rel="up" title="diff">
+<link href="Line-group-formats.html#Line-group-formats" rel="next" title="Line 
group formats">
+<link href="diff.html#diff" rel="prev" title="diff">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="diff-options"></a>
+<div class="header">
+<p>
+Next: <a href="diff-examples.html#diff-examples" accesskey="n" rel="next">diff 
examples</a>, Up: <a href="diff.html#diff" accesskey="u" rel="up">diff</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="diff-options-1"></a>
+<h4 class="appendixsubsec">A.11.1 diff options</h4>
+
+<p>These standard options are supported by <code>diff</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+See &lsquo;<samp>-r</samp>&rsquo; for how this affects the comparison.
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Examine directories recursively.  This option is on by
+default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Compare with revision <var>tag</var>.  Zero, one or two
+&lsquo;<samp>-r</samp>&rsquo; options can be present.  With no 
&lsquo;<samp>-r</samp>&rsquo;
+option, the working file will be compared with the
+revision it was based on.  With one &lsquo;<samp>-r</samp>&rsquo;, that
+revision will be compared to your current working file.
+With two &lsquo;<samp>-r</samp>&rsquo; options those two revisions will be
+compared (and your working file will not affect the
+outcome in any way).
+</p>
+<p>One or both &lsquo;<samp>-r</samp>&rsquo; options can be replaced by a
+&lsquo;<samp>-D <var>date</var></samp>&rsquo; option, described above.
+</p></dd>
+</dl>
+
+<p>The following options specify the format of the
+output.  They have the same meaning as in GNU diff.
+Most options have two equivalent names, one of which is a single letter
+preceded by &lsquo;<samp>-</samp>&rsquo;, and the other of which is a long 
name preceded by
+&lsquo;<samp>--</samp>&rsquo;.
+</p>
+<dl compact="compact">
+<dt>&lsquo;<samp>-<var>lines</var></samp>&rsquo;</dt>
+<dd><p>Show <var>lines</var> (an integer) lines of context.  This option does 
not
+specify an output format by itself; it has no effect unless it is
+combined with &lsquo;<samp>-c</samp>&rsquo; or &lsquo;<samp>-u</samp>&rsquo;.  
This option is obsolete.  For proper
+operation, <code>patch</code> typically needs at least two lines of context.
+</p>
+</dd>
+<dt>&lsquo;<samp>-a</samp>&rsquo;</dt>
+<dd><p>Treat all files as text and compare them line-by-line, even if they
+do not seem to be text.
+</p>
+</dd>
+<dt>&lsquo;<samp>-b</samp>&rsquo;</dt>
+<dd><p>Ignore trailing white space and consider all other sequences of one or
+more white space characters to be equivalent.
+</p>
+</dd>
+<dt>&lsquo;<samp>-B</samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete blank lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>--binary</samp>&rsquo;</dt>
+<dd><p>Read and write data in binary mode.
+</p>
+</dd>
+<dt>&lsquo;<samp>--brief</samp>&rsquo;</dt>
+<dd><p>Report only whether the files differ, not the details of the
+differences.
+</p>
+</dd>
+<dt>&lsquo;<samp>-c</samp>&rsquo;</dt>
+<dd><p>Use the context output format.
+</p>
+</dd>
+<dt>&lsquo;<samp>-C <var>lines</var></samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--context<span class="roman">[</span>=<var>lines</var><span 
class="roman">]</span></samp>&rsquo;</dt>
+<dd><p>Use the context output format, showing <var>lines</var> (an integer) 
lines of
+context, or three if <var>lines</var> is not given.
+For proper operation, <code>patch</code> typically needs at least two lines of
+context.
+</p>
+</dd>
+<dt>&lsquo;<samp>--changed-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line group containing differing lines 
from
+both files in if-then-else format.  See <a 
href="Line-group-formats.html#Line-group-formats">Line group formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-d</samp>&rsquo;</dt>
+<dd><p>Change the algorithm to perhaps find a smaller set of changes.  This 
makes
+<code>diff</code> slower (sometimes much slower).
+</p>
+</dd>
+<dt>&lsquo;<samp>-e</samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--ed</samp>&rsquo;</dt>
+<dd><p>Make output that is a valid <code>ed</code> script.
+</p>
+</dd>
+<dt>&lsquo;<samp>--expand-tabs</samp>&rsquo;</dt>
+<dd><p>Expand tabs to spaces in the output, to preserve the alignment of tabs
+in the input files.
+</p>
+</dd>
+<dt>&lsquo;<samp>-f</samp>&rsquo;</dt>
+<dd><p>Make output that looks vaguely like an <code>ed</code> script but has 
changes
+in the order they appear in the file.
+</p>
+</dd>
+<dt>&lsquo;<samp>-F <var>regexp</var></samp>&rsquo;</dt>
+<dd><p>In context and unified format, for each hunk of differences, show some
+of the last preceding line that matches <var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--forward-ed</samp>&rsquo;</dt>
+<dd><p>Make output that looks vaguely like an <code>ed</code> script but has 
changes
+in the order they appear in the file.
+</p>
+</dd>
+<dt>&lsquo;<samp>-H</samp>&rsquo;</dt>
+<dd><p>Use heuristics to speed handling of large files that have numerous
+scattered small changes.
+</p>
+</dd>
+<dt>&lsquo;<samp>--horizon-lines=<var>lines</var></samp>&rsquo;</dt>
+<dd><p>Do not discard the last <var>lines</var> lines of the common prefix
+and the first <var>lines</var> lines of the common suffix.
+</p>
+</dd>
+<dt>&lsquo;<samp>-i</samp>&rsquo;</dt>
+<dd><p>Ignore changes in case; consider upper- and lower-case letters
+equivalent.
+</p>
+</dd>
+<dt>&lsquo;<samp>-I <var>regexp</var></samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete lines that match 
<var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ifdef=<var>name</var></samp>&rsquo;</dt>
+<dd><p>Make merged if-then-else output using <var>name</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-all-space</samp>&rsquo;</dt>
+<dd><p>Ignore white space when comparing lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-blank-lines</samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete blank lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-case</samp>&rsquo;</dt>
+<dd><p>Ignore changes in case; consider upper- and lower-case to be the same.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-matching-lines=<var>regexp</var></samp>&rsquo;</dt>
+<dd><p>Ignore changes that just insert or delete lines that match 
<var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--ignore-space-change</samp>&rsquo;</dt>
+<dd><p>Ignore trailing white space and consider all other sequences of one or
+more white space characters to be equivalent.
+</p>
+</dd>
+<dt>&lsquo;<samp>--initial-tab</samp>&rsquo;</dt>
+<dd><p>Output a tab rather than a space before the text of a line in normal or
+context format.  This causes the alignment of tabs in the line to look
+normal.
+</p>
+</dd>
+<dt>&lsquo;<samp>-L <var>label</var></samp>&rsquo;</dt>
+<dd><p>Use <var>label</var> instead of the file name in the context format
+and unified format headers.
+</p>
+</dd>
+<dt>&lsquo;<samp>--label=<var>label</var></samp>&rsquo;</dt>
+<dd><p>Use <var>label</var> instead of the file name in the context format
+and unified format headers.
+</p>
+</dd>
+<dt>&lsquo;<samp>--left-column</samp>&rsquo;</dt>
+<dd><p>Print only the left column of two common lines in side by side format.
+</p>
+</dd>
+<dt>&lsquo;<samp>--line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output all input lines in if-then-else format.
+See <a href="Line-formats.html#Line-formats">Line formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--minimal</samp>&rsquo;</dt>
+<dd><p>Change the algorithm to perhaps find a smaller set of changes.  This
+makes <code>diff</code> slower (sometimes much slower).
+</p>
+</dd>
+<dt>&lsquo;<samp>-n</samp>&rsquo;</dt>
+<dd><p>Output RCS-format diffs; like &lsquo;<samp>-f</samp>&rsquo; except that 
each command
+specifies the number of lines affected.
+</p>
+</dd>
+<dt>&lsquo;<samp>-N</samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--new-file</samp>&rsquo;</dt>
+<dd><p>In directory comparison, if a file is found in only one directory,
+treat it as present but empty in the other directory.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a group of lines taken from just the 
second
+file in if-then-else format.  See <a 
href="Line-group-formats.html#Line-group-formats">Line group formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--new-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line taken from just the second file 
in
+if-then-else format.  See <a href="Line-formats.html#Line-formats">Line 
formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--old-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a group of lines taken from just the 
first
+file in if-then-else format.  See <a 
href="Line-group-formats.html#Line-group-formats">Line group formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--old-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line taken from just the first file in
+if-then-else format.  See <a href="Line-formats.html#Line-formats">Line 
formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-p</samp>&rsquo;</dt>
+<dd><p>Show which C function each change is in.
+</p>
+</dd>
+<dt>&lsquo;<samp>--rcs</samp>&rsquo;</dt>
+<dd><p>Output RCS-format diffs; like &lsquo;<samp>-f</samp>&rsquo; except that 
each command
+specifies the number of lines affected.
+</p>
+</dd>
+<dt>&lsquo;<samp>--report-identical-files</samp>&rsquo;</dt>
+<dt>&lsquo;<samp>-s</samp>&rsquo;</dt>
+<dd><p>Report when two files are the same.
+</p>
+</dd>
+<dt>&lsquo;<samp>--show-c-function</samp>&rsquo;</dt>
+<dd><p>Show which C function each change is in.
+</p>
+</dd>
+<dt>&lsquo;<samp>--show-function-line=<var>regexp</var></samp>&rsquo;</dt>
+<dd><p>In context and unified format, for each hunk of differences, show some
+of the last preceding line that matches <var>regexp</var>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--side-by-side</samp>&rsquo;</dt>
+<dd><p>Use the side by side output format.
+</p>
+</dd>
+<dt>&lsquo;<samp>--speed-large-files</samp>&rsquo;</dt>
+<dd><p>Use heuristics to speed handling of large files that have numerous
+scattered small changes.
+</p>
+</dd>
+<dt>&lsquo;<samp>--suppress-common-lines</samp>&rsquo;</dt>
+<dd><p>Do not print common lines in side by side format.
+</p>
+</dd>
+<dt>&lsquo;<samp>-t</samp>&rsquo;</dt>
+<dd><p>Expand tabs to spaces in the output, to preserve the alignment of tabs
+in the input files.
+</p>
+</dd>
+<dt>&lsquo;<samp>-T</samp>&rsquo;</dt>
+<dd><p>Output a tab rather than a space before the text of a line in normal or
+context format.  This causes the alignment of tabs in the line to look
+normal.
+</p>
+</dd>
+<dt>&lsquo;<samp>--text</samp>&rsquo;</dt>
+<dd><p>Treat all files as text and compare them line-by-line, even if they
+do not appear to be text.
+</p>
+</dd>
+<dt>&lsquo;<samp>-u</samp>&rsquo;</dt>
+<dd><p>Use the unified output format.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-group-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a group of common lines taken from both 
files
+in if-then-else format.  See <a 
href="Line-group-formats.html#Line-group-formats">Line group formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>--unchanged-line-format=<var>format</var></samp>&rsquo;</dt>
+<dd><p>Use <var>format</var> to output a line common to both files in 
if-then-else
+format.  See <a href="Line-formats.html#Line-formats">Line formats</a>.
+</p>
+</dd>
+<dt>&lsquo;<samp>-U <var>lines</var></samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--unified<span class="roman">[</span>=<var>lines</var><span 
class="roman">]</span></samp>&rsquo;</dt>
+<dd><p>Use the unified output format, showing <var>lines</var> (an integer) 
lines of
+context, or three if <var>lines</var> is not given.
+For proper operation, <code>patch</code> typically needs at least two lines of
+context.
+</p>
+</dd>
+<dt>&lsquo;<samp>-w</samp>&rsquo;</dt>
+<dd><p>Ignore white space when comparing lines.
+</p>
+</dd>
+<dt>&lsquo;<samp>-W <var>columns</var></samp>&rsquo;</dt>
+<dt>&lsquo;<samp>--width=<var>columns</var></samp>&rsquo;</dt>
+<dd><p>Use an output width of <var>columns</var> in side by side format.
+</p>
+</dd>
+<dt>&lsquo;<samp>-y</samp>&rsquo;</dt>
+<dd><p>Use the side by side output format.
+</p></dd>
+</dl>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Line-group-formats.html#Line-group-formats" accesskey="1">Line group 
formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Line group 
formats
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Line-formats.html#Line-formats" accesskey="2">Line 
formats</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Line formats
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="diff-examples.html#diff-examples" accesskey="n" rel="next">diff 
examples</a>, Up: <a href="diff.html#diff" accesskey="u" rel="up">diff</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/diff.html
===================================================================
RCS file: html_node/diff.html
diff -N html_node/diff.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/diff.html 28 Dec 2015 15:58:20 -0000      1.1
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: diff</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: diff">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
diff">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="diff-options.html#diff-options" rel="next" title="diff options">
+<link href="commit-examples.html#commit-examples" rel="prev" title="commit 
examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="diff"></a>
+<div class="header">
+<p>
+Next: <a href="export.html#export" accesskey="n" rel="next">export</a>, 
Previous: <a href="commit.html#commit" accesskey="p" rel="prev">commit</a>, Up: 
<a href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS 
commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="diff_002d_002d_002dShow-differences-between-revisions"></a>
+<h3 class="appendixsec">A.11 diff&mdash;Show differences between revisions</h3>
+<a name="index-diff-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: diff [-lR] [-k kflag] [format_options] [[-r rev1 | -D date1] 
[-r rev2 |  -D date2]] [files&hellip;]
+</li><li> Requires: working directory, repository.
+</li><li> Changes: nothing.
+</li></ul>
+
+<p>The <code>diff</code> command is used to compare different
+revisions of files.  The default action is to compare
+your working files with the revisions they were based
+on, and report any differences that are found.
+</p>
+<p>If any file names are given, only those files are
+compared.  If any directories are given, all files
+under them will be compared.
+</p>
+<p>The exit status for diff is different than for other
+<small>CVS</small> commands; for details See <a 
href="Exit-status.html#Exit-status">Exit status</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="diff-options.html#diff-options" accesskey="1">diff 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">diff options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="diff-examples.html#diff-examples" accesskey="2">diff 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">diff 
examples
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/editinfo-example.html
===================================================================
RCS file: html_node/editinfo-example.html
diff -N html_node/editinfo-example.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/editinfo-example.html     28 Dec 2015 15:58:20 -0000      1.1
@@ -0,0 +1,114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: editinfo example</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: editinfo example">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
editinfo example">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="editinfo.html#editinfo" rel="up" title="editinfo">
+<link href="loginfo.html#loginfo" rel="next" title="loginfo">
+<link href="editinfo.html#editinfo" rel="prev" title="editinfo">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="editinfo-example"></a>
+<div class="header">
+<p>
+Up: <a href="editinfo.html#editinfo" accesskey="u" rel="up">editinfo</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Editinfo-example"></a>
+<h4 class="appendixsubsubsec">C.4.3.1 Editinfo example</h4>
+
+<p>The following is a little silly example of a
+<samp>editinfo</samp> file, together with the corresponding
+<samp>rcsinfo</samp> file, the log message template and an
+editor script.  We begin with the log message template.
+We want to always record a bug-id number on the first
+line of the log message.  The rest of log message is
+free text.  The following template is found in the file
+<samp>/usr/cvssupport/tc.template</samp>.
+</p>
+<div class="example">
+<pre class="example">BugId:
+</pre></div>
+
+<p>The script <samp>/usr/cvssupport/bugid.edit</samp> is used to
+edit the log message.
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+#
+#       bugid.edit filename
+#
+#  Call $EDITOR on FILENAME, and verify that the
+#  resulting file contains a valid bugid on the first
+#  line.
+if [ &quot;x$EDITOR&quot; = &quot;x&quot; ]; then EDITOR=vi; fi
+if [ &quot;x$CVSEDITOR&quot; = &quot;x&quot; ]; then CVSEDITOR=$EDITOR; fi
+$CVSEDITOR $1
+until head -1|grep '^BugId:[ ]*[0-9][0-9]*$' &lt; $1
+do  echo -n  &quot;No BugId found.  Edit again? ([y]/n)&quot;
+    read ans
+    case ${ans} in
+        n*) exit 1;;
+    esac
+    $CVSEDITOR $1
+done
+</pre></div>
+
+<p>The <samp>editinfo</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/bugid.edit
+</pre></div>
+
+<p>The <samp>rcsinfo</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/tc.template
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/editinfo.html
===================================================================
RCS file: html_node/editinfo.html
diff -N html_node/editinfo.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/editinfo.html     28 Dec 2015 15:58:21 -0000      1.1
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: editinfo</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: editinfo">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
editinfo">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="commit-files.html#commit-files" rel="up" title="commit files">
+<link href="editinfo-example.html#editinfo-example" rel="next" title="editinfo 
example">
+<link href="verifymsg.html#verifymsg" rel="prev" title="verifymsg">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="editinfo"></a>
+<div class="header">
+<p>
+Next: <a href="loginfo.html#loginfo" accesskey="n" rel="next">loginfo</a>, 
Previous: <a href="verifymsg.html#verifymsg" accesskey="p" 
rel="prev">verifymsg</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Editinfo"></a>
+<h4 class="appendixsubsec">C.4.3 Editinfo</h4>
+<a name="index-editinfo-_0028admin-file_0029"></a>
+<a name="index-Editor_002c-specifying-per-module"></a>
+<a name="index-Per_002dmodule-editor"></a>
+<a name="index-Log-messages_002c-editing"></a>
+
+<p><strong>The <samp>editinfo</samp> feature has been
+rendered obsolete.  To set a default editor for log
+messages use the <code>CVSEDITOR</code>, <code>EDITOR</code> environment 
variables
+(see <a href="Environment-variables.html#Environment-variables">Environment 
variables</a>) or the &lsquo;<samp>-e</samp>&rsquo; global
+option (see <a href="Global-options.html#Global-options">Global options</a>).  
See <a href="verifymsg.html#verifymsg">verifymsg</a>,
+for information on the use of the <samp>verifymsg</samp>
+feature for evaluating log messages.</strong>
+</p>
+<p>If you want to make sure that all log messages look the
+same way, you can use the <samp>editinfo</samp> file to
+specify a program that is used to edit the log message.
+This program could be a custom-made editor that always
+enforces a certain style of the log message, or maybe a
+simple shell script that calls an editor, and checks
+that the entered message contains the required fields.
+</p>
+<p>If no matching line is found in the <samp>editinfo</samp>
+file, the editor specified in the environment variable
+<code>$CVSEDITOR</code> is used instead.  If that variable is
+not set, then the environment variable <code>$EDITOR</code>
+is used instead.  If that variable is not
+set a default will be used.  See <a 
href="Committing-your-changes.html#Committing-your-changes">Committing your 
changes</a>.
+</p>
+<p>The <samp>editinfo</samp> file is often most useful together
+with the <samp>rcsinfo</samp> file, which can be used to
+specify a log message template.
+</p>
+<p>Each line in the <samp>editinfo</samp> file consists of a
+regular expression and a command-line template.  The
+template must include a program name, and can include
+any number of arguments.  The full path to the current
+log message template file is appended to the template.
+</p>
+<p>One thing that should be noted is that the &lsquo;<samp>ALL</samp>&rsquo;
+keyword is not supported.  If more than one matching
+line is found, the first one is used.  This can be
+useful for specifying a default edit script in a
+module, and then overriding it in a subdirectory.
+</p>
+<a name="index-DEFAULT-in-editinfo"></a>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<p>If the edit script exits with a non-zero exit status,
+the commit is aborted.
+</p>
+<p>Note: when <small>CVS</small> is accessing a remote repository,
+or when the &lsquo;<samp>-m</samp>&rsquo; or &lsquo;<samp>-F</samp>&rsquo; 
options to <code>cvs
+commit</code> are used, <samp>editinfo</samp> will not be consulted.
+There is no good workaround for this; use
+<samp>verifymsg</samp> instead.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="editinfo-example.html#editinfo-example" accesskey="1">editinfo 
example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Editinfo 
example
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="loginfo.html#loginfo" accesskey="n" rel="next">loginfo</a>, 
Previous: <a href="verifymsg.html#verifymsg" accesskey="p" 
rel="prev">verifymsg</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/export-options.html
===================================================================
RCS file: html_node/export-options.html
diff -N html_node/export-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/export-options.html       28 Dec 2015 15:58:21 -0000      1.1
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: export options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: export options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
export options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="export.html#export" rel="up" title="export">
+<link href="history.html#history" rel="next" title="history">
+<link href="export.html#export" rel="prev" title="export">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="export-options"></a>
+<div class="header">
+<p>
+Up: <a href="export.html#export" accesskey="u" rel="up">export</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="export-options-1"></a>
+<h4 class="appendixsubsec">A.12.1 export options</h4>
+
+<p>These standard options are supported by <code>export</code>
+(see <a href="Common-options.html#Common-options">Common options</a>, for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>If no matching revision is found, retrieve the most
+recent revision (instead of ignoring the file).
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Do not run any checkout program.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Export directories recursively.  This is on by default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Use revision <var>tag</var>.
+</p></dd>
+</dl>
+
+<p>In addition, these options (that are common to
+<code>checkout</code> and <code>export</code>) are also supported:
+</p>
+<dl compact="compact">
+<dt><code>-d <var>dir</var></code></dt>
+<dd><p>Create a directory called <var>dir</var> for the working
+files, instead of using the module name.
+See <a href="checkout-options.html#checkout-options">checkout options</a> for 
complete details on how
+<small>CVS</small> handles this flag.
+</p>
+</dd>
+<dt><code>-k <var>subst</var></code></dt>
+<dd><p>Set keyword expansion mode (see <a 
href="Substitution-modes.html#Substitution-modes">Substitution modes</a>).
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Only useful together with &lsquo;<samp>-d <var>dir</var></samp>&rsquo;.
+See <a href="checkout-options.html#checkout-options">checkout options</a> for 
complete details on how
+<small>CVS</small> handles this flag.
+</p></dd>
+</dl>
+
+
+
+
+
+</body>
+</html>

Index: html_node/export.html
===================================================================
RCS file: html_node/export.html
diff -N html_node/export.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/export.html       28 Dec 2015 15:58:22 -0000      1.1
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: export</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: export">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
export">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="export-options.html#export-options" rel="next" title="export 
options">
+<link href="diff-examples.html#diff-examples" rel="prev" title="diff examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="export"></a>
+<div class="header">
+<p>
+Next: <a href="history.html#history" accesskey="n" rel="next">history</a>, 
Previous: <a href="diff.html#diff" accesskey="p" rel="prev">diff</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a 
name="export_002d_002d_002dExport-sources-from-CVS_002c-similar-to-checkout"></a>
+<h3 class="appendixsec">A.12 export&mdash;Export sources from CVS, similar to 
checkout</h3>
+<a name="index-export-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: export [-flNnR] [-r rev|-D date] [-k subst] [-d dir] 
module&hellip;
+</li><li> Requires: repository.
+</li><li> Changes: current directory.
+</li></ul>
+
+<p>This command is a variant of <code>checkout</code>; use it
+when you want a copy of the source for module without
+the <small>CVS</small> administrative directories.  For example, you
+might use <code>export</code> to prepare source for shipment
+off-site.  This command requires that you specify a
+date or tag (with &lsquo;<samp>-D</samp>&rsquo; or 
&lsquo;<samp>-r</samp>&rsquo;), so that you
+can count on reproducing the source you ship to others
+(and thus it always prunes empty directories).
+</p>
+<p>One often would like to use &lsquo;<samp>-kv</samp>&rsquo; with <code>cvs
+export</code>.  This causes any keywords to be
+expanded such that an import done at some other site
+will not lose the keyword revision information.  But be
+aware that doesn&rsquo;t handle an export containing binary
+files correctly.  Also be aware that after having used
+&lsquo;<samp>-kv</samp>&rsquo;, one can no longer use the <code>ident</code>
+command (which is part of the <small>RCS</small> suite&mdash;see
+ident(1)) which looks for keyword strings.  If
+you want to be able to use <code>ident</code> you must not
+use &lsquo;<samp>-kv</samp>&rsquo;.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="export-options.html#export-options" accesskey="1">export 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">export 
options
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/history-database.html
===================================================================
RCS file: html_node/history-database.html
diff -N html_node/history-database.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/history-database.html     28 Dec 2015 15:58:22 -0000      1.1
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: history database</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: history database">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
history database">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="History-browsing.html#History-browsing" rel="up" title="History 
browsing">
+<link href="user_002ddefined-logging.html#user_002ddefined-logging" rel="next" 
title="user-defined logging">
+<link href="log-messages.html#log-messages" rel="prev" title="log messages">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="history-database"></a>
+<div class="header">
+<p>
+Next: <a href="user_002ddefined-logging.html#user_002ddefined-logging" 
accesskey="n" rel="next">user-defined logging</a>, Previous: <a 
href="log-messages.html#log-messages" accesskey="p" rel="prev">log 
messages</a>, Up: <a href="History-browsing.html#History-browsing" 
accesskey="u" rel="up">History browsing</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-history-database"></a>
+<h3 class="section">8.2 The history database</h3>
+
+<p>You can use the history file (see <a 
href="history-file.html#history-file">history file</a>) to
+log various <small>CVS</small> actions.  To retrieve the
+information from the history file, use the <code>cvs
+history</code> command (see <a href="history.html#history">history</a>).
+</p>
+<p>Note: you can control what is logged to this file by using the
+&lsquo;<samp>LogHistory</samp>&rsquo; keyword in the 
<samp>CVSROOT/config</samp> file
+(see <a href="config.html#config">config</a>).
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/history-file.html
===================================================================
RCS file: html_node/history-file.html
diff -N html_node/history-file.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/history-file.html 28 Dec 2015 15:58:22 -0000      1.1
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: history file</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: history file">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
history file">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="Variables.html#Variables" rel="next" title="Variables">
+<link href="checkoutlist.html#checkoutlist" rel="prev" title="checkoutlist">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="history-file"></a>
+<div class="header">
+<p>
+Next: <a href="Variables.html#Variables" accesskey="n" 
rel="next">Variables</a>, Previous: <a href="checkoutlist.html#checkoutlist" 
accesskey="p" rel="prev">checkoutlist</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-history-file"></a>
+<h3 class="appendixsec">C.9 The history file</h3>
+<a name="index-History-file"></a>
+<a name="index-Log-information_002c-saving"></a>
+
+<p>The file <samp>$CVSROOT/CVSROOT/history</samp> is used
+to log information for the <code>history</code> command
+(see <a href="history.html#history">history</a>).  This file must be created 
to turn
+on logging.  This is done automatically if the
+<code>cvs init</code> command is used to set up the
+repository (see <a 
href="Creating-a-repository.html#Creating-a-repository">Creating a 
repository</a>).
+</p>
+<p>The file format of the <samp>history</samp> file is
+documented only in comments in the <small>CVS</small> source
+code, but generally programs should use the <code>cvs
+history</code> command to access it anyway, in case the
+format changes with future releases of <small>CVS</small>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/history-options.html
===================================================================
RCS file: html_node/history-options.html
diff -N html_node/history-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/history-options.html      28 Dec 2015 15:58:23 -0000      1.1
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: history options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: history options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
history options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="history.html#history" rel="up" title="history">
+<link href="import.html#import" rel="next" title="import">
+<link href="history.html#history" rel="prev" title="history">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="history-options"></a>
+<div class="header">
+<p>
+Up: <a href="history.html#history" accesskey="u" rel="up">history</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="history-options-1"></a>
+<h4 class="appendixsubsec">A.13.1 history options</h4>
+
+<p>Several options (shown above as &lsquo;<samp>-report</samp>&rsquo;)  
control  what
+kind of report is generated:
+</p>
+<dl compact="compact">
+<dt><code>-c</code></dt>
+<dd><p>Report on each time commit was used (i.e., each time
+the repository was modified).
+</p>
+</dd>
+<dt><code>-e</code></dt>
+<dd><p>Everything (all record types).  Equivalent to
+specifying &lsquo;<samp>-x</samp>&rsquo; with all record types.  Of course,
+&lsquo;<samp>-e</samp>&rsquo; will also include record types which are
+added in a future version of <small>CVS</small>; if you are
+writing a script which can only handle certain record
+types, you&rsquo;ll want to specify &lsquo;<samp>-x</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-m <var>module</var></code></dt>
+<dd><p>Report on a particular module.  (You can meaningfully
+use &lsquo;<samp>-m</samp>&rsquo; more than once on the command line.)
+</p>
+</dd>
+<dt><code>-o</code></dt>
+<dd><p>Report on checked-out modules.  This is the default report type.
+</p>
+</dd>
+<dt><code>-T</code></dt>
+<dd><p>Report on all tags.
+</p>
+</dd>
+<dt><code>-x <var>type</var></code></dt>
+<dd><p>Extract a particular set of record types <var>type</var> from the 
<small>CVS</small>
+history.  The types are indicated by single letters,
+which you may specify in combination.
+</p>
+<p>Certain commands have a single record type:
+</p>
+<dl compact="compact">
+<dt><code>F</code></dt>
+<dd><p>release
+</p></dd>
+<dt><code>O</code></dt>
+<dd><p>checkout
+</p></dd>
+<dt><code>E</code></dt>
+<dd><p>export
+</p></dd>
+<dt><code>T</code></dt>
+<dd><p>rtag
+</p></dd>
+</dl>
+
+<p>One of five record types may result from an update:
+</p>
+<dl compact="compact">
+<dt><code>C</code></dt>
+<dd><p>A merge was necessary but collisions were
+detected (requiring manual merging).
+</p></dd>
+<dt><code>G</code></dt>
+<dd><p>A merge was necessary and it succeeded.
+</p></dd>
+<dt><code>U</code></dt>
+<dd><p>A working file was copied from the repository.
+</p></dd>
+<dt><code>P</code></dt>
+<dd><p>A working file was patched to match the repository.
+</p></dd>
+<dt><code>W</code></dt>
+<dd><p>The working copy of a file was deleted during
+update (because it was gone from the repository).
+</p></dd>
+</dl>
+
+<p>One of three record types results from commit:
+</p>
+<dl compact="compact">
+<dt><code>A</code></dt>
+<dd><p>A file was added for the first time.
+</p></dd>
+<dt><code>M</code></dt>
+<dd><p>A file was modified.
+</p></dd>
+<dt><code>R</code></dt>
+<dd><p>A file was removed.
+</p></dd>
+</dl>
+</dd>
+</dl>
+
+<p>The options shown as &lsquo;<samp>-flags</samp>&rsquo; constrain or expand
+the report without requiring option arguments:
+</p>
+<dl compact="compact">
+<dt><code>-a</code></dt>
+<dd><p>Show data for all users (the default is to show data
+only for the user executing <code>history</code>).
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Show last modification only.
+</p>
+</dd>
+<dt><code>-w</code></dt>
+<dd><p>Show only the records for modifications done from the
+same working directory where <code>history</code> is
+executing.
+</p></dd>
+</dl>
+
+<p>The options shown as &lsquo;<samp>-options <var>args</var></samp>&rsquo; 
constrain the report
+based on an argument:
+</p>
+<dl compact="compact">
+<dt><code>-b <var>str</var></code></dt>
+<dd><p>Show data back to a record containing  the  string
+<var>str</var>  in  either the module name, the file name, or
+the repository path.
+</p>
+</dd>
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Show data since <var>date</var>.  This is slightly different
+from the normal use of &lsquo;<samp>-D <var>date</var></samp>&rsquo;, which
+selects the newest revision older than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f <var>file</var></code></dt>
+<dd><p>Show data for a particular file
+(you can specify several &lsquo;<samp>-f</samp>&rsquo; options on the same 
command line).
+This is equivalent to specifying the file on the command line.
+</p>
+</dd>
+<dt><code>-n <var>module</var></code></dt>
+<dd><p>Show data for a particular module
+(you can specify several &lsquo;<samp>-n</samp>&rsquo; options on the same 
command line).
+</p>
+</dd>
+<dt><code>-p <var>repository</var></code></dt>
+<dd><p>Show data for a particular source repository  (you
+can specify several &lsquo;<samp>-p</samp>&rsquo; options on the same command
+line).
+</p>
+</dd>
+<dt><code>-r <var>rev</var></code></dt>
+<dd><p>Show records referring to revisions since the revision
+or tag named <var>rev</var> appears in individual <small>RCS</small>
+files.  Each <small>RCS</small> file is searched for the revision or
+tag.
+</p>
+</dd>
+<dt><code>-t <var>tag</var></code></dt>
+<dd><p>Show records since tag <var>tag</var> was last added to the
+history file.  This differs from the &lsquo;<samp>-r</samp>&rsquo; flag
+above in that it reads only the history file, not the
+<small>RCS</small> files, and is much faster.
+</p>
+</dd>
+<dt><code>-u <var>name</var></code></dt>
+<dd><p>Show records for user <var>name</var>.
+</p>
+</dd>
+<dt><code>-z <var>timezone</var></code></dt>
+<dd><p>Show times in the selected records using the specified
+time zone instead of UTC.
+</p></dd>
+</dl>
+
+
+<hr>
+<div class="header">
+<p>
+Up: <a href="history.html#history" accesskey="u" rel="up">history</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/history.html
===================================================================
RCS file: html_node/history.html
diff -N html_node/history.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/history.html      28 Dec 2015 15:58:23 -0000      1.1
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: history</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: history">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
history">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="history-options.html#history-options" rel="next" title="history 
options">
+<link href="export-options.html#export-options" rel="prev" title="export 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="history"></a>
+<div class="header">
+<p>
+Next: <a href="import.html#import" accesskey="n" rel="next">import</a>, 
Previous: <a href="export.html#export" accesskey="p" rel="prev">export</a>, Up: 
<a href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS 
commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="history_002d_002d_002dShow-status-of-files-and-users"></a>
+<h3 class="appendixsec">A.13 history&mdash;Show status of files and users</h3>
+<a name="index-history-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis:     history [-report] [-flags] [-options args] [files&hellip;]
+</li><li> Requires: the file <samp>$CVSROOT/CVSROOT/history</samp>
+</li><li> Changes: nothing.
+</li></ul>
+
+<p><small>CVS</small> can keep a history file that tracks each use of the
+<code>checkout</code>, <code>commit</code>, <code>rtag</code>,
+<code>update</code>, and <code>release</code> commands.  You can
+use <code>history</code> to display this information in
+various formats.
+</p>
+<p>Logging must be enabled by creating the file
+<samp>$CVSROOT/CVSROOT/history</samp>.
+</p>
+<p><strong><code>history</code> uses &lsquo;<samp>-f</samp>&rsquo;, 
&lsquo;<samp>-l</samp>&rsquo;,
+&lsquo;<samp>-n</samp>&rsquo;, and &lsquo;<samp>-p</samp>&rsquo; in ways that 
conflict with the
+normal use inside <small>CVS</small> (see <a 
href="Common-options.html#Common-options">Common options</a>).</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="history-options.html#history-options" accesskey="1">history 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">history 
options
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/import-examples.html
===================================================================
RCS file: html_node/import-examples.html
diff -N html_node/import-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/import-examples.html      28 Dec 2015 15:58:23 -0000      1.1
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: import examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: import examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
import examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="import.html#import" rel="up" title="import">
+<link href="log.html#log" rel="next" title="log">
+<link href="import-output.html#import-output" rel="prev" title="import output">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="import-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="import-output.html#import-output" accesskey="p" 
rel="prev">import output</a>, Up: <a href="import.html#import" accesskey="u" 
rel="up">import</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="import-examples-1"></a>
+<h4 class="appendixsubsec">A.14.3 import examples</h4>
+
+<p>See <a href="Tracking-sources.html#Tracking-sources">Tracking sources</a>, 
and <a href="From-files.html#From-files">From files</a>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/import-options.html
===================================================================
RCS file: html_node/import-options.html
diff -N html_node/import-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/import-options.html       28 Dec 2015 15:58:24 -0000      1.1
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: import options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: import options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
import options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="import.html#import" rel="up" title="import">
+<link href="import-output.html#import-output" rel="next" title="import output">
+<link href="import.html#import" rel="prev" title="import">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="import-options"></a>
+<div class="header">
+<p>
+Next: <a href="import-output.html#import-output" accesskey="n" 
rel="next">import output</a>, Up: <a href="import.html#import" accesskey="u" 
rel="up">import</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="import-options-1"></a>
+<h4 class="appendixsubsec">A.14.1 import options</h4>
+
+<p>This standard option is supported by <code>import</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description):
+</p>
+<dl compact="compact">
+<dt><code>-m <var>message</var></code></dt>
+<dd><p>Use <var>message</var> as log information, instead of
+invoking an editor.
+</p></dd>
+</dl>
+
+<p>There are the following additional special options.
+</p>
+<dl compact="compact">
+<dt><code>-b <var>branch</var></code></dt>
+<dd><p>See <a 
href="Multiple-vendor-branches.html#Multiple-vendor-branches">Multiple vendor 
branches</a>.
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Use each file&rsquo;s modification time as the time of import
+rather than the current time.
+</p>
+</dd>
+<dt><code>-k <var>subst</var></code></dt>
+<dd><p>Indicate the keyword expansion mode desired.  This
+setting will apply to all files created during the
+import, but not to any files that previously existed in
+the repository.  See <a 
href="Substitution-modes.html#Substitution-modes">Substitution modes</a> for a
+list of valid &lsquo;<samp>-k</samp>&rsquo; settings.
+</p>
+</dd>
+<dt><code>-I <var>name</var></code></dt>
+<dd><p>Specify file names that should be ignored during
+import.  You can use this option repeatedly.  To avoid
+ignoring any files at all (even those ignored by
+default), specify &lsquo;-I !&rsquo;.
+</p>
+<p><var>name</var> can be a file name pattern of the same type
+that you can specify in the <samp>.cvsignore</samp> file.
+See <a href="cvsignore.html#cvsignore">cvsignore</a>.
+</p>
+</dd>
+<dt><code>-W <var>spec</var></code></dt>
+<dd><p>Specify file names that should be filtered during
+import.  You can use this option repeatedly.
+</p>
+<p><var>spec</var> can be a file name pattern of the same type
+that you can specify in the <samp>.cvswrappers</samp>
+file. See <a href="Wrappers.html#Wrappers">Wrappers</a>.
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/import-output.html
===================================================================
RCS file: html_node/import-output.html
diff -N html_node/import-output.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/import-output.html        28 Dec 2015 15:58:24 -0000      1.1
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: import output</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: import output">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
import output">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="import.html#import" rel="up" title="import">
+<link href="import-examples.html#import-examples" rel="next" title="import 
examples">
+<link href="import-options.html#import-options" rel="prev" title="import 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="import-output"></a>
+<div class="header">
+<p>
+Next: <a href="import-examples.html#import-examples" accesskey="n" 
rel="next">import examples</a>, Previous: <a 
href="import-options.html#import-options" accesskey="p" rel="prev">import 
options</a>, Up: <a href="import.html#import" accesskey="u" rel="up">import</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="import-output-1"></a>
+<h4 class="appendixsubsec">A.14.2 import output</h4>
+
+<p><code>import</code> keeps you informed of its progress by printing a line
+for each file, preceded by one character indicating the status of the file:
+</p>
+<dl compact="compact">
+<dt><code>U <var>file</var></code></dt>
+<dd><p>The file already exists in the repository and has not been locally
+modified; a new revision has been created (if necessary).
+</p>
+</dd>
+<dt><code>N <var>file</var></code></dt>
+<dd><p>The file is a new file which has been added to the repository.
+</p>
+</dd>
+<dt><code>C <var>file</var></code></dt>
+<dd><p>The file already exists in the repository but has been locally modified;
+you will have to merge the changes.
+</p>
+</dd>
+<dt><code>I <var>file</var></code></dt>
+<dd><p>The file is being ignored (see <a 
href="cvsignore.html#cvsignore">cvsignore</a>).
+</p>
+<a name="index-Symbolic-link_002c-importing"></a>
+<a name="index-Link_002c-symbolic_002c-importing"></a>
+</dd>
+<dt><code>L <var>file</var></code></dt>
+<dd><p>The file is a symbolic link; <code>cvs import</code> ignores symbolic 
links.
+People periodically suggest that this behavior should
+be changed, but if there is a consensus on what it
+should be changed to, it doesn&rsquo;t seem to be apparent.
+(Various options in the <samp>modules</samp> file can be used
+to recreate symbolic links on checkout, update, etc.;
+see <a href="modules.html#modules">modules</a>.)
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/import.html
===================================================================
RCS file: html_node/import.html
diff -N html_node/import.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/import.html       28 Dec 2015 15:58:24 -0000      1.1
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: import</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: import">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
import">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="import-options.html#import-options" rel="next" title="import 
options">
+<link href="history-options.html#history-options" rel="prev" title="history 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="import"></a>
+<div class="header">
+<p>
+Next: <a href="log.html#log" accesskey="n" rel="next">log</a>, Previous: <a 
href="history.html#history" accesskey="p" rel="prev">history</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a 
name="import_002d_002d_002dImport-sources-into-CVS_002c-using-vendor-branches"></a>
+<h3 class="appendixsec">A.14 import&mdash;Import sources into CVS, using 
vendor branches</h3>
+<a name="index-import-_0028subcommand_0029"></a>
+
+
+<ul>
+<li> Synopsis: import [-options] repository vendortag releasetag&hellip;
+</li><li> Requires: Repository, source distribution directory.
+</li><li> Changes: repository.
+</li></ul>
+
+<p>Use <code>import</code> to incorporate an entire source
+distribution from an outside source (e.g., a source
+vendor) into your source repository directory.  You can
+use this command both for initial creation of a
+repository, and for wholesale updates to the module
+from the outside source.  See <a 
href="Tracking-sources.html#Tracking-sources">Tracking sources</a> for
+a discussion on this subject.
+</p>
+<p>The <var>repository</var> argument gives a directory name
+(or a path to a directory) under the <small>CVS</small> root directory
+for repositories; if the directory did not exist,
+import creates it.
+</p>
+<p>When you use import for updates to source that has been
+modified in your source repository (since a prior
+import), it will notify you of any files that conflict
+in the two branches of development; use &lsquo;<samp>checkout
+-j</samp>&rsquo; to reconcile the differences, as import instructs
+you to do.
+</p>
+<p>If <small>CVS</small> decides a file should be ignored
+(see <a href="cvsignore.html#cvsignore">cvsignore</a>), it does not import it 
and prints
+&lsquo;<samp>I </samp>&rsquo; followed by the filename (see <a 
href="import-output.html#import-output">import output</a> for a
+complete description of the output).
+</p>
+<p>If the file <samp>$CVSROOT/CVSROOT/cvswrappers</samp> exists,
+any file whose names match the specifications in that
+file will be treated as packages and the appropriate
+filtering will be performed on the file/directory
+before being imported.  See <a href="Wrappers.html#Wrappers">Wrappers</a>.
+</p>
+<p>The outside source is saved in a first-level
+branch, by default 1.1.1.  Updates are leaves of this
+branch; for example, files from the first imported
+collection of source will be revision 1.1.1.1, then
+files from the first imported update will be revision
+1.1.1.2, and so on.
+</p>
+<p>At least three arguments are required.
+<var>repository</var> is needed to identify the collection
+of source.  <var>vendortag</var> is a tag for the entire
+branch (e.g., for 1.1.1).  You must also specify at
+least one <var>releasetag</var> to uniquely identify the files at
+the leaves created each time you execute <code>import</code>.  The
+<var>releasetag</var> should be new, not previously existing in the
+repository file, and uniquely identify the imported release,
+</p>
+<p>Note that <code>import</code> does <em>not</em> change the
+directory in which you invoke it.  In particular, it
+does not set up that directory as a <small>CVS</small> working
+directory; if you want to work with the sources import
+them first and then check them out into a different
+directory (see <a href="Getting-the-source.html#Getting-the-source">Getting 
the source</a>).
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="import-options.html#import-options" accesskey="1">import 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">import 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="import-output.html#import-output" accesskey="2">import 
output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">import output
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="import-examples.html#import-examples" accesskey="3">import 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">import 
examples
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="log.html#log" accesskey="n" rel="next">log</a>, Previous: <a 
href="history.html#history" accesskey="p" rel="prev">history</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/index.html
===================================================================
RCS file: html_node/index.html
diff -N html_node/index.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/index.html        28 Dec 2015 15:58:24 -0000      1.1
@@ -0,0 +1,482 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: Top</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: Top">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
Top">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="../dir/index.html" rel="up" title="(dir)">
+<link href="Overview.html#Overview" rel="next" title="Overview">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<h1 class="settitle" align="center">CVS&mdash;Concurrent Versions System 
v1.11.23</h1>
+
+
+
+
+
+
+
+
+
+
+
+
+<a name="SEC_Overview"></a>
+<h2 class="shortcontents-heading">Short Table of Contents</h2>
+
+<div class="shortcontents">
+<ul class="no-bullet">
+<li><a name="stoc-Overview-1" href="#toc-Overview-1">1 Overview</a></li>
+<li><a name="stoc-The-Repository" href="#toc-The-Repository">2 The 
Repository</a></li>
+<li><a name="stoc-Starting-a-project-with-CVS" 
href="#toc-Starting-a-project-with-CVS">3 Starting a project with CVS</a></li>
+<li><a name="stoc-Revisions-1" href="#toc-Revisions-1">4 Revisions</a></li>
+<li><a name="stoc-Branching-and-merging-1" 
href="#toc-Branching-and-merging-1">5 Branching and merging</a></li>
+<li><a name="stoc-Recursive-behavior-1" href="#toc-Recursive-behavior-1">6 
Recursive behavior</a></li>
+<li><a 
name="stoc-Adding_002c-removing_002c-and-renaming-files-and-directories" 
href="#toc-Adding_002c-removing_002c-and-renaming-files-and-directories">7 
Adding, removing, and renaming files and directories</a></li>
+<li><a name="stoc-History-browsing-1" href="#toc-History-browsing-1">8 History 
browsing</a></li>
+<li><a name="stoc-Handling-binary-files" href="#toc-Handling-binary-files">9 
Handling binary files</a></li>
+<li><a name="stoc-Multiple-developers-1" href="#toc-Multiple-developers-1">10 
Multiple developers</a></li>
+<li><a name="stoc-Revision-management-1" href="#toc-Revision-management-1">11 
Revision management</a></li>
+<li><a name="stoc-Keyword-substitution-1" 
href="#toc-Keyword-substitution-1">12 Keyword substitution</a></li>
+<li><a name="stoc-Tracking-third_002dparty-sources" 
href="#toc-Tracking-third_002dparty-sources">13 Tracking third-party 
sources</a></li>
+<li><a name="stoc-How-your-build-system-interacts-with-CVS" 
href="#toc-How-your-build-system-interacts-with-CVS">14 How your build system 
interacts with CVS</a></li>
+<li><a name="stoc-Special-Files-1" href="#toc-Special-Files-1">15 Special 
Files</a></li>
+<li><a name="stoc-Guide-to-CVS-commands" 
href="#toc-Guide-to-CVS-commands">Appendix A Guide to CVS commands</a></li>
+<li><a name="stoc-Quick-reference-to-CVS-commands" 
href="#toc-Quick-reference-to-CVS-commands">Appendix B Quick reference to CVS 
commands</a></li>
+<li><a name="stoc-Reference-manual-for-Administrative-files" 
href="#toc-Reference-manual-for-Administrative-files">Appendix C Reference 
manual for Administrative files</a></li>
+<li><a name="stoc-All-environment-variables-which-affect-CVS" 
href="#toc-All-environment-variables-which-affect-CVS">Appendix D All 
environment variables which affect CVS</a></li>
+<li><a name="stoc-Compatibility-between-CVS-Versions" 
href="#toc-Compatibility-between-CVS-Versions">Appendix E Compatibility between 
CVS Versions</a></li>
+<li><a name="stoc-Troubleshooting-1" href="#toc-Troubleshooting-1">Appendix F 
Troubleshooting</a></li>
+<li><a name="stoc-Credits-1" href="#toc-Credits-1">Appendix G Credits</a></li>
+<li><a name="stoc-Dealing-with-bugs-in-CVS-or-this-manual" 
href="#toc-Dealing-with-bugs-in-CVS-or-this-manual">Appendix H Dealing with 
bugs in CVS or this manual</a></li>
+<li><a name="stoc-Index-1" href="#toc-Index-1">Index</a></li>
+</ul>
+</div>
+
+
+<a name="SEC_Contents"></a>
+<h2 class="contents-heading">Table of Contents</h2>
+
+<div class="contents">
+
+<ul class="no-bullet">
+  <li><a name="toc-Overview-1" href="Overview.html#Overview">1 Overview</a>
+  <ul class="no-bullet">
+    <li><a name="toc-What-is-CVS_003f-1" 
href="What-is-CVS_003f.html#What-is-CVS_003f">1.1 What is CVS?</a></li>
+    <li><a name="toc-What-is-CVS-not_003f-1" 
href="What-is-CVS-not_003f.html#What-is-CVS-not_003f">1.2 What is CVS 
not?</a></li>
+    <li><a name="toc-A-sample-session-1" 
href="A-sample-session.html#A-sample-session">1.3 A sample session</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Getting-the-source-1" 
href="Getting-the-source.html#Getting-the-source">1.3.1 Getting the 
source</a></li>
+      <li><a name="toc-Committing-your-changes-1" 
href="Committing-your-changes.html#Committing-your-changes">1.3.2 Committing 
your changes</a></li>
+      <li><a name="toc-Cleaning-up-1" 
href="Cleaning-up.html#Cleaning-up">1.3.3 Cleaning up</a></li>
+      <li><a name="toc-Viewing-differences-1" 
href="Viewing-differences.html#Viewing-differences">1.3.4 Viewing 
differences</a></li>
+    </ul></li>
+  </ul></li>
+  <li><a name="toc-The-Repository" href="Repository.html#Repository">2 The 
Repository</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Telling-CVS-where-your-repository-is" 
href="Specifying-a-repository.html#Specifying-a-repository">2.1 Telling CVS 
where your repository is</a></li>
+    <li><a name="toc-How-data-is-stored-in-the-repository" 
href="Repository-storage.html#Repository-storage">2.2 How data is stored in the 
repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Where-files-are-stored-within-the-repository" 
href="Repository-files.html#Repository-files">2.2.1 Where files are stored 
within the repository</a></li>
+      <li><a name="toc-File-permissions-1" 
href="File-permissions.html#File-permissions">2.2.2 File permissions</a></li>
+      <li><a name="toc-File-Permission-issues-specific-to-Windows" 
href="Windows-permissions.html#Windows-permissions">2.2.3 File Permission 
issues specific to Windows</a></li>
+      <li><a name="toc-The-attic" href="Attic.html#Attic">2.2.4 The 
attic</a></li>
+      <li><a name="toc-The-CVS-directory-in-the-repository" 
href="CVS-in-repository.html#CVS-in-repository">2.2.5 The CVS directory in the 
repository</a></li>
+      <li><a name="toc-CVS-locks-in-the-repository" 
href="Locks.html#Locks">2.2.6 CVS locks in the repository</a></li>
+      <li><a name="toc-How-files-are-stored-in-the-CVSROOT-directory" 
href="CVSROOT-storage.html#CVSROOT-storage">2.2.7 How files are stored in the 
CVSROOT directory</a></li>
+    </ul></li>
+    <li><a name="toc-How-data-is-stored-in-the-working-directory" 
href="Working-directory-storage.html#Working-directory-storage">2.3 How data is 
stored in the working directory</a></li>
+    <li><a name="toc-The-administrative-files" 
href="Intro-administrative-files.html#Intro-administrative-files">2.4 The 
administrative files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Editing-administrative-files" 
href="Intro-administrative-files.html#Editing-administrative-files">2.4.1 
Editing administrative files</a></li>
+    </ul></li>
+    <li><a name="toc-Multiple-repositories-1" 
href="Multiple-repositories.html#Multiple-repositories">2.5 Multiple 
repositories</a></li>
+    <li><a name="toc-Creating-a-repository-1" 
href="Creating-a-repository.html#Creating-a-repository">2.6 Creating a 
repository</a></li>
+    <li><a name="toc-Backing-up-a-repository" 
href="Backing-up.html#Backing-up">2.7 Backing up a repository</a></li>
+    <li><a name="toc-Moving-a-repository-1" 
href="Moving-a-repository.html#Moving-a-repository">2.8 Moving a 
repository</a></li>
+    <li><a name="toc-Remote-repositories-1" 
href="Remote-repositories.html#Remote-repositories">2.9 Remote repositories</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Server-requirements-1" 
href="Server-requirements.html#Server-requirements">2.9.1 Server 
requirements</a></li>
+      <li><a name="toc-Connecting-with-rsh-or-ssh" 
href="Connecting-via-rsh.html#Connecting-via-rsh">2.9.2 Connecting with rsh or 
ssh</a></li>
+      <li><a name="toc-Direct-connection-with-password-authentication" 
href="Password-authenticated.html#Password-authenticated">2.9.3 Direct 
connection with password authentication</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Setting-up-the-server-for-password-authentication" 
href="Password-authentication-server.html#Password-authentication-server">2.9.3.1
 Setting up the server for password authentication</a></li>
+        <li><a name="toc-Using-the-client-with-password-authentication" 
href="Password-authentication-client.html#Password-authentication-client">2.9.3.2
 Using the client with password authentication</a></li>
+        <li><a name="toc-Security-considerations-with-password-authentication" 
href="Password-authentication-security.html#Password-authentication-security">2.9.3.3
 Security considerations with password authentication</a></li>
+      </ul></li>
+      <li><a name="toc-Direct-connection-with-GSSAPI" 
href="GSSAPI-authenticated.html#GSSAPI-authenticated">2.9.4 Direct connection 
with GSSAPI</a></li>
+      <li><a name="toc-Direct-connection-with-Kerberos" 
href="Kerberos-authenticated.html#Kerberos-authenticated">2.9.5 Direct 
connection with Kerberos</a></li>
+      <li><a name="toc-Connecting-with-fork" 
href="Connecting-via-fork.html#Connecting-via-fork">2.9.6 Connecting with 
fork</a></li>
+    </ul></li>
+    <li><a name="toc-Read_002donly-repository-access" 
href="Read_002donly-access.html#Read_002donly-access">2.10 Read-only repository 
access</a></li>
+    <li><a name="toc-Temporary-directories-for-the-server" 
href="Server-temporary-directory.html#Server-temporary-directory">2.11 
Temporary directories for the server</a></li>
+  </ul></li>
+  <li><a name="toc-Starting-a-project-with-CVS" 
href="Starting-a-new-project.html#Starting-a-new-project">3 Starting a project 
with CVS</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Setting-up-the-files-1" 
href="Setting-up-the-files.html#Setting-up-the-files">3.1 Setting up the 
files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Creating-a-directory-tree-from-a-number-of-files" 
href="From-files.html#From-files">3.1.1 Creating a directory tree from a number 
of files</a></li>
+      <li><a name="toc-Creating-Files-From-Other-Version-Control-Systems" 
href="From-other-version-control-systems.html#From-other-version-control-systems">3.1.2
 Creating Files From Other Version Control Systems</a></li>
+      <li><a name="toc-Creating-a-directory-tree-from-scratch" 
href="From-scratch.html#From-scratch">3.1.3 Creating a directory tree from 
scratch</a></li>
+    </ul></li>
+    <li><a name="toc-Defining-the-module-1" 
href="Defining-the-module.html#Defining-the-module">3.2 Defining the 
module</a></li>
+  </ul></li>
+  <li><a name="toc-Revisions-1" href="Revisions.html#Revisions">4 Revisions</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Revision-numbers-1" 
href="Revision-numbers.html#Revision-numbers">4.1 Revision numbers</a></li>
+    <li><a name="toc-Versions_002c-revisions-and-releases" 
href="Versions-revisions-releases.html#Versions-revisions-releases">4.2 
Versions, revisions and releases</a></li>
+    <li><a name="toc-Assigning-revisions-1" 
href="Assigning-revisions.html#Assigning-revisions">4.3 Assigning 
revisions</a></li>
+    <li><a name="toc-Tags_002d_002dSymbolic-revisions" 
href="Tags.html#Tags">4.4 Tags&ndash;Symbolic revisions</a></li>
+    <li><a name="toc-Specifying-what-to-tag-from-the-working-directory" 
href="Tagging-the-working-directory.html#Tagging-the-working-directory">4.5 
Specifying what to tag from the working directory</a></li>
+    <li><a name="toc-Specifying-what-to-tag-by-date-or-revision" 
href="Tagging-by-date_002ftag.html#Tagging-by-date_002ftag">4.6 Specifying what 
to tag by date or revision</a></li>
+    <li><a name="toc-Deleting_002c-moving_002c-and-renaming-tags" 
href="Modifying-tags.html#Modifying-tags">4.7 Deleting, moving, and renaming 
tags</a></li>
+    <li><a name="toc-Tagging-and-adding-and-removing-files" 
href="Tagging-add_002fremove.html#Tagging-add_002fremove">4.8 Tagging and 
adding and removing files</a></li>
+    <li><a name="toc-Sticky-tags-1" href="Sticky-tags.html#Sticky-tags">4.9 
Sticky tags</a></li>
+  </ul></li>
+  <li><a name="toc-Branching-and-merging-1" 
href="Branching-and-merging.html#Branching-and-merging">5 Branching and 
merging</a>
+  <ul class="no-bullet">
+    <li><a name="toc-What-branches-are-good-for" 
href="Branches-motivation.html#Branches-motivation">5.1 What branches are good 
for</a></li>
+    <li><a name="toc-Creating-a-branch-1" 
href="Creating-a-branch.html#Creating-a-branch">5.2 Creating a branch</a></li>
+    <li><a name="toc-Accessing-branches-1" 
href="Accessing-branches.html#Accessing-branches">5.3 Accessing 
branches</a></li>
+    <li><a name="toc-Branches-and-revisions-1" 
href="Branches-and-revisions.html#Branches-and-revisions">5.4 Branches and 
revisions</a></li>
+    <li><a name="toc-Magic-branch-numbers-1" 
href="Magic-branch-numbers.html#Magic-branch-numbers">5.5 Magic branch 
numbers</a></li>
+    <li><a name="toc-Merging-an-entire-branch" 
href="Merging-a-branch.html#Merging-a-branch">5.6 Merging an entire 
branch</a></li>
+    <li><a name="toc-Merging-from-a-branch-several-times" 
href="Merging-more-than-once.html#Merging-more-than-once">5.7 Merging from a 
branch several times</a></li>
+    <li><a name="toc-Merging-differences-between-any-two-revisions" 
href="Merging-two-revisions.html#Merging-two-revisions">5.8 Merging differences 
between any two revisions</a></li>
+    <li><a name="toc-Merging-can-add-or-remove-files" 
href="Merging-adds-and-removals.html#Merging-adds-and-removals">5.9 Merging can 
add or remove files</a></li>
+    <li><a name="toc-Merging-and-keywords-1" 
href="Merging-and-keywords.html#Merging-and-keywords">5.10 Merging and 
keywords</a></li>
+  </ul></li>
+  <li><a name="toc-Recursive-behavior-1" 
href="Recursive-behavior.html#Recursive-behavior">6 Recursive behavior</a></li>
+  <li><a 
name="toc-Adding_002c-removing_002c-and-renaming-files-and-directories" 
href="Adding-and-removing.html#Adding-and-removing">7 Adding, removing, and 
renaming files and directories</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Adding-files-to-a-directory" 
href="Adding-files.html#Adding-files">7.1 Adding files to a directory</a></li>
+    <li><a name="toc-Removing-files-1" 
href="Removing-files.html#Removing-files">7.2 Removing files</a></li>
+    <li><a name="toc-Removing-directories-1" 
href="Removing-directories.html#Removing-directories">7.3 Removing 
directories</a></li>
+    <li><a name="toc-Moving-and-renaming-files" 
href="Moving-files.html#Moving-files">7.4 Moving and renaming files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-The-Normal-way-to-Rename" 
href="Outside.html#Outside">7.4.1 The Normal way to Rename</a></li>
+      <li><a name="toc-Moving-the-history-file" 
href="Inside.html#Inside">7.4.2 Moving the history file</a></li>
+      <li><a name="toc-Copying-the-history-file" 
href="Rename-by-copying.html#Rename-by-copying">7.4.3 Copying the history 
file</a></li>
+    </ul></li>
+    <li><a name="toc-Moving-and-renaming-directories" 
href="Moving-directories.html#Moving-directories">7.5 Moving and renaming 
directories</a></li>
+  </ul></li>
+  <li><a name="toc-History-browsing-1" 
href="History-browsing.html#History-browsing">8 History browsing</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Log-messages" href="log-messages.html#log-messages">8.1 
Log messages</a></li>
+    <li><a name="toc-The-history-database" 
href="history-database.html#history-database">8.2 The history database</a></li>
+    <li><a name="toc-User_002ddefined-logging" 
href="user_002ddefined-logging.html#user_002ddefined-logging">8.3 User-defined 
logging</a></li>
+  </ul></li>
+  <li><a name="toc-Handling-binary-files" 
href="Binary-files.html#Binary-files">9 Handling binary files</a>
+  <ul class="no-bullet">
+    <li><a name="toc-The-issues-with-binary-files" 
href="Binary-why.html#Binary-why">9.1 The issues with binary files</a></li>
+    <li><a name="toc-How-to-store-binary-files" 
href="Binary-howto.html#Binary-howto">9.2 How to store binary files</a></li>
+  </ul></li>
+  <li><a name="toc-Multiple-developers-1" 
href="Multiple-developers.html#Multiple-developers">10 Multiple developers</a>
+  <ul class="no-bullet">
+    <li><a name="toc-File-status-1" href="File-status.html#File-status">10.1 
File status</a></li>
+    <li><a name="toc-Bringing-a-file-up-to-date" 
href="Updating-a-file.html#Updating-a-file">10.2 Bringing a file up to 
date</a></li>
+    <li><a name="toc-Conflicts-example-1" 
href="Conflicts-example.html#Conflicts-example">10.3 Conflicts example</a></li>
+    <li><a name="toc-Informing-others-about-commits" 
href="Informing-others.html#Informing-others">10.4 Informing others about 
commits</a></li>
+    <li><a name="toc-Several-developers-simultaneously-attempting-to-run-CVS" 
href="Concurrency.html#Concurrency">10.5 Several developers simultaneously 
attempting to run CVS</a></li>
+    <li><a name="toc-Mechanisms-to-track-who-is-editing-files" 
href="Watches.html#Watches">10.6 Mechanisms to track who is editing files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Telling-CVS-to-watch-certain-files" 
href="Setting-a-watch.html#Setting-a-watch">10.6.1 Telling CVS to watch certain 
files</a></li>
+      <li><a name="toc-Telling-CVS-to-notify-you" 
href="Getting-Notified.html#Getting-Notified">10.6.2 Telling CVS to notify 
you</a></li>
+      <li><a name="toc-How-to-edit-a-file-which-is-being-watched" 
href="Editing-files.html#Editing-files">10.6.3 How to edit a file which is 
being watched</a></li>
+      <li><a name="toc-Information-about-who-is-watching-and-editing" 
href="Watch-information.html#Watch-information">10.6.4 Information about who is 
watching and editing</a></li>
+      <li><a name="toc-Using-watches-with-old-versions-of-CVS" 
href="Watches-Compatibility.html#Watches-Compatibility">10.6.5 Using watches 
with old versions of CVS</a></li>
+    </ul></li>
+    <li><a name="toc-Choosing-between-reserved-or-unreserved-checkouts" 
href="Choosing-a-model.html#Choosing-a-model">10.7 Choosing between reserved or 
unreserved checkouts</a></li>
+  </ul></li>
+  <li><a name="toc-Revision-management-1" 
href="Revision-management.html#Revision-management">11 Revision management</a>
+  <ul class="no-bullet">
+    <li><a name="toc-When-to-commit_003f" 
href="When-to-commit.html#When-to-commit">11.1 When to commit?</a></li>
+  </ul></li>
+  <li><a name="toc-Keyword-substitution-1" 
href="Keyword-substitution.html#Keyword-substitution">12 Keyword 
substitution</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Keyword-List" href="Keyword-list.html#Keyword-list">12.1 
Keyword List</a></li>
+    <li><a name="toc-Using-keywords-1" 
href="Using-keywords.html#Using-keywords">12.2 Using keywords</a></li>
+    <li><a name="toc-Avoiding-substitution-1" 
href="Avoiding-substitution.html#Avoiding-substitution">12.3 Avoiding 
substitution</a></li>
+    <li><a name="toc-Substitution-modes-1" 
href="Substitution-modes.html#Substitution-modes">12.4 Substitution 
modes</a></li>
+    <li><a name="toc-Problems-with-the-_0024Log_0024-keyword_002e" 
href="Log-keyword.html#Log-keyword">12.5 Problems with the $<i></i>Log$ 
keyword.</a></li>
+  </ul></li>
+  <li><a name="toc-Tracking-third_002dparty-sources" 
href="Tracking-sources.html#Tracking-sources">13 Tracking third-party 
sources</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Importing-for-the-first-time" 
href="First-import.html#First-import">13.1 Importing for the first time</a></li>
+    <li><a name="toc-Updating-with-the-import-command" 
href="Update-imports.html#Update-imports">13.2 Updating with the import 
command</a></li>
+    <li><a name="toc-Reverting-to-the-latest-vendor-release" 
href="Reverting-local-changes.html#Reverting-local-changes">13.3 Reverting to 
the latest vendor release</a></li>
+    <li><a name="toc-How-to-handle-binary-files-with-cvs-import" 
href="Binary-files-in-imports.html#Binary-files-in-imports">13.4 How to handle 
binary files with cvs import</a></li>
+    <li><a name="toc-How-to-handle-keyword-substitution-with-cvs-import" 
href="Keywords-in-imports.html#Keywords-in-imports">13.5 How to handle keyword 
substitution with cvs import</a></li>
+    <li><a name="toc-Multiple-vendor-branches-1" 
href="Multiple-vendor-branches.html#Multiple-vendor-branches">13.6 Multiple 
vendor branches</a></li>
+  </ul></li>
+  <li><a name="toc-How-your-build-system-interacts-with-CVS" 
href="Builds.html#Builds">14 How your build system interacts with CVS</a></li>
+  <li><a name="toc-Special-Files-1" href="Special-Files.html#Special-Files">15 
Special Files</a></li>
+  <li><a name="toc-Guide-to-CVS-commands" 
href="CVS-commands.html#CVS-commands">Appendix A Guide to CVS commands</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Overall-structure-of-CVS-commands" 
href="Structure.html#Structure">A.1 Overall structure of CVS commands</a></li>
+    <li><a name="toc-CVS_0027s-exit-status" 
href="Exit-status.html#Exit-status">A.2 CVS&rsquo;s exit status</a></li>
+    <li><a name="toc-Default-options-and-the-_007e_002f_002ecvsrc-file" 
href="_007e_002f_002ecvsrc.html#g_t_007e_002f_002ecvsrc">A.3 Default options 
and the ~/.cvsrc file</a></li>
+    <li><a name="toc-Global-options-1" 
href="Global-options.html#Global-options">A.4 Global options</a></li>
+    <li><a name="toc-Common-command-options" 
href="Common-options.html#Common-options">A.5 Common command options</a></li>
+    <li><a 
name="toc-add_002d_002d_002dAdd-files-and-directories-to-the-repository" 
href="add.html#add">A.6 add&mdash;Add files and directories to the 
repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-add-options-1" 
href="add-options.html#add-options">A.6.1 add options</a></li>
+      <li><a name="toc-add-examples-1" 
href="add-examples.html#add-examples">A.6.2 add examples</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Adding-a-directory" 
href="add-examples.html#Adding-a-directory">A.6.2.1 Adding a directory</a></li>
+        <li><a name="toc-Adding-a-file" 
href="add-examples.html#Adding-a-file">A.6.2.2 Adding a file</a></li>
+        <li><a name="toc-Undoing-a-remove-command" 
href="add-examples.html#Undoing-a-remove-command">A.6.2.3 Undoing a 
<code>remove</code> command</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a name="toc-admin_002d_002d_002dAdministration" 
href="admin.html#admin">A.7 admin&mdash;Administration</a>
+    <ul class="no-bullet">
+      <li><a name="toc-admin-options-1" 
href="admin-options.html#admin-options">A.7.1 admin options</a></li>
+    </ul></li>
+    <li><a 
name="toc-annotate_002d_002d_002dWhat-revision-modified-each-line-of-a-file_003f"
 href="annotate.html#annotate">A.8 annotate&mdash;What revision modified each 
line of a file?</a>
+    <ul class="no-bullet">
+      <li><a name="toc-annotate-options-1" 
href="annotate-options.html#annotate-options">A.8.1 annotate options</a></li>
+      <li><a name="toc-annotate-example-1" 
href="annotate-example.html#annotate-example">A.8.2 annotate example</a></li>
+    </ul></li>
+    <li><a name="toc-checkout_002d_002d_002dCheck-out-sources-for-editing" 
href="checkout.html#checkout">A.9 checkout&mdash;Check out sources for 
editing</a>
+    <ul class="no-bullet">
+      <li><a name="toc-checkout-options-1" 
href="checkout-options.html#checkout-options">A.9.1 checkout options</a></li>
+      <li><a name="toc-checkout-examples-1" 
href="checkout-examples.html#checkout-examples">A.9.2 checkout examples</a></li>
+    </ul></li>
+    <li><a name="toc-commit_002d_002d_002dCheck-files-into-the-repository" 
href="commit.html#commit">A.10 commit&mdash;Check files into the repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-commit-options-1" 
href="commit-options.html#commit-options">A.10.1 commit options</a></li>
+      <li><a name="toc-commit-examples-1" 
href="commit-examples.html#commit-examples">A.10.2 commit examples</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Committing-to-a-branch" 
href="commit-examples.html#Committing-to-a-branch">A.10.2.1 Committing to a 
branch</a></li>
+        <li><a name="toc-Creating-the-branch-after-editing" 
href="commit-examples.html#Creating-the-branch-after-editing">A.10.2.2 Creating 
the branch after editing</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a name="toc-diff_002d_002d_002dShow-differences-between-revisions" 
href="diff.html#diff">A.11 diff&mdash;Show differences between revisions</a>
+    <ul class="no-bullet">
+      <li><a name="toc-diff-options-1" 
href="diff-options.html#diff-options">A.11.1 diff options</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Line-group-formats-1" 
href="Line-group-formats.html#Line-group-formats">A.11.1.1 Line group 
formats</a></li>
+        <li><a name="toc-Line-formats-1" 
href="Line-formats.html#Line-formats">A.11.1.2 Line formats</a></li>
+      </ul></li>
+      <li><a name="toc-diff-examples-1" 
href="diff-examples.html#diff-examples">A.11.2 diff examples</a></li>
+    </ul></li>
+    <li><a 
name="toc-export_002d_002d_002dExport-sources-from-CVS_002c-similar-to-checkout"
 href="export.html#export">A.12 export&mdash;Export sources from CVS, similar 
to checkout</a>
+    <ul class="no-bullet">
+      <li><a name="toc-export-options-1" 
href="export-options.html#export-options">A.12.1 export options</a></li>
+    </ul></li>
+    <li><a name="toc-history_002d_002d_002dShow-status-of-files-and-users" 
href="history.html#history">A.13 history&mdash;Show status of files and 
users</a>
+    <ul class="no-bullet">
+      <li><a name="toc-history-options-1" 
href="history-options.html#history-options">A.13.1 history options</a></li>
+    </ul></li>
+    <li><a 
name="toc-import_002d_002d_002dImport-sources-into-CVS_002c-using-vendor-branches"
 href="import.html#import">A.14 import&mdash;Import sources into CVS, using 
vendor branches</a>
+    <ul class="no-bullet">
+      <li><a name="toc-import-options-1" 
href="import-options.html#import-options">A.14.1 import options</a></li>
+      <li><a name="toc-import-output-1" 
href="import-output.html#import-output">A.14.2 import output</a></li>
+      <li><a name="toc-import-examples-1" 
href="import-examples.html#import-examples">A.14.3 import examples</a></li>
+    </ul></li>
+    <li><a name="toc-log_002d_002d_002dPrint-out-log-information-for-files" 
href="log.html#log">A.15 log&mdash;Print out log information for files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-log-options-1" 
href="log-options.html#log-options">A.15.1 log options</a></li>
+      <li><a name="toc-log-examples-1" 
href="log-examples.html#log-examples">A.15.2 log examples</a></li>
+    </ul></li>
+    <li><a 
name="toc-rdiff_002d_002d_002d_0027patch_0027-format-diffs-between-releases" 
href="rdiff.html#rdiff">A.16 rdiff&mdash;&rsquo;patch&rsquo; format diffs 
between releases</a>
+    <ul class="no-bullet">
+      <li><a name="toc-rdiff-options-1" 
href="rdiff-options.html#rdiff-options">A.16.1 rdiff options</a></li>
+      <li><a name="toc-rdiff-examples-1" 
href="rdiff-examples.html#rdiff-examples">A.16.2 rdiff examples</a></li>
+    </ul></li>
+    <li><a 
name="toc-release_002d_002d_002dIndicate-that-a-Module-is-no-longer-in-use" 
href="release.html#release">A.17 release&mdash;Indicate that a Module is no 
longer in use</a>
+    <ul class="no-bullet">
+      <li><a name="toc-release-options-1" 
href="release-options.html#release-options">A.17.1 release options</a></li>
+      <li><a name="toc-release-output-1" 
href="release-output.html#release-output">A.17.2 release output</a></li>
+      <li><a name="toc-release-examples-1" 
href="release-examples.html#release-examples">A.17.3 release examples</a></li>
+    </ul></li>
+    <li><a name="toc-remove_002d_002d_002dRemove-files-from-active-use" 
href="remove.html#remove">A.18 remove&mdash;Remove files from active use</a>
+    <ul class="no-bullet">
+      <li><a name="toc-remove-options-1" 
href="remove-options.html#remove-options">A.18.1 remove options</a></li>
+      <li><a name="toc-remove-examples-1" 
href="remove-examples.html#remove-examples">A.18.2 remove examples</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Removing-a-file" 
href="remove-examples.html#Removing-a-file">A.18.2.1 Removing a file</a></li>
+        <li><a name="toc-Removing-entire-directories" 
href="remove-examples.html#Removing-entire-directories">A.18.2.2 Removing 
entire directories</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a 
name="toc-update_002d_002d_002dBring-work-tree-in-sync-with-repository" 
href="update.html#update">A.19 update&mdash;Bring work tree in sync with 
repository</a>
+    <ul class="no-bullet">
+      <li><a name="toc-update-options-1" 
href="update-options.html#update-options">A.19.1 update options</a></li>
+      <li><a name="toc-update-output-1" 
href="update-output.html#update-output">A.19.2 update output</a></li>
+    </ul></li>
+  </ul></li>
+  <li><a name="toc-Quick-reference-to-CVS-commands" 
href="Invoking-CVS.html#Invoking-CVS">Appendix B Quick reference to CVS 
commands</a></li>
+  <li><a name="toc-Reference-manual-for-Administrative-files" 
href="Administrative-files.html#Administrative-files">Appendix C Reference 
manual for Administrative files</a>
+  <ul class="no-bullet">
+    <li><a name="toc-The-modules-file" href="modules.html#modules">C.1 The 
modules file</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Alias-modules-1" 
href="Alias-modules.html#Alias-modules">C.1.1 Alias modules</a></li>
+      <li><a name="toc-Regular-modules-1" 
href="Regular-modules.html#Regular-modules">C.1.2 Regular modules</a></li>
+      <li><a name="toc-Ampersand-modules-1" 
href="Ampersand-modules.html#Ampersand-modules">C.1.3 Ampersand modules</a></li>
+      <li><a name="toc-Excluding-directories-1" 
href="Excluding-directories.html#Excluding-directories">C.1.4 Excluding 
directories</a></li>
+      <li><a name="toc-Module-options-1" 
href="Module-options.html#Module-options">C.1.5 Module options</a></li>
+      <li><a 
name="toc-How-the-modules-file-_0060_0060program-options_0027_0027-programs-are-run"
 href="Module-program-options.html#Module-program-options">C.1.6 How the 
modules file &ldquo;program options&rdquo; programs are run</a></li>
+    </ul></li>
+    <li><a name="toc-The-cvswrappers-file" href="Wrappers.html#Wrappers">C.2 
The cvswrappers file</a></li>
+    <li><a name="toc-The-Trigger-Scripts" 
href="Trigger-Scripts.html#Trigger-Scripts">C.3 The Trigger Scripts</a>
+    <ul class="no-bullet">
+      <li><a name="toc-The-common-syntax" href="syntax.html#syntax">C.3.1 The 
common syntax</a></li>
+      <li><a name="toc-Security-and-the-Trigger-Scripts" 
href="Trigger-Script-Security.html#Trigger-Script-Security">C.3.2 Security and 
the Trigger Scripts</a></li>
+    </ul></li>
+    <li><a name="toc-The-commit-support-files" 
href="commit-files.html#commit-files">C.4 The commit support files</a>
+    <ul class="no-bullet">
+      <li><a name="toc-Commitinfo" href="commitinfo.html#commitinfo">C.4.1 
Commitinfo</a></li>
+      <li><a name="toc-Verifying-log-messages" 
href="verifymsg.html#verifymsg">C.4.2 Verifying log messages</a></li>
+      <li><a name="toc-Editinfo" href="editinfo.html#editinfo">C.4.3 
Editinfo</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Editinfo-example" 
href="editinfo-example.html#editinfo-example">C.4.3.1 Editinfo example</a></li>
+      </ul></li>
+      <li><a name="toc-Loginfo" href="loginfo.html#loginfo">C.4.4 Loginfo</a>
+      <ul class="no-bullet">
+        <li><a name="toc-Loginfo-example" 
href="loginfo-example.html#loginfo-example">C.4.4.1 Loginfo example</a></li>
+        <li><a name="toc-Keeping-a-checked-out-copy-1" 
href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy">C.4.4.2 
Keeping a checked out copy</a></li>
+      </ul></li>
+    </ul></li>
+    <li><a name="toc-Rcsinfo" href="rcsinfo.html#rcsinfo">C.5 Rcsinfo</a></li>
+    <li><a name="toc-Taginfo" href="taginfo.html#taginfo">C.6 Taginfo</a></li>
+    <li><a name="toc-Ignoring-files-via-cvsignore" 
href="cvsignore.html#cvsignore">C.7 Ignoring files via cvsignore</a></li>
+    <li><a name="toc-The-checkoutlist-file" 
href="checkoutlist.html#checkoutlist">C.8 The checkoutlist file</a></li>
+    <li><a name="toc-The-history-file" 
href="history-file.html#history-file">C.9 The history file</a></li>
+    <li><a name="toc-Expansions-in-administrative-files" 
href="Variables.html#Variables">C.10 Expansions in administrative files</a></li>
+    <li><a name="toc-The-CVSROOT_002fconfig-configuration-file" 
href="config.html#config">C.11 The CVSROOT/config configuration file</a></li>
+  </ul></li>
+  <li><a name="toc-All-environment-variables-which-affect-CVS" 
href="Environment-variables.html#Environment-variables">Appendix D All 
environment variables which affect CVS</a></li>
+  <li><a name="toc-Compatibility-between-CVS-Versions" 
href="Compatibility.html#Compatibility">Appendix E Compatibility between CVS 
Versions</a></li>
+  <li><a name="toc-Troubleshooting-1" 
href="Troubleshooting.html#Troubleshooting">Appendix F Troubleshooting</a>
+  <ul class="no-bullet">
+    <li><a name="toc-Partial-list-of-error-messages" 
href="Error-messages.html#Error-messages">F.1 Partial list of error 
messages</a></li>
+    <li><a name="toc-Trouble-making-a-connection-to-a-CVS-server" 
href="Connection.html#Connection">F.2 Trouble making a connection to a CVS 
server</a></li>
+    <li><a name="toc-Other-common-problems" 
href="Other-problems.html#Other-problems">F.3 Other common problems</a></li>
+  </ul></li>
+  <li><a name="toc-Credits-1" href="Credits.html#Credits">Appendix G 
Credits</a></li>
+  <li><a name="toc-Dealing-with-bugs-in-CVS-or-this-manual" 
href="BUGS.html#BUGS">Appendix H Dealing with bugs in CVS or this 
manual</a></li>
+  <li><a name="toc-Index-1" href="Index.html#Index">Index</a></li>
+</ul>
+</div>
+
+
+
+<a name="Top"></a>
+<div class="header">
+<p>
+Next: <a href="Overview.html#Overview" accesskey="n" rel="next">Overview</a>, 
Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="SEC_Top"></a>
+
+<p>This info manual describes how to use and administer
+<small>CVS</small> version 1.11.23.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a href="Overview.html#Overview" 
accesskey="1">Overview</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">An introduction to CVS
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Repository.html#Repository" 
accesskey="2">Repository</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Where all your sources are stored
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Starting-a-new-project.html#Starting-a-new-project" 
accesskey="3">Starting a new project</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Starting a project with CVS
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Revisions.html#Revisions" 
accesskey="4">Revisions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Numeric and symbolic names for revisions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Branching-and-merging.html#Branching-and-merging" accesskey="5">Branching 
and merging</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Diverging/rejoining branches of development
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Recursive-behavior.html#Recursive-behavior" accesskey="6">Recursive 
behavior</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">CVS 
descends directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Adding-and-removing.html#Adding-and-removing" accesskey="7">Adding and 
removing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Adding/removing/renaming files/directories
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="History-browsing.html#History-browsing" accesskey="8">History 
browsing</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Viewing 
the history of files in various ways
+</td></tr>
+<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
+CVS and the Real World.
+&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="Binary-files.html#Binary-files" accesskey="9">Binary 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">CVS can 
handle binary files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Multiple-developers.html#Multiple-developers">Multiple 
developers</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How CVS 
helps a group of developers
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Revision-management.html#Revision-management">Revision 
management</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Policy 
questions for revision management
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">CVS 
can include the revision inside the file
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Tracking-sources.html#Tracking-sources">Tracking 
sources</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Tracking 
third-party sources
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Builds.html#Builds">Builds</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Issues related to CVS and builds
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Special-Files.html#Special-Files">Special 
Files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Devices, 
links and other non-regular files
+</td></tr>
+<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
+References.
+&mdash;&mdash;&mdash;&ndash;
+</pre></th></tr><tr><td align="left" valign="top">&bull; <a 
href="CVS-commands.html#CVS-commands">CVS 
commands</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">CVS 
commands share some things
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Invoking-CVS.html#Invoking-CVS">Invoking 
CVS</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Quick reference 
to CVS commands
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Administrative-files.html#Administrative-files">Administrative 
files</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Reference 
manual for the Administrative files
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Environment-variables.html#Environment-variables">Environment 
variables</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">All 
environment variables which affect CVS
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Compatibility.html#Compatibility">Compatibility</a>:</td><td>&nbsp;&nbsp;</td><td
 align="left" valign="top">Upgrading CVS versions
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Troubleshooting.html#Troubleshooting">Troubleshooting</a>:</td><td>&nbsp;&nbsp;</td><td
 align="left" valign="top">Some tips when nothing works
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Credits.html#Credits">Credits</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Some of the contributors to this manual
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="BUGS.html#BUGS">BUGS</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Dealing with bugs in CVS or this manual
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Index.html#Index">Index</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Index
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Overview.html#Overview" accesskey="n" rel="next">Overview</a>, 
Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> &nbsp; [<a 
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/log-examples.html
===================================================================
RCS file: html_node/log-examples.html
diff -N html_node/log-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/log-examples.html 28 Dec 2015 15:58:25 -0000      1.1
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: log examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: log examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
log examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="log.html#log" rel="up" title="log">
+<link href="rdiff.html#rdiff" rel="next" title="rdiff">
+<link href="log-options.html#log-options" rel="prev" title="log options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="log-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="log-options.html#log-options" accesskey="p" rel="prev">log 
options</a>, Up: <a href="log.html#log" accesskey="u" rel="up">log</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="log-examples-1"></a>
+<h4 class="appendixsubsec">A.15.2 log examples</h4>
+
+<p>Contributed examples are gratefully accepted.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/log-messages.html
===================================================================
RCS file: html_node/log-messages.html
diff -N html_node/log-messages.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/log-messages.html 28 Dec 2015 15:58:25 -0000      1.1
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: log messages</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: log messages">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
log messages">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="History-browsing.html#History-browsing" rel="up" title="History 
browsing">
+<link href="history-database.html#history-database" rel="next" title="history 
database">
+<link href="History-browsing.html#History-browsing" rel="prev" title="History 
browsing">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="log-messages"></a>
+<div class="header">
+<p>
+Next: <a href="history-database.html#history-database" accesskey="n" 
rel="next">history database</a>, Up: <a 
href="History-browsing.html#History-browsing" accesskey="u" rel="up">History 
browsing</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Log-messages"></a>
+<h3 class="section">8.1 Log messages</h3>
+
+<p>Whenever you commit a file you specify a log message.
+</p>
+<p>To look through the log messages which have been
+specified for every revision which has been committed,
+use the <code>cvs log</code> command (see <a href="log.html#log">log</a>).
+</p>
+
+
+
+</body>
+</html>

Index: html_node/log-options.html
===================================================================
RCS file: html_node/log-options.html
diff -N html_node/log-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/log-options.html  28 Dec 2015 15:58:25 -0000      1.1
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: log options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: log options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
log options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="log.html#log" rel="up" title="log">
+<link href="log-examples.html#log-examples" rel="next" title="log examples">
+<link href="log.html#log" rel="prev" title="log">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="log-options"></a>
+<div class="header">
+<p>
+Next: <a href="log-examples.html#log-examples" accesskey="n" rel="next">log 
examples</a>, Up: <a href="log.html#log" accesskey="u" rel="up">log</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="log-options-1"></a>
+<h4 class="appendixsubsec">A.15.1 log options</h4>
+
+<p>By default, <code>log</code> prints all information that is
+available.  All other options restrict the output.  Note that the revision
+selection options (<code>-b</code>, <code>-d</code>, <code>-r</code>, 
<code>-s</code>, and <code>-w</code>)
+have no
+effect, other than possibly causing a search for files in Attic directories,
+when used in conjunction with the options that restrict the output to only
+<code>log</code> header fields (<code>-h</code>, <code>-R</code>, and 
<code>-t</code>)
+unless the <code>-S</code> option is also specified.
+</p>
+<dl compact="compact">
+<dt><code>-b</code></dt>
+<dd><p>Print information about the revisions on the default
+branch, normally the highest branch on the trunk.
+</p>
+</dd>
+<dt><code>-d <var>dates</var></code></dt>
+<dd><p>Print information about revisions with a checkin
+date/time in the range given by the
+semicolon-separated list of dates.  The date formats
+accepted are those accepted by the &lsquo;<samp>-D</samp>&rsquo; option to
+many other <small>CVS</small> commands (see <a 
href="Common-options.html#Common-options">Common options</a>).
+Dates can be combined into ranges as follows:
+</p>
+<dl compact="compact">
+<dt><code><var>d1</var>&lt;<var>d2</var></code></dt>
+<dt><code><var>d2</var>&gt;<var>d1</var></code></dt>
+<dd><p>Select the revisions that were deposited between
+<var>d1</var> and <var>d2</var>.
+</p>
+</dd>
+<dt><code>&lt;<var>d</var></code></dt>
+<dt><code><var>d</var>&gt;</code></dt>
+<dd><p>Select all revisions dated <var>d</var> or earlier.
+</p>
+</dd>
+<dt><code><var>d</var>&lt;</code></dt>
+<dt><code>&gt;<var>d</var></code></dt>
+<dd><p>Select all revisions dated <var>d</var> or later.
+</p>
+</dd>
+<dt><code><var>d</var></code></dt>
+<dd><p>Select the single, latest revision dated <var>d</var> or
+earlier.
+</p></dd>
+</dl>
+
+<p>The &lsquo;<samp>&gt;</samp>&rsquo; or &lsquo;<samp>&lt;</samp>&rsquo; 
characters may be followed by
+&lsquo;<samp>=</samp>&rsquo; to indicate an inclusive range rather than an
+exclusive one.
+</p>
+<p>Note that the separator is a semicolon (;).
+</p>
+</dd>
+<dt><code>-h</code></dt>
+<dd><p>Print only the name of the <small>RCS</small> file, name
+of the file in the working directory, head,
+default branch, access list, locks, symbolic names, and
+suffix.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  (Default
+is to run recursively).
+</p>
+</dd>
+<dt><code>-N</code></dt>
+<dd><p>Do not print the list of tags for this file.  This
+option can be very useful when your site uses a lot of
+tags, so rather than &quot;more&quot;&rsquo;ing over 3 pages of tag
+information, the log information is presented without
+tags at all.
+</p>
+</dd>
+<dt><code>-n</code></dt>
+<dd><p>Print the list of tags for this file. This option can
+be very useful when your <samp>.cvsrc</samp> file has a
+&lsquo;<samp>log -N</samp>&rsquo; entry as a way to get a full list of all
+of the tags.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Print only the name of the <small>RCS</small> file.
+</p>
+</dd>
+<dt><code>-r<var>revisions</var></code></dt>
+<dd><p>Print information about revisions given in the
+comma-separated list <var>revisions</var> of revisions and
+ranges.  The following table explains the available
+range formats:
+</p>
+<dl compact="compact">
+<dt><code><var>rev1</var>:<var>rev2</var></code></dt>
+<dd><p>Revisions <var>rev1</var> to <var>rev2</var> (which must be on
+the same branch).
+</p>
+</dd>
+<dt><code><var>rev1</var>::<var>rev2</var></code></dt>
+<dd><p>The same, but excluding <var>rev1</var>.
+</p>
+</dd>
+<dt><code>:<var>rev</var></code></dt>
+<dt><code>::<var>rev</var></code></dt>
+<dd><p>Revisions from the beginning of the branch up to
+and including <var>rev</var>.
+</p>
+</dd>
+<dt><code><var>rev</var>:</code></dt>
+<dd><p>Revisions starting with <var>rev</var> to the end of the
+branch containing <var>rev</var>.
+</p>
+</dd>
+<dt><code><var>rev</var>::</code></dt>
+<dd><p>Revisions starting just after <var>rev</var> to the end of the
+branch containing <var>rev</var>.
+</p>
+</dd>
+<dt><code><var>branch</var></code></dt>
+<dd><p>An argument that is a branch means all revisions on
+that branch.
+</p>
+</dd>
+<dt><code><var>branch1</var>:<var>branch2</var></code></dt>
+<dt><code><var>branch1</var>::<var>branch2</var></code></dt>
+<dd><p>A range of branches means all revisions
+on the branches in that range.
+</p>
+</dd>
+<dt><code><var>branch</var>.</code></dt>
+<dd><p>The latest revision in <var>branch</var>.
+</p></dd>
+</dl>
+
+<p>A bare &lsquo;<samp>-r</samp>&rsquo; with no revisions means the latest
+revision on the default branch, normally the trunk.
+There can be no space between the &lsquo;<samp>-r</samp>&rsquo; option and
+its argument.
+</p>
+</dd>
+<dt><code>-S</code></dt>
+<dd><p>Suppress the header if no revisions are selected.
+</p>
+</dd>
+<dt><code>-s <var>states</var></code></dt>
+<dd><p>Print information about revisions whose state
+attributes match one of the states given in the
+comma-separated list <var>states</var>.  Individual states may
+be any text string, though <small>CVS</small> commonly only uses two
+states, &lsquo;<samp>Exp</samp>&rsquo; and &lsquo;<samp>dead</samp>&rsquo;.  
See <a href="admin-options.html#admin-options">admin options</a>
+for more information.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>Print the same as &lsquo;<samp>-h</samp>&rsquo;, plus the descriptive 
text.
+</p>
+</dd>
+<dt><code>-w<var>logins</var></code></dt>
+<dd><p>Print information about revisions checked in by users
+with login names appearing in the comma-separated list
+<var>logins</var>.  If <var>logins</var> is omitted, the user&rsquo;s
+login is assumed.  There can be no space between the
+&lsquo;<samp>-w</samp>&rsquo; option and its argument.
+</p></dd>
+</dl>
+
+<p><code>log</code> prints the intersection of the revisions
+selected with the options &lsquo;<samp>-d</samp>&rsquo;, 
&lsquo;<samp>-s</samp>&rsquo;, and
+&lsquo;<samp>-w</samp>&rsquo;, intersected with the union of the revisions
+selected by &lsquo;<samp>-b</samp>&rsquo; and &lsquo;<samp>-r</samp>&rsquo;.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="log-examples.html#log-examples" accesskey="n" rel="next">log 
examples</a>, Up: <a href="log.html#log" accesskey="u" rel="up">log</a> &nbsp; 
[<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/log.html
===================================================================
RCS file: html_node/log.html
diff -N html_node/log.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/log.html  28 Dec 2015 15:58:26 -0000      1.1
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: log</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: log">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
log">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="log-options.html#log-options" rel="next" title="log options">
+<link href="import-examples.html#import-examples" rel="prev" title="import 
examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="log"></a>
+<div class="header">
+<p>
+Next: <a href="rdiff.html#rdiff" accesskey="n" rel="next">rdiff</a>, Previous: 
<a href="import.html#import" accesskey="p" rel="prev">import</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="log_002d_002d_002dPrint-out-log-information-for-files"></a>
+<h3 class="appendixsec">A.15 log&mdash;Print out log information for files</h3>
+<a name="index-log-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: log [options] [files&hellip;]
+</li><li> Requires: repository, working directory.
+</li><li> Changes: nothing.
+</li></ul>
+
+<p>Display log information for files.  <code>log</code> used to
+call the <small>RCS</small> utility <code>rlog</code>.  Although this
+is no longer true in the current sources, this history
+determines the format of the output and the options,
+which are not quite in the style of the other <small>CVS</small>
+commands.
+</p>
+<a name="index-Timezone_002c-in-output"></a>
+<a name="index-Zone_002c-time_002c-in-output"></a>
+<p>The output includes the location of the <small>RCS</small> file,
+the <em>head</em> revision (the latest revision on the
+trunk), all symbolic names (tags) and some other
+things.  For each revision, the revision number, the
+author, the number of lines added/deleted and the log
+message are printed.  All times are displayed in
+Coordinated Universal Time (UTC).  (Other parts of
+<small>CVS</small> print times in the local timezone).
+</p>
+<p><strong><code>log</code> uses &lsquo;<samp>-R</samp>&rsquo; in a way that 
conflicts
+with the normal use inside <small>CVS</small> (see <a 
href="Common-options.html#Common-options">Common options</a>).</strong>
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="log-options.html#log-options" accesskey="1">log 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">log options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="log-examples.html#log-examples" accesskey="2">log 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">log 
examples
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/loginfo-example.html
===================================================================
RCS file: html_node/loginfo-example.html
diff -N html_node/loginfo-example.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/loginfo-example.html      28 Dec 2015 15:58:26 -0000      1.1
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: loginfo example</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: loginfo example">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
loginfo example">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="loginfo.html#loginfo" rel="up" title="loginfo">
+<link href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy" 
rel="next" title="Keeping a checked out copy">
+<link href="loginfo.html#loginfo" rel="prev" title="loginfo">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="loginfo-example"></a>
+<div class="header">
+<p>
+Next: <a href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy" 
accesskey="n" rel="next">Keeping a checked out copy</a>, Up: <a 
href="loginfo.html#loginfo" accesskey="u" rel="up">loginfo</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Loginfo-example"></a>
+<h4 class="appendixsubsubsec">C.4.4.1 Loginfo example</h4>
+
+<p>The following <samp>loginfo</samp> file, together with the
+tiny shell-script below, appends all log messages
+to the file <samp>$CVSROOT/CVSROOT/commitlog</samp>,
+and any commits to the administrative files (inside
+the <samp>CVSROOT</samp> directory) are also logged in
+<samp>/usr/adm/cvsroot-log</samp>.
+Commits to the <samp>prog1</samp> directory are mailed to <tt>ceder</tt>.
+</p>
+<div class="example">
+<pre class="example">ALL             /usr/local/bin/cvs-log 
$CVSROOT/CVSROOT/commitlog $USER
+^CVSROOT        /usr/local/bin/cvs-log /usr/adm/cvsroot-log
+^prog1          Mail -s %s ceder
+</pre></div>
+
+<p>The shell-script <samp>/usr/local/bin/cvs-log</samp> looks
+like this:
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+(echo &quot;------------------------------------------------------&quot;;
+ echo -n $2&quot;  &quot;;
+ date;
+ echo;
+ cat) &gt;&gt; $1
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/loginfo.html
===================================================================
RCS file: html_node/loginfo.html
diff -N html_node/loginfo.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/loginfo.html      28 Dec 2015 15:58:26 -0000      1.1
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: loginfo</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: loginfo">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
loginfo">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="commit-files.html#commit-files" rel="up" title="commit files">
+<link href="loginfo-example.html#loginfo-example" rel="next" title="loginfo 
example">
+<link href="editinfo-example.html#editinfo-example" rel="prev" title="editinfo 
example">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="loginfo"></a>
+<div class="header">
+<p>
+Previous: <a href="editinfo.html#editinfo" accesskey="p" 
rel="prev">editinfo</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Loginfo"></a>
+<h4 class="appendixsubsec">C.4.4 Loginfo</h4>
+<a name="index-loginfo-_0028admin-file_0029"></a>
+<a name="index-Storing-log-messages"></a>
+<a name="index-Mailing-log-messages"></a>
+<a name="index-Distributing-log-messages"></a>
+<a name="index-Log-messages"></a>
+
+<p>The <samp>loginfo</samp> file is used to control where
+&lsquo;<samp>cvs commit</samp>&rsquo; log information is sent.  The first
+entry on a line is a regular expression which is tested
+against the directory that the change is being made to,
+relative to the <code>$CVSROOT</code>.  If a match is found, then
+the remainder of the line is a filter program that
+should expect log information on its standard input.
+Note that the filter program <strong>must</strong> read <strong>all</strong>
+of the log information or <small>CVS</small> may fail with a broken pipe 
signal.
+</p>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<p>All occurrences of the name &lsquo;<samp>ALL</samp>&rsquo; appearing as a
+regular expression are used in addition to the first
+matching regular expression or &lsquo;<samp>DEFAULT</samp>&rsquo;.
+</p>
+<p>The first matching regular expression is used.
+</p>
+<p>See <a href="commit-files.html#commit-files">commit files</a>, for a 
description of the syntax of
+the <samp>loginfo</samp> file.
+</p>
+<p>The user may specify a format string as
+part of the filter.  The string is composed of a
+&lsquo;<samp>%</samp>&rsquo; followed by a space, or followed by a single
+format character, or followed by a set of format
+characters surrounded by &lsquo;<samp>{</samp>&rsquo; and 
&lsquo;<samp>}</samp>&rsquo; as
+separators.  The format characters are:
+</p>
+<dl compact="compact">
+<dt><tt>s</tt></dt>
+<dd><p>file name
+</p></dd>
+<dt><tt>V</tt></dt>
+<dd><p>old version number (pre-checkin)
+</p></dd>
+<dt><tt>v</tt></dt>
+<dd><p>new version number (post-checkin)
+</p></dd>
+</dl>
+
+<p>All other characters that appear in a format string
+expand to an empty field (commas separating fields are
+still provided).
+</p>
+<p>For example, some valid format strings are &lsquo;<samp>%</samp>&rsquo;,
+&lsquo;<samp>%s</samp>&rsquo;, &lsquo;<samp>%{s}</samp>&rsquo;, and 
&lsquo;<samp>%{sVv}</samp>&rsquo;.
+</p>
+<p>The output will be a space separated string of tokens enclosed in
+quotation marks (<tt>&quot;</tt>).
+Any embedded dollar signs (<tt>$</tt>), backticks (<tt>`</tt>),
+backslashes (<tt>\</tt>), or quotation marks will be preceded
+by a backslash (this allows the shell to correctly parse it
+as a single string, reguardless of the characters it contains).
+For backwards compatibility, the first
+token will be the repository subdirectory.  The rest of the
+tokens will be comma-delimited lists of the information
+requested in the format string.  For example, if
+&lsquo;<samp>/u/src/master/yoyodyne/tc</samp>&rsquo; is the repository, 
&lsquo;<samp>%{sVv}</samp>&rsquo;
+is the format string, and three files (<tt>ChangeLog</tt>,
+<tt>Makefile</tt>, <tt>foo.c</tt>) were modified, the output
+might be:
+</p>
+<div class="example">
+<pre class="example">&quot;yoyodyne/tc ChangeLog,1.1,1.2 Makefile,1.3,1.4 
foo.c,1.12,1.13&quot;
+</pre></div>
+
+<p>As another example, &lsquo;<samp>%{}</samp>&rsquo; means that only the
+name of the repository will be generated.
+</p>
+<p>Note: when <small>CVS</small> is accessing a remote repository,
+<samp>loginfo</samp> will be run on the <em>remote</em>
+(i.e., server) side, not the client side (see <a 
href="Remote-repositories.html#Remote-repositories">Remote repositories</a>).
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="loginfo-example.html#loginfo-example" accesskey="1">loginfo 
example</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Loginfo 
example
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy" 
accesskey="2">Keeping a checked out copy</a>:</td><td>&nbsp;&nbsp;</td><td 
align="left" valign="top">Updating a tree on every checkin
+</td></tr>
+</table>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="editinfo.html#editinfo" accesskey="p" 
rel="prev">editinfo</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/modules.html
===================================================================
RCS file: html_node/modules.html
diff -N html_node/modules.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/modules.html      28 Dec 2015 15:58:26 -0000      1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: modules</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: modules">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
modules">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="Alias-modules.html#Alias-modules" rel="next" title="Alias modules">
+<link href="Administrative-files.html#Administrative-files" rel="prev" 
title="Administrative files">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="modules"></a>
+<div class="header">
+<p>
+Next: <a href="Wrappers.html#Wrappers" accesskey="n" rel="next">Wrappers</a>, 
Up: <a href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-modules-file"></a>
+<h3 class="appendixsec">C.1 The modules file</h3>
+<a name="index-Modules-_0028admin-file_0029"></a>
+<a name="index-Defining-modules-_0028reference-manual_0029"></a>
+
+<p>The <samp>modules</samp> file records your definitions of
+names for collections of source code.  <small>CVS</small> will
+use these definitions if you use <small>CVS</small> to update the
+modules file (use normal commands like <code>add</code>,
+<code>commit</code>, etc).
+</p>
+<p>The <samp>modules</samp> file may contain blank lines and
+comments (lines beginning with &lsquo;<samp>#</samp>&rsquo;) as well as
+module definitions.  Long lines can be continued on the
+next line by specifying a backslash (&lsquo;<samp>\</samp>&rsquo;) as the
+last character on the line.
+</p>
+<p>There are three basic types of modules: alias modules,
+regular modules, and ampersand modules.  The difference
+between them is the way that they map files in the
+repository to files in the working directory.  In all
+of the following examples, the top-level repository
+contains a directory called <samp>first-dir</samp>, which
+contains two files, <samp>file1</samp> and <samp>file2</samp>, and a
+directory <samp>sdir</samp>.  <samp>first-dir/sdir</samp> contains
+a file <samp>sfile</samp>.
+</p>
+
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="Alias-modules.html#Alias-modules" accesskey="1">Alias 
modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The 
simplest kind of module
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Regular-modules.html#Regular-modules" accesskey="2">Regular 
modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Ampersand-modules.html#Ampersand-modules" accesskey="3">Ampersand 
modules</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Excluding-directories.html#Excluding-directories" accesskey="4">Excluding 
directories</a>:</td><td>&nbsp;&nbsp;</td><td align="left" 
valign="top">Excluding directories from a module
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Module-options.html#Module-options" accesskey="5">Module 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Regular and 
ampersand modules can take options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="Module-program-options.html#Module-program-options" accesskey="6">Module 
program options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How 
the modules &ldquo;program options&rdquo; programs
+                              are run. 
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/rcsinfo.html
===================================================================
RCS file: html_node/rcsinfo.html
diff -N html_node/rcsinfo.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/rcsinfo.html      28 Dec 2015 15:58:27 -0000      1.1
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: rcsinfo</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: rcsinfo">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
rcsinfo">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="taginfo.html#taginfo" rel="next" title="taginfo">
+<link href="Keeping-a-checked-out-copy.html#Keeping-a-checked-out-copy" 
rel="prev" title="Keeping a checked out copy">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="rcsinfo"></a>
+<div class="header">
+<p>
+Next: <a href="taginfo.html#taginfo" accesskey="n" rel="next">taginfo</a>, 
Previous: <a href="commit-files.html#commit-files" accesskey="p" 
rel="prev">commit files</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Rcsinfo"></a>
+<h3 class="appendixsec">C.5 Rcsinfo</h3>
+<a name="index-rcsinfo-_0028admin-file_0029"></a>
+<a name="index-Form-for-log-message"></a>
+<a name="index-Log-message-template"></a>
+<a name="index-Template-for-log-message"></a>
+
+<p>The <samp>rcsinfo</samp> file can be used to specify a form to
+edit when filling out the commit log.  The
+<samp>rcsinfo</samp> file has a syntax similar to the
+<samp>verifymsg</samp>, <samp>commitinfo</samp> and <samp>loginfo</samp>
+files.  See <a href="syntax.html#syntax">syntax</a>.  Unlike the other files 
the second
+part is <em>not</em> a command-line template.  Instead,
+the part after the regular expression should be a full pathname to
+a file containing the log message template.
+</p>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<p>All occurrences of the name &lsquo;<samp>ALL</samp>&rsquo; appearing as a
+regular expression are used in addition to the first
+matching regular expression or &lsquo;<samp>DEFAULT</samp>&rsquo;.
+</p>
+<p>The log message template will be used as a default log
+message.  If you specify a log message with &lsquo;<samp>cvs
+commit -m <var>message</var></samp>&rsquo; or &lsquo;<samp>cvs commit -f
+<var>file</var></samp>&rsquo; that log message will override the
+template.
+</p>
+<p>See <a href="verifymsg.html#verifymsg">verifymsg</a>, for an example 
<samp>rcsinfo</samp>
+file.
+</p>
+<p>When <small>CVS</small> is accessing a remote repository,
+the contents of <samp>rcsinfo</samp> at the time a directory
+is first checked out will specify a template which does
+not then change.  If you edit <samp>rcsinfo</samp> or its
+templates, you may need to check out a new working
+directory.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/rdiff-examples.html
===================================================================
RCS file: html_node/rdiff-examples.html
diff -N html_node/rdiff-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/rdiff-examples.html       28 Dec 2015 15:58:27 -0000      1.1
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: rdiff examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: rdiff examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
rdiff examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="rdiff.html#rdiff" rel="up" title="rdiff">
+<link href="release.html#release" rel="next" title="release">
+<link href="rdiff-options.html#rdiff-options" rel="prev" title="rdiff options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="rdiff-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="rdiff-options.html#rdiff-options" accesskey="p" 
rel="prev">rdiff options</a>, Up: <a href="rdiff.html#rdiff" accesskey="u" 
rel="up">rdiff</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="rdiff-examples-1"></a>
+<h4 class="appendixsubsec">A.16.2 rdiff examples</h4>
+
+<p>Suppose you receive mail from <tt>address@hidden</tt> asking for an
+update from release 1.2 to 1.4 of the tc compiler.  You
+have no such patches on hand, but with <small>CVS</small> that can
+easily be fixed with a command such as this:
+</p>
+<div class="example">
+<pre class="example">$ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \
+&gt; Mail -s 'The patches you asked for' address@hidden
+</pre></div>
+
+<p>Suppose you have made release 1.3, and forked a branch
+called &lsquo;<samp>R_1_3fix</samp>&rsquo; for bug fixes.  
&lsquo;<samp>R_1_3_1</samp>&rsquo;
+corresponds to release 1.3.1, which was made some time
+ago.  Now, you want to see how much development has been
+done on the branch.  This command can be used:
+</p>
+<div class="example">
+<pre class="example">$ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
+cvs rdiff: Diffing module-name
+File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
+File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
+File bar.h,v changed from revision 1.29.2.1 to 1.2
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/rdiff-options.html
===================================================================
RCS file: html_node/rdiff-options.html
diff -N html_node/rdiff-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/rdiff-options.html        28 Dec 2015 15:58:28 -0000      1.1
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: rdiff options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: rdiff options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
rdiff options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="rdiff.html#rdiff" rel="up" title="rdiff">
+<link href="rdiff-examples.html#rdiff-examples" rel="next" title="rdiff 
examples">
+<link href="rdiff.html#rdiff" rel="prev" title="rdiff">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="rdiff-options"></a>
+<div class="header">
+<p>
+Next: <a href="rdiff-examples.html#rdiff-examples" accesskey="n" 
rel="next">rdiff examples</a>, Up: <a href="rdiff.html#rdiff" accesskey="u" 
rel="up">rdiff</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="rdiff-options-1"></a>
+<h4 class="appendixsubsec">A.16.1 rdiff options</h4>
+
+<p>These standard options are supported by <code>rdiff</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D <var>date</var></code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>If no matching revision is found, retrieve the most
+recent revision (instead of ignoring the file).
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; don&rsquo;t descend subdirectories.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Examine directories recursively.  This option is on by default.
+</p>
+</dd>
+<dt><code>-r <var>tag</var></code></dt>
+<dd><p>Use revision <var>tag</var>.
+</p></dd>
+</dl>
+
+<p>In addition to the above, these options are available:
+</p>
+<dl compact="compact">
+<dt><code>-c</code></dt>
+<dd><p>Use the context diff format.  This is the default format.
+</p>
+</dd>
+<dt><code>-s</code></dt>
+<dd><p>Create a summary change report instead of a patch.  The
+summary includes information about files that were
+changed or added between the releases.  It is sent to
+the standard output device.  This is useful for finding
+out, for example, which files have changed between two
+dates or revisions.
+</p>
+</dd>
+<dt><code>-t</code></dt>
+<dd><p>A diff of the top two revisions is sent to the standard
+output device.  This is most useful for seeing what the
+last change to a file was.
+</p>
+</dd>
+<dt><code>-u</code></dt>
+<dd><p>Use the unidiff format for the context diffs.
+Remember that old versions
+of the <code>patch</code> program can&rsquo;t handle the unidiff
+format, so if you plan to post this patch to the net
+you should probably not use &lsquo;<samp>-u</samp>&rsquo;.
+</p>
+</dd>
+<dt><code>-V <var>vn</var></code></dt>
+<dd><p>Expand keywords according to the rules current in
+<small>RCS</small> version <var>vn</var> (the expansion format changed with
+<small>RCS</small> version 5).  Note that this option is no
+longer accepted.  <small>CVS</small> will always expand keywords the
+way that <small>RCS</small> version 5 does.
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="rdiff-examples.html#rdiff-examples" accesskey="n" 
rel="next">rdiff examples</a>, Up: <a href="rdiff.html#rdiff" accesskey="u" 
rel="up">rdiff</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/rdiff.html
===================================================================
RCS file: html_node/rdiff.html
diff -N html_node/rdiff.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/rdiff.html        28 Dec 2015 15:58:28 -0000      1.1
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: rdiff</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: rdiff">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
rdiff">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="rdiff-options.html#rdiff-options" rel="next" title="rdiff options">
+<link href="log-examples.html#log-examples" rel="prev" title="log examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="rdiff"></a>
+<div class="header">
+<p>
+Next: <a href="release.html#release" accesskey="n" rel="next">release</a>, 
Previous: <a href="log.html#log" accesskey="p" rel="prev">log</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a 
name="rdiff_002d_002d_002d_0027patch_0027-format-diffs-between-releases"></a>
+<h3 class="appendixsec">A.16 rdiff&mdash;&rsquo;patch&rsquo; format diffs 
between releases</h3>
+<a name="index-rdiff-_0028subcommand_0029"></a>
+
+<ul>
+<li> rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules&hellip;
+</li><li> Requires: repository.
+</li><li> Changes: nothing.
+</li><li> Synonym: patch
+</li></ul>
+
+<p>Builds a Larry Wall format patch(1) file between two
+releases, that can be fed directly into the <code>patch</code>
+program to bring an old release up-to-date with the new
+release.  (This is one of the few <small>CVS</small> commands that
+operates directly from the repository, and doesn&rsquo;t
+require a prior checkout.) The diff output is sent to
+the standard output device.
+</p>
+<p>You can specify (using the standard &lsquo;<samp>-r</samp>&rsquo; and
+&lsquo;<samp>-D</samp>&rsquo; options) any combination of one or two
+revisions or dates.  If only one revision or date is
+specified, the patch file reflects differences between
+that revision or date and the current head revisions in
+the <small>RCS</small> file.
+</p>
+<p>Note that if the software release affected is contained
+in more than one directory, then it may be necessary to
+specify the &lsquo;<samp>-p</samp>&rsquo; option to the <code>patch</code> 
command when
+patching the old sources, so that <code>patch</code> is able to find
+the files that are located in other directories.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="rdiff-options.html#rdiff-options" accesskey="1">rdiff 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">rdiff 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="rdiff-examples.html#rdiff-examples" accesskey="2">rdiff 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">rdiff 
examples
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/release-examples.html
===================================================================
RCS file: html_node/release-examples.html
diff -N html_node/release-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/release-examples.html     28 Dec 2015 15:58:29 -0000      1.1
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: release examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: release examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
release examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="release.html#release" rel="up" title="release">
+<link href="remove.html#remove" rel="next" title="remove">
+<link href="release-output.html#release-output" rel="prev" title="release 
output">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="release-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="release-output.html#release-output" accesskey="p" 
rel="prev">release output</a>, Up: <a href="release.html#release" accesskey="u" 
rel="up">release</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="release-examples-1"></a>
+<h4 class="appendixsubsec">A.17.3 release examples</h4>
+
+<p>Release the <samp>tc</samp> directory, and delete your local working copy
+of the files.
+</p>
+<div class="example">
+<pre class="example">$ cd ..         # <span class="roman">You must stand 
immediately above the</span>
+                # <span class="roman">sources when you issue &lsquo;<samp>cvs 
release</samp>&rsquo;.</span>
+$ cvs release -d tc
+You have [0] altered files in this repository.
+Are you sure you want to release (and delete) directory `tc': y
+$
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/release-options.html
===================================================================
RCS file: html_node/release-options.html
diff -N html_node/release-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/release-options.html      28 Dec 2015 15:58:29 -0000      1.1
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: release options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: release options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
release options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="release.html#release" rel="up" title="release">
+<link href="release-output.html#release-output" rel="next" title="release 
output">
+<link href="release.html#release" rel="prev" title="release">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="release-options"></a>
+<div class="header">
+<p>
+Next: <a href="release-output.html#release-output" accesskey="n" 
rel="next">release output</a>, Up: <a href="release.html#release" accesskey="u" 
rel="up">release</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="release-options-1"></a>
+<h4 class="appendixsubsec">A.17.1 release options</h4>
+
+<p>The <code>release</code> command supports one command option:
+</p>
+<dl compact="compact">
+<dt><code>-d</code></dt>
+<dd><p>Delete your working copy of the file if the release
+succeeds.  If this flag is not given your files will
+remain in your working directory.
+</p>
+<p><strong>WARNING:  The <code>release</code> command deletes
+all directories and files recursively.  This
+has the very serious side-effect that any directory
+created inside checked-out sources, and not added to
+the repository (using the <code>add</code> command;
+see <a href="Adding-files.html#Adding-files">Adding files</a>) will be 
silently deleted&mdash;even
+if it is non-empty!</strong>
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/release-output.html
===================================================================
RCS file: html_node/release-output.html
diff -N html_node/release-output.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/release-output.html       28 Dec 2015 15:58:29 -0000      1.1
@@ -0,0 +1,106 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: release output</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: release output">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
release output">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="release.html#release" rel="up" title="release">
+<link href="release-examples.html#release-examples" rel="next" title="release 
examples">
+<link href="release-options.html#release-options" rel="prev" title="release 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="release-output"></a>
+<div class="header">
+<p>
+Next: <a href="release-examples.html#release-examples" accesskey="n" 
rel="next">release examples</a>, Previous: <a 
href="release-options.html#release-options" accesskey="p" rel="prev">release 
options</a>, Up: <a href="release.html#release" accesskey="u" 
rel="up">release</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="release-output-1"></a>
+<h4 class="appendixsubsec">A.17.2 release output</h4>
+
+<p>Before <code>release</code> releases your sources it will
+print a one-line message for any file that is not
+up-to-date.
+</p>
+<dl compact="compact">
+<dt><code>U <var>file</var></code></dt>
+<dt><code>P <var>file</var></code></dt>
+<dd><p>There exists a newer revision of this file in the
+repository, and you have not modified your local copy
+of the file (&lsquo;<samp>U</samp>&rsquo; and &lsquo;<samp>P</samp>&rsquo; 
mean the same thing).
+</p>
+</dd>
+<dt><code>A <var>file</var></code></dt>
+<dd><p>The file has been added to your private copy of the
+sources, but has not yet been committed to the
+repository.  If you delete your copy of the sources
+this file will be lost.
+</p>
+</dd>
+<dt><code>R <var>file</var></code></dt>
+<dd><p>The file has been removed from your private copy of the
+sources, but has not yet been removed from the
+repository, since you have not yet committed the
+removal.  See <a href="commit.html#commit">commit</a>.
+</p>
+</dd>
+<dt><code>M <var>file</var></code></dt>
+<dd><p>The file is modified in your working directory.  There
+might also be a newer revision inside the repository.
+</p>
+</dd>
+<dt><code>? <var>file</var></code></dt>
+<dd><p><var>file</var> is in your working directory, but does not
+correspond to anything in the source repository, and is
+not in the list of files for <small>CVS</small> to ignore (see the
+description of the &lsquo;<samp>-I</samp>&rsquo; option, and
+see <a href="cvsignore.html#cvsignore">cvsignore</a>).  If you remove your 
working
+sources, this file will be lost.
+</p></dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/release.html
===================================================================
RCS file: html_node/release.html
diff -N html_node/release.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/release.html      28 Dec 2015 15:58:30 -0000      1.1
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: release</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: release">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
release">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="release-options.html#release-options" rel="next" title="release 
options">
+<link href="rdiff-examples.html#rdiff-examples" rel="prev" title="rdiff 
examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="release"></a>
+<div class="header">
+<p>
+Next: <a href="remove.html#remove" accesskey="n" rel="next">remove</a>, 
Previous: <a href="rdiff.html#rdiff" accesskey="p" rel="prev">rdiff</a>, Up: <a 
href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS commands</a> 
&nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="release_002d_002d_002dIndicate-that-a-Module-is-no-longer-in-use"></a>
+<h3 class="appendixsec">A.17 release&mdash;Indicate that a Module is no longer 
in use</h3>
+<a name="index-release-_0028subcommand_0029"></a>
+
+<ul>
+<li> release [-d] directories&hellip;
+</li><li> Requires: Working directory.
+</li><li> Changes: Working directory, history log.
+</li></ul>
+
+<p>This command is meant to safely cancel the effect of
+&lsquo;<samp>cvs checkout</samp>&rsquo;.  Since <small>CVS</small> 
doesn&rsquo;t lock files, it
+isn&rsquo;t strictly necessary to use this command.  You can
+always simply delete your working directory, if you
+like; but you risk losing changes you may have
+forgotten, and you leave no trace in the <small>CVS</small> history
+file (see <a href="history-file.html#history-file">history file</a>) that 
you&rsquo;ve abandoned your
+checkout.
+</p>
+<p>Use &lsquo;<samp>cvs release</samp>&rsquo; to avoid these problems.  This
+command checks that no uncommitted changes are
+present; that you are executing it from immediately
+above a <small>CVS</small> working directory; and that the repository
+recorded for your files is the same as the repository
+defined in the module database.
+</p>
+<p>If all these conditions are true, &lsquo;<samp>cvs release</samp>&rsquo;
+leaves a record of its execution (attesting to your
+intentionally abandoning your checkout) in the <small>CVS</small>
+history log.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="release-options.html#release-options" accesskey="1">release 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">release 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="release-output.html#release-output" accesskey="2">release 
output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">release 
output
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="release-examples.html#release-examples" accesskey="3">release 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">release 
examples
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/remove-examples.html
===================================================================
RCS file: html_node/remove-examples.html
diff -N html_node/remove-examples.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/remove-examples.html      28 Dec 2015 15:58:30 -0000      1.1
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: remove examples</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: remove examples">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
remove examples">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="remove.html#remove" rel="up" title="remove">
+<link href="update.html#update" rel="next" title="update">
+<link href="remove-options.html#remove-options" rel="prev" title="remove 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="remove-examples"></a>
+<div class="header">
+<p>
+Previous: <a href="remove-options.html#remove-options" accesskey="p" 
rel="prev">remove options</a>, Up: <a href="remove.html#remove" accesskey="u" 
rel="up">remove</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="remove-examples-1"></a>
+<h4 class="appendixsubsec">A.18.2 remove examples</h4>
+
+<a name="Removing-a-file"></a>
+<h4 class="appendixsubsubsec">A.18.2.1 Removing a file</h4>
+
+<div class="example">
+<pre class="example">$ cvs remove remove.me
+cvs remove: file `remove.me' still in working directory
+cvs remove: 1 file exists; remove it first
+$ rm -f remove.me
+$ cvs remove remove.me
+cvs remove: scheduling `remove.me' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+
+$ ls remove.it
+remove.it
+$ cvs remove -f remove.it
+cvs remove: scheduling `remove.it' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+</pre></div>
+
+<a name="Removing-entire-directories"></a>
+<h4 class="appendixsubsubsec">A.18.2.2 Removing entire directories</h4>
+<div class="example">
+<pre class="example">$ tree -d a
+a
+|-- CVS
+`-- b
+    `-- CVS
+
+3 directories
+$ cvs remove -f a
+cvs remove: Removing a
+cvs remove: Removing a/b
+cvs remove: scheduling `a/b/c' for removal
+cvs remove: use 'cvs commit' to remove this file permanently
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/remove-options.html
===================================================================
RCS file: html_node/remove-options.html
diff -N html_node/remove-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/remove-options.html       28 Dec 2015 15:58:30 -0000      1.1
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: remove options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: remove options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
remove options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="remove.html#remove" rel="up" title="remove">
+<link href="remove-examples.html#remove-examples" rel="next" title="remove 
examples">
+<link href="remove.html#remove" rel="prev" title="remove">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="remove-options"></a>
+<div class="header">
+<p>
+Next: <a href="remove-examples.html#remove-examples" accesskey="n" 
rel="next">remove examples</a>, Up: <a href="remove.html#remove" accesskey="u" 
rel="up">remove</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="remove-options-1"></a>
+<h4 class="appendixsubsec">A.18.1 remove options</h4>
+
+<p>These standard options are supported by <code>remove</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Process directories recursively.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+</dl>
+
+<p>In addition, these options are also supported:
+</p>
+<dl compact="compact">
+<dt><code>-f</code></dt>
+<dd><p>Note that this is not the standard behavior of
+the &lsquo;<samp>-f</samp>&rsquo; option as defined in <a 
href="Common-options.html#Common-options">Common options</a>.
+</p>
+<p>Delete files before removing them.
+</p>
+<p>Entire directory hierarchies are easily removed
+using &lsquo;<samp>-f</samp>&rsquo;, but take note that it is not as
+easy to resurrect directory hierarchies as it is
+to remove them.
+</p>
+</dd>
+</dl>
+
+
+
+
+</body>
+</html>

Index: html_node/remove.html
===================================================================
RCS file: html_node/remove.html
diff -N html_node/remove.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/remove.html       28 Dec 2015 15:58:31 -0000      1.1
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: remove</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: remove">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
remove">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="remove-options.html#remove-options" rel="next" title="remove 
options">
+<link href="release-examples.html#release-examples" rel="prev" title="release 
examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="remove"></a>
+<div class="header">
+<p>
+Next: <a href="update.html#update" accesskey="n" rel="next">update</a>, 
Previous: <a href="release.html#release" accesskey="p" rel="prev">release</a>, 
Up: <a href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS 
commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="remove_002d_002d_002dRemove-files-from-active-use"></a>
+<h3 class="appendixsec">A.18 remove&mdash;Remove files from active use</h3>
+<a name="index-remove-_0028subcommand_0029"></a>
+
+<ul>
+<li> Synopsis: remove [-flR] [files...]
+</li><li> Requires: repository, working directory.
+</li><li> Changes: working directory.
+</li></ul>
+
+<p>The <code>remove</code> command is used to remove unwanted
+files from active use.  The user normally deletes the
+files from the working directory prior to invocation
+of the <code>remove</code> command.  Only the working
+directory is updated.  Changes to the repository are
+not made until the <code>commit</code> command is run.
+</p>
+<p>The <code>remove</code> command does not delete files from
+from the repository.  <small>CVS</small> keeps all historical
+data in the repository so that it is possible to
+reconstruct previous states of the projects under
+revision control.
+</p>
+<p>To undo <small>CVS</small> <code>remove</code> or to resurrect files
+that were previously removed, See <a href="add.html#add">add</a>.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="remove-options.html#remove-options" accesskey="1">remove 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">remove 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="remove-examples.html#remove-examples" accesskey="2">remove 
examples</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">remove 
examples
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/syntax.html
===================================================================
RCS file: html_node/syntax.html
diff -N html_node/syntax.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/syntax.html       28 Dec 2015 15:58:31 -0000      1.1
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: syntax</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: syntax">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
syntax">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Trigger-Scripts.html#Trigger-Scripts" rel="up" title="Trigger 
Scripts">
+<link href="Trigger-Script-Security.html#Trigger-Script-Security" rel="next" 
title="Trigger Script Security">
+<link href="Trigger-Scripts.html#Trigger-Scripts" rel="prev" title="Trigger 
Scripts">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="syntax"></a>
+<div class="header">
+<p>
+Next: <a href="Trigger-Script-Security.html#Trigger-Script-Security" 
accesskey="n" rel="next">Trigger Script Security</a>, Up: <a 
href="Trigger-Scripts.html#Trigger-Scripts" accesskey="u" rel="up">Trigger 
Scripts</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="The-common-syntax"></a>
+<h4 class="appendixsubsec">C.3.1 The common syntax</h4>
+<a name="index-Info-files-_0028syntax_0029"></a>
+<a name="index-Syntax-of-info-files"></a>
+<a name="index-Common-syntax-of-info-files"></a>
+
+
+<p>The administrative files such as <samp>commitinfo</samp>,
+<samp>loginfo</samp>, <samp>rcsinfo</samp>, <samp>verifymsg</samp>, etc.,
+all have a common format.  The purpose of the files are
+described later on.  The common syntax is described
+here.
+</p>
+<a name="index-Regular-expression-syntax"></a>
+<p>Each line contains the following:
+</p><ul>
+<li> A regular expression.  This is a basic regular
+expression in the syntax used by GNU emacs.
+
+</li><li> A whitespace separator&mdash;one or more spaces and/or tabs.
+
+</li><li> A file name or command-line template.
+</li></ul>
+
+<p>Blank lines are ignored.  Lines that start with the
+character &lsquo;<samp>#</samp>&rsquo; are treated as comments.  Long lines
+unfortunately can <em>not</em> be broken in two parts in
+any way.
+</p>
+<p>The first regular expression that matches the current
+directory name in the repository is used.  The rest of the line
+is used as a file name or command-line as appropriate.
+</p>
+
+
+
+
+</body>
+</html>

Index: html_node/taginfo.html
===================================================================
RCS file: html_node/taginfo.html
diff -N html_node/taginfo.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/taginfo.html      28 Dec 2015 15:58:31 -0000      1.1
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: taginfo</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: taginfo">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
taginfo">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Administrative-files.html#Administrative-files" rel="up" 
title="Administrative files">
+<link href="cvsignore.html#cvsignore" rel="next" title="cvsignore">
+<link href="rcsinfo.html#rcsinfo" rel="prev" title="rcsinfo">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="taginfo"></a>
+<div class="header">
+<p>
+Next: <a href="cvsignore.html#cvsignore" accesskey="n" 
rel="next">cvsignore</a>, Previous: <a href="rcsinfo.html#rcsinfo" 
accesskey="p" rel="prev">rcsinfo</a>, Up: <a 
href="Administrative-files.html#Administrative-files" accesskey="u" 
rel="up">Administrative files</a> &nbsp; [<a href="index.html#SEC_Contents" 
title="Table of contents" rel="contents">Contents</a>][<a 
href="Index.html#Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Taginfo"></a>
+<h3 class="appendixsec">C.6 Taginfo</h3>
+<a name="index-taginfo-_0028admin-file_0029"></a>
+<a name="index-Tags_002c-logging"></a>
+<a name="index-Tags_002c-verifying"></a>
+<p>The <samp>taginfo</samp> file defines programs to execute
+when someone executes a <code>tag</code> or <code>rtag</code>
+command.  The <samp>taginfo</samp> file has the standard form
+for trigger scripts (see <a 
href="Trigger-Scripts.html#Trigger-Scripts">Trigger Scripts</a>),
+where each line is a regular expression
+followed by a command to execute (see <a 
href="syntax.html#syntax">syntax</a>).  The arguments passed
+to the command are, in order, the <var>tagname</var>,
+<var>operation</var> (<code>add</code> for <code>tag</code>,
+<code>mov</code> for <code>tag -F</code>, and <code>del</code> for
+<code>tag -d</code>), <var>repository</var>, and any remaining are
+pairs of <var>filename</var> <var>revision</var>.  A non-zero
+exit of the filter program will cause the tag to be
+aborted.
+</p>
+<p>Here is an example of using the <samp>taginfo</samp> file
+to log <code>tag</code> and <code>rtag</code>
+commands.  In the <samp>taginfo</samp> file put:
+</p>
+<div class="example">
+<pre class="example">ALL /usr/local/cvsroot/CVSROOT/loggit
+</pre></div>
+
+<p>Where <samp>/usr/local/cvsroot/CVSROOT/loggit</samp> contains the
+following script:
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+echo &quot;$@&quot; &gt;&gt;/home/kingdon/cvsroot/CVSROOT/taglog
+</pre></div>
+
+
+
+
+</body>
+</html>

Index: html_node/update-options.html
===================================================================
RCS file: html_node/update-options.html
diff -N html_node/update-options.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/update-options.html       28 Dec 2015 15:58:32 -0000      1.1
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: update options</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: update options">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
update options">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="update.html#update" rel="up" title="update">
+<link href="update-output.html#update-output" rel="next" title="update output">
+<link href="update.html#update" rel="prev" title="update">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="update-options"></a>
+<div class="header">
+<p>
+Next: <a href="update-output.html#update-output" accesskey="n" 
rel="next">update output</a>, Up: <a href="update.html#update" accesskey="u" 
rel="up">update</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="update-options-1"></a>
+<h4 class="appendixsubsec">A.19.1 update options</h4>
+
+<p>These standard options are available with <code>update</code>
+(see <a href="Common-options.html#Common-options">Common options</a> for a 
complete description of
+them):
+</p>
+<dl compact="compact">
+<dt><code>-D date</code></dt>
+<dd><p>Use the most recent revision no later than <var>date</var>.
+This option is sticky, and implies &lsquo;<samp>-P</samp>&rsquo;.
+See <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a> for more 
information on sticky tags/dates.
+</p>
+</dd>
+<dt><code>-f</code></dt>
+<dd><p>Only useful with the &lsquo;<samp>-D <var>date</var></samp>&rsquo; or 
&lsquo;<samp>-r
+<var>tag</var></samp>&rsquo; flags.  If no matching revision is found,
+retrieve the most recent revision (instead of ignoring
+the file).
+</p>
+</dd>
+<dt><code>-k <var>kflag</var></code></dt>
+<dd><p>Process keywords according to <var>kflag</var>.  See
+<a href="Keyword-substitution.html#Keyword-substitution">Keyword 
substitution</a>.
+This option is sticky; future updates of
+this file in this working directory will use the same
+<var>kflag</var>.  The <code>status</code> command can be viewed
+to see the sticky options.  See <a 
href="Invoking-CVS.html#Invoking-CVS">Invoking CVS</a> for
+more information on the <code>status</code> command.
+</p>
+</dd>
+<dt><code>-l</code></dt>
+<dd><p>Local; run only in current working directory.  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-P</code></dt>
+<dd><p>Prune empty directories.  See <a 
href="Moving-directories.html#Moving-directories">Moving directories</a>.
+</p>
+</dd>
+<dt><code>-p</code></dt>
+<dd><p>Pipe files to the standard output.
+</p>
+</dd>
+<dt><code>-R</code></dt>
+<dd><p>Update directories recursively (default).  See <a 
href="Recursive-behavior.html#Recursive-behavior">Recursive behavior</a>.
+</p>
+</dd>
+<dt><code>-r rev</code></dt>
+<dd><p>Retrieve revision/tag <var>rev</var>.  This option is sticky,
+and implies &lsquo;<samp>-P</samp>&rsquo;.
+See <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a>, for more 
information on sticky tags/dates.
+</p></dd>
+</dl>
+
+<p>These special options are also available with
+<code>update</code>.
+</p>
+<dl compact="compact">
+<dt><code>-A</code></dt>
+<dd><p>Reset any sticky tags, dates, or &lsquo;<samp>-k</samp>&rsquo; options.
+Does not reset sticky &lsquo;<samp>-k</samp>&rsquo; options on modified files.
+See <a href="Sticky-tags.html#Sticky-tags">Sticky tags</a> for more 
information on sticky tags/dates.
+</p>
+</dd>
+<dt><code>-C</code></dt>
+<dd><p>Overwrite locally modified files with clean copies from
+the repository (the modified file is saved in
+<samp>.#<var>file</var>.<var>revision</var></samp>, however).
+</p>
+</dd>
+<dt><code>-d</code></dt>
+<dd><p>Create any directories that exist in the repository if
+they&rsquo;re missing from the working directory.  Normally,
+<code>update</code> acts only on directories and files that
+were already enrolled in your working directory.
+</p>
+<p>This is useful for updating directories that were
+created in the repository since the initial checkout;
+but it has an unfortunate side effect.  If you
+deliberately avoided certain directories in the
+repository when you created your working directory
+(either through use of a module name or by listing
+explicitly the files and directories you wanted on the
+command line), then updating with &lsquo;<samp>-d</samp>&rsquo; will create
+those directories, which may not be what you want.
+</p>
+</dd>
+<dt><code>-I <var>name</var></code></dt>
+<dd><p>Ignore files whose names match <var>name</var> (in your
+working directory) during the update.  You can specify
+&lsquo;<samp>-I</samp>&rsquo; more than once on the command line to specify
+several files to ignore.  Use &lsquo;<samp>-I !</samp>&rsquo; to avoid
+ignoring any files at all.  See <a 
href="cvsignore.html#cvsignore">cvsignore</a> for other
+ways to make <small>CVS</small> ignore some files.
+</p>
+</dd>
+<dt><code>-W<var>spec</var></code></dt>
+<dd><p>Specify file names that should be filtered during
+update.  You can use this option repeatedly.
+</p>
+<p><var>spec</var> can be a file name pattern of the same type
+that you can specify in the <samp>.cvswrappers</samp>
+file.  See <a href="Wrappers.html#Wrappers">Wrappers</a>.
+</p>
+</dd>
+<dt><code>-j<var>revision</var></code></dt>
+<dd><p>With two &lsquo;<samp>-j</samp>&rsquo; options, merge changes from the
+revision specified with the first &lsquo;<samp>-j</samp>&rsquo; option to
+the revision specified with the second &lsquo;<samp>j</samp>&rsquo; option,
+into the working directory.
+</p>
+<p>With one &lsquo;<samp>-j</samp>&rsquo; option, merge changes from the
+ancestor revision to the revision specified with the
+&lsquo;<samp>-j</samp>&rsquo; option, into the working directory.  The
+ancestor revision is the common ancestor of the
+revision which the working directory is based on, and
+the revision specified in the &lsquo;<samp>-j</samp>&rsquo; option.
+</p>
+<p>Note that using a single &lsquo;<samp>-j <var>tagname</var></samp>&rsquo; 
option rather than
+&lsquo;<samp>-j <var>branchname</var></samp>&rsquo; to merge changes from a 
branch will
+often not remove files which were removed on the branch.
+See <a href="Merging-adds-and-removals.html#Merging-adds-and-removals">Merging 
adds and removals</a> for more information.
+</p>
+<p>In addition, each &lsquo;<samp>-j</samp>&rsquo; option can contain an 
optional
+date specification which, when used with branches, can
+limit the chosen revision to one within a specific
+date.  An optional date is specified by adding a colon
+(:) to the tag:
+&lsquo;<samp>-j<var>Symbolic_Tag</var>:<var>Date_Specifier</var></samp>&rsquo;.
+</p>
+<p>See <a href="Branching-and-merging.html#Branching-and-merging">Branching 
and merging</a>.
+</p>
+</dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="update-output.html#update-output" accesskey="n" 
rel="next">update output</a>, Up: <a href="update.html#update" accesskey="u" 
rel="up">update</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/update-output.html
===================================================================
RCS file: html_node/update-output.html
diff -N html_node/update-output.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/update-output.html        28 Dec 2015 15:58:32 -0000      1.1
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: update output</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: update output">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
update output">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="update.html#update" rel="up" title="update">
+<link href="Invoking-CVS.html#Invoking-CVS" rel="next" title="Invoking CVS">
+<link href="update-options.html#update-options" rel="prev" title="update 
options">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="update-output"></a>
+<div class="header">
+<p>
+Previous: <a href="update-options.html#update-options" accesskey="p" 
rel="prev">update options</a>, Up: <a href="update.html#update" accesskey="u" 
rel="up">update</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="update-output-1"></a>
+<h4 class="appendixsubsec">A.19.2 update output</h4>
+
+<p><code>update</code> and <code>checkout</code> keep you informed of
+their progress by printing a line for each file, preceded
+by one character indicating the status of the file:
+</p>
+<dl compact="compact">
+<dt><code>U <var>file</var></code></dt>
+<dd><p>The file was brought up to date with respect to the
+repository.  This is done for any file that exists in
+the repository but not in your working directory, and for files
+that you haven&rsquo;t changed but are not the most recent
+versions available in the repository.
+</p>
+</dd>
+<dt><code>P <var>file</var></code></dt>
+<dd><p>Like &lsquo;<samp>U</samp>&rsquo;, but the <small>CVS</small> server 
sends a patch instead of an entire
+file.  This accomplishes the same thing as &lsquo;<samp>U</samp>&rsquo; using 
less bandwidth.
+</p>
+</dd>
+<dt><code>A <var>file</var></code></dt>
+<dd><p>The file has been added to your private copy of the
+sources, and will be added to the source repository
+when you run <code>commit</code> on the file.  This is a
+reminder to you that the file needs to be committed.
+</p>
+</dd>
+<dt><code>R <var>file</var></code></dt>
+<dd><p>The file has been removed from your private copy of the
+sources, and will be removed from the source repository
+when you run <code>commit</code> on the file.  This is a
+reminder to you that the file needs to be committed.
+</p>
+</dd>
+<dt><code>M <var>file</var></code></dt>
+<dd><p>The file is modified in  your  working  directory.
+</p>
+<p>&lsquo;<samp>M</samp>&rsquo; can indicate one of two states for a file
+you&rsquo;re working on: either there were no modifications
+to the same file in the repository, so that your file
+remains as you last saw it; or there were modifications
+in the repository as well as in your copy, but they
+were merged successfully, without conflict, in your
+working directory.
+</p>
+<p><small>CVS</small> will print some messages if it merges your work,
+and a backup copy of your working file (as it looked
+before you ran <code>update</code>) will be made.  The exact
+name of that file is printed while <code>update</code> runs.
+</p>
+</dd>
+<dt><code>C <var>file</var></code></dt>
+<dd><a name="index-_002e_0023-files"></a>
+<a name="index-_005f_005f-files-_0028VMS_0029"></a>
+<p>A conflict was detected while trying to merge your
+changes to <var>file</var> with changes from the source
+repository.  <var>file</var> (the copy in your working
+directory) is now the result of attempting to merge
+the two revisions; an unmodified copy of your file
+is also in your working directory, with the name
+<samp>.#<var>file</var>.<var>revision</var></samp> where <var>revision</var>
+is the revision that your modified file started
+from.  Resolve the conflict as described in
+<a href="Conflicts-example.html#Conflicts-example">Conflicts example</a>.
+(Note that some systems automatically purge
+files that begin with <samp>.#</samp> if they have not been
+accessed for a few days.  If you intend to keep a copy
+of your original file, it is a very good idea to rename
+it.)  Under <small>VMS</small>, the file name starts with
+<samp>__</samp> rather than <samp>.#</samp>.
+</p>
+</dd>
+<dt><code>? <var>file</var></code></dt>
+<dd><p><var>file</var> is in your working directory, but does not
+correspond to anything in the source repository, and is
+not in the list of files for <small>CVS</small> to ignore (see the
+description of the &lsquo;<samp>-I</samp>&rsquo; option, and
+see <a href="cvsignore.html#cvsignore">cvsignore</a>).
+</p></dd>
+</dl>
+
+<hr>
+<div class="header">
+<p>
+Previous: <a href="update-options.html#update-options" accesskey="p" 
rel="prev">update options</a>, Up: <a href="update.html#update" accesskey="u" 
rel="up">update</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>

Index: html_node/update.html
===================================================================
RCS file: html_node/update.html
diff -N html_node/update.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/update.html       28 Dec 2015 15:58:32 -0000      1.1
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: update</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: update">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
update">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="CVS-commands.html#CVS-commands" rel="up" title="CVS commands">
+<link href="update-options.html#update-options" rel="next" title="update 
options">
+<link href="remove-examples.html#remove-examples" rel="prev" title="remove 
examples">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="update"></a>
+<div class="header">
+<p>
+Previous: <a href="remove.html#remove" accesskey="p" rel="prev">remove</a>, 
Up: <a href="CVS-commands.html#CVS-commands" accesskey="u" rel="up">CVS 
commands</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="update_002d_002d_002dBring-work-tree-in-sync-with-repository"></a>
+<h3 class="appendixsec">A.19 update&mdash;Bring work tree in sync with 
repository</h3>
+<a name="index-update-_0028subcommand_0029"></a>
+
+<ul>
+<li> update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag|-D 
date] [-W spec] files&hellip;
+</li><li> Requires: repository, working directory.
+</li><li> Changes: working directory.
+</li></ul>
+
+<p>After you&rsquo;ve run checkout to create your private copy
+of source from the common repository, other developers
+will continue changing the central source.  From time
+to time, when it is convenient in your development
+process, you can use the <code>update</code> command from
+within your working directory to reconcile your work
+with any revisions applied to the source repository
+since your last checkout or update.
+</p>
+<table class="menu" border="0" cellspacing="0">
+<tr><td align="left" valign="top">&bull; <a 
href="update-options.html#update-options" accesskey="1">update 
options</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">update 
options
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a 
href="update-output.html#update-output" accesskey="2">update 
output</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">update output
+</td></tr>
+</table>
+
+
+
+
+</body>
+</html>

Index: html_node/user_002ddefined-logging.html
===================================================================
RCS file: html_node/user_002ddefined-logging.html
diff -N html_node/user_002ddefined-logging.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/user_002ddefined-logging.html     28 Dec 2015 15:58:33 -0000      
1.1
@@ -0,0 +1,83 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: user-defined 
logging</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: user-defined logging">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
user-defined logging">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="History-browsing.html#History-browsing" rel="up" title="History 
browsing">
+<link href="Binary-files.html#Binary-files" rel="next" title="Binary files">
+<link href="history-database.html#history-database" rel="prev" title="history 
database">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="user_002ddefined-logging"></a>
+<div class="header">
+<p>
+Previous: <a href="history-database.html#history-database" accesskey="p" 
rel="prev">history database</a>, Up: <a 
href="History-browsing.html#History-browsing" accesskey="u" rel="up">History 
browsing</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of 
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="User_002ddefined-logging"></a>
+<h3 class="section">8.3 User-defined logging</h3>
+
+<p>You can customize <small>CVS</small> to log various kinds of
+actions, in whatever manner you choose.  These
+mechanisms operate by executing a script at various
+times.  The script might append a message to a file
+listing the information and the programmer who created
+it, or send mail to a group of developers, or, perhaps,
+post a message to a particular newsgroup.  To log
+commits, use the <samp>loginfo</samp> file (see <a 
href="loginfo.html#loginfo">loginfo</a>).
+To log tags, use the <samp>taginfo</samp> file (see <a 
href="taginfo.html#taginfo">taginfo</a>).
+To log checkouts, exports, and tags,
+respectively, you can also use the
+&lsquo;<samp>-o</samp>&rsquo;, &lsquo;<samp>-e</samp>&rsquo;, and 
&lsquo;<samp>-t</samp>&rsquo; options in the
+modules file.  For a more flexible way of giving
+notifications to various users, which requires less in
+the way of keeping centralized scripts up to date, use
+the <code>cvs watch add</code> command (see <a 
href="Getting-Notified.html#Getting-Notified">Getting Notified</a>); this 
command is useful even if you are not
+using <code>cvs watch on</code>.
+</p>
+
+
+
+</body>
+</html>

Index: html_node/verifymsg.html
===================================================================
RCS file: html_node/verifymsg.html
diff -N html_node/verifymsg.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ html_node/verifymsg.html    28 Dec 2015 15:58:33 -0000      1.1
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>CVS&mdash;Concurrent Versions System v1.11.23: verifymsg</title>
+
+<meta name="description" content="CVS&mdash;Concurrent Versions System 
v1.11.23: verifymsg">
+<meta name="keywords" content="CVS&mdash;Concurrent Versions System v1.11.23: 
verifymsg">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="Index.html#Index" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="commit-files.html#commit-files" rel="up" title="commit files">
+<link href="editinfo.html#editinfo" rel="next" title="editinfo">
+<link href="commitinfo.html#commitinfo" rel="prev" title="commitinfo">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" 
vlink="#800080" alink="#FF0000">
+<a name="verifymsg"></a>
+<div class="header">
+<p>
+Next: <a href="editinfo.html#editinfo" accesskey="n" rel="next">editinfo</a>, 
Previous: <a href="commitinfo.html#commitinfo" accesskey="p" 
rel="prev">commitinfo</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+<hr>
+<a name="Verifying-log-messages"></a>
+<h4 class="appendixsubsec">C.4.2 Verifying log messages</h4>
+<a name="index-verifymsg-_0028admin-file_0029"></a>
+<a name="index-Log-message_002c-verifying"></a>
+
+<p>Once you have entered a log message, you can evaluate
+that message to check for specific content, such as
+a bug ID.  Use the <samp>verifymsg</samp> file to
+specify a program that is used to verify the log message.
+This program could be a simple script that checks
+that the entered message contains the required fields.
+</p>
+<p>The <samp>verifymsg</samp> file is often most useful together
+with the <samp>rcsinfo</samp> file, which can be used to
+specify a log message template.
+</p>
+<p>Each line in the <samp>verifymsg</samp> file consists of a
+regular expression and a command-line template.  The
+template must include a program name, and can include
+any number of arguments.  The full path to the current
+log message template file is appended to the template.
+</p>
+<p>One thing that should be noted is that the &lsquo;<samp>ALL</samp>&rsquo;
+keyword is not supported.  If more than one matching
+line is found, the first one is used.  This can be
+useful for specifying a default verification script in a
+directory, and then overriding it in a subdirectory.
+</p>
+<a name="index-DEFAULT-in-verifymsg"></a>
+<p>If the repository name does not match any of the
+regular expressions in this file, the &lsquo;<samp>DEFAULT</samp>&rsquo;
+line is used, if it is specified.
+</p>
+<a name="index-Exit-status_002c-of-verifymsg"></a>
+<p>If the verification script exits with a non-zero exit status,
+the commit is aborted.
+</p>
+<a name="index-verifymsg_002c-changing-the-log-message"></a>
+<p>In the default configuration, CVS allows the
+verification script to change the log message. This is
+controlled via the RereadLogAfterVerify CVSROOT/config
+option.
+</p>
+<p>When &lsquo;<samp>RereadLogAfterVerify=always</samp>&rsquo; or
+&lsquo;<samp>RereadLogAfterVerify=stat</samp>&rsquo;, the log message will
+either always be reread after the verification script
+is run or reread only if the log message file status
+has changed.
+</p>
+<p>See <a href="config.html#config">config</a>, for more on CVSROOT/config 
options.
+</p>
+<p>It is NOT a good idea for a <samp>verifymsg</samp> script to
+interact directly with the user in the various
+client/server methods. For the <code>pserver</code> method,
+there is no protocol support for communicating between
+<samp>verifymsg</samp> and the client on the remote end. For the
+<code>ext</code> and <code>server</code> methods, it is possible
+for CVS to become confused by the characters going
+along the same channel as the CVS protocol
+messages. See <a href="Remote-repositories.html#Remote-repositories">Remote 
repositories</a>, for more
+information on client/server setups.  In addition, at the time
+the <samp>verifymsg</samp> script runs, the CVS
+server has locks in place in the repository.  If control is
+returned to the user here then other users may be stuck waiting
+for access to the repository.
+</p>
+<p>This option can be useful if you find yourself using an
+rcstemplate that needs to be modified to remove empty
+elements or to fill in default values.  It can also be
+useful if the rcstemplate has changed in the repository
+and the CVS/Template was not updated, but is able to be
+adapted to the new format by the verification script
+that is run by <samp>verifymsg</samp>.
+</p>
+<p>An example of an update might be to change all
+occurrences of &rsquo;BugId:&rsquo; to be &rsquo;DefectId:&rsquo; (which can be
+useful if the rcstemplate has recently been changed and
+there are still checked-out user trees with cached
+copies in the CVS/Template file of the older version).
+</p>
+<p>Another example of an update might be to delete a line
+that contains &rsquo;BugID: none&rsquo; from the log message after
+validation of that value as being allowed is made.
+</p>
+<p>The following is a little silly example of a
+<samp>verifymsg</samp> file, together with the corresponding
+<samp>rcsinfo</samp> file, the log message template and an
+verification  script.  We begin with the log message template.
+We want to always record a bug-id number on the first
+line of the log message.  The rest of log message is
+free text.  The following template is found in the file
+<samp>/usr/cvssupport/tc.template</samp>.
+</p>
+<div class="example">
+<pre class="example">BugId:
+</pre></div>
+
+<p>The script <samp>/usr/cvssupport/bugid.verify</samp> is used to
+evaluate the log message.
+</p>
+<div class="example">
+<pre class="example">#!/bin/sh
+#
+#       bugid.verify filename
+#
+#  Verify that the log message contains a valid bugid
+#  on the first line.
+#
+if sed 1q &lt; $1 | grep '^BugId:[ ]*[0-9][0-9]*$' &gt; /dev/null; then
+    exit 0
+elif sed 1q &lt; $1 | grep '^BugId:[ ]*none$' &gt; /dev/null; then
+    # It is okay to allow commits with 'BugId: none',
+    # but do not put that text into the real log message.
+    grep -v '^BugId:[ ]*none$' &gt; $1.rewrite
+    mv $1.rewrite $1
+    exit 0
+else
+    echo &quot;No BugId found.&quot;
+    exit 1
+fi
+</pre></div>
+
+<p>The <samp>verifymsg</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/bugid.verify
+</pre></div>
+
+<p>The <samp>rcsinfo</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">^tc     /usr/cvssupport/tc.template
+</pre></div>
+
+<p>The <samp>config</samp> file contains this line:
+</p>
+<div class="example">
+<pre class="example">RereadLogAfterVerify=always
+</pre></div>
+
+
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="editinfo.html#editinfo" accesskey="n" rel="next">editinfo</a>, 
Previous: <a href="commitinfo.html#commitinfo" accesskey="p" 
rel="prev">commitinfo</a>, Up: <a href="commit-files.html#commit-files" 
accesskey="u" rel="up">commit files</a> &nbsp; [<a 
href="index.html#SEC_Contents" title="Table of contents" 
rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" 
rel="index">Index</a>]</p>
+</div>
+
+
+
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]