summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/cvs/doc/cvs.info-1
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/cvs/doc/cvs.info-1')
-rw-r--r--gnu/usr.bin/cvs/doc/cvs.info-1186
1 files changed, 85 insertions, 101 deletions
diff --git a/gnu/usr.bin/cvs/doc/cvs.info-1 b/gnu/usr.bin/cvs/doc/cvs.info-1
index e657bc7206a..e7a92fd2d3e 100644
--- a/gnu/usr.bin/cvs/doc/cvs.info-1
+++ b/gnu/usr.bin/cvs/doc/cvs.info-1
@@ -27,18 +27,17 @@ File: cvs.info, Node: Top, Next: Preface, Up: (dir)
This info manual describes how to use and administer CVS version
-1.9.4.
+1.9.6.
* Menu:
* Preface:: About this manual
* What is CVS?:: What is CVS?
-* Basic concepts:: Basic concepts of revision management
* A sample session:: A tour of basic CVS usage
* Repository:: Where all your sources are stored
* Starting a new project:: Starting a project with CVS
* Multiple developers:: How CVS helps a group of developers
-* Branches:: Parallel development explained
+* Revisions and branches:: Numeric, symbolic, and branch revisions
* Merging:: How to move changes between branches
* Recursive behavior:: CVS descends directories
* Adding files:: Adding files
@@ -204,7 +203,7 @@ above-mentioned shortcomings.
Per Cederqvist

-File: cvs.info, Node: What is CVS?, Next: Basic concepts, Prev: Preface, Up: Top
+File: cvs.info, Node: What is CVS?, Next: A sample session, Prev: Preface, Up: Top
What is CVS?
************
@@ -380,107 +379,15 @@ CVS does not have a builtin process model
once they have been proven.

-File: cvs.info, Node: Basic concepts, Next: A sample session, Prev: What is CVS?, Up: Top
-
-Basic concepts
-**************
-
- CVS stores all files in a centralized "repository" (*note
-Repository::.).
-
- The repository contains directories and files, in an arbitrary tree.
-The "modules" feature can be used to group together a set of
-directories or files into a single entity (*note modules::.). A
-typical usage is to define one module per project.
-
-* Menu:
-
-* Revision numbers:: The meaning of a revision number
-* Versions revisions releases:: Terminology used in this manual
-
-
-File: cvs.info, Node: Revision numbers, Next: Versions revisions releases, Up: Basic concepts
-
-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 !
- +-----+ +-----+ +-----+ +-----+ +-----+
-
- 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.2.2.4 !
- / +---------+ +---------+ +---------+ +---------+
- /
- /
- +-----+ +-----+ +-----+ +-----+ +-----+
- ! 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::.
-
-
-File: cvs.info, Node: Versions revisions releases, Prev: Revision numbers, Up: Basic concepts
-
-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.
-
-
-File: cvs.info, Node: A sample session, Next: Repository, Prev: Basic concepts, Up: Top
+File: cvs.info, Node: A sample session, Next: Repository, Prev: What is CVS?, Up: Top
A sample session
****************
- This section describes a typical work-session using CVS. It assumes
-that a repository is set up (*note Repository::.).
+ 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'
@@ -1189,3 +1096,80 @@ as well.
is to paste it there from somewhere else. Someday, there may be a `cvs
passwd' command.
+
+File: cvs.info, Node: Password authentication client, Next: Password authentication security, Prev: Password authentication server, Up: Password authenticated
+
+Using the client with password authentication
+.............................................
+
+ Before connecting to the server, the client must "log in" with the
+command `cvs login'. Logging in verifies a password with the server,
+and also records the password for later transactions with the server.
+The `cvs login' command needs to know the username, server hostname,
+and full repository path, and it gets this information from the
+repository argument or the `CVSROOT' environment variable.
+
+ `cvs login' is interactive -- it prompts for a password:
+
+ cvs -d :pserver:bach@chainsaw.brickyard.com:/usr/local/cvsroot login
+ CVS password:
+
+ The password is checked with the server; if it is correct, the
+`login' succeeds, else it fails, complaining that the password was
+incorrect.
+
+ Once you have logged in, you can force CVS to connect directly to
+the server and authenticate with the stored password:
+
+ cvs -d :pserver:bach@chainsaw.brickyard.com:/usr/local/cvsroot checkout foo
+
+ The `:pserver:' is necessary because without it, CVS will assume it
+should use `rsh' to connect with the server (*note Connecting via
+rsh::.). (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 records it in the working copy's
+`CVS' subdirectory.)
+
+ Passwords are stored by default in the file `$HOME/.cvspass'. Its
+format is human-readable, but don't edit it unless you know what you
+are doing. The passwords are not stored in cleartext, but are
+trivially encoded to protect them from "innocent" compromise (i.e.,
+inadvertently being seen by a system administrator who happens to look
+at that file).
+
+ The password for the currently choosen remote repository can be
+removed from the CVS_PASSFILE by using the `cvs logout' command.
+
+ The `CVS_PASSFILE' environment variable overrides this default. 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.
+
+
+File: cvs.info, Node: Password authentication security, Prev: Password authentication client, Up: Password authenticated
+
+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
+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. Furthermore,
+there may be other ways in which having access to CVS allows people to
+gain more general access to the system; noone has done a careful audit.
+
+ In summary, anyone who gets the password gets repository access, and
+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.
+