xref: /openbsd-src/gnu/usr.bin/cvs/doc/cvs.info-8 (revision 43c1707e6f6829177cb1974ee6615ce6c1307689)
1*43c1707eStholoThis is cvs.info, produced by makeinfo version 4.0 from cvs.texinfo.
290ac78dfStholo
36407bc5bStholoSTART-INFO-DIR-ENTRY
46407bc5bStholo* CVS: (cvs).          Concurrent Versions System
56407bc5bStholoEND-INFO-DIR-ENTRY
66407bc5bStholo
790ac78dfStholo   Copyright (C) 1992, 1993 Signum Support AB Copyright (C) 1993, 1994
890ac78dfStholoFree Software Foundation, Inc.
990ac78dfStholo
1090ac78dfStholo   Permission is granted to make and distribute verbatim copies of this
1190ac78dfStholomanual provided the copyright notice and this permission notice are
1290ac78dfStholopreserved on all copies.
1390ac78dfStholo
1490ac78dfStholo   Permission is granted to copy and distribute modified versions of
1590ac78dfStholothis manual under the conditions for verbatim copying, provided also
166407bc5bStholothat the entire resulting derived work is distributed under the terms
176407bc5bStholoof a permission notice identical to this one.
1890ac78dfStholo
1990ac78dfStholo   Permission is granted to copy and distribute translations of this
2090ac78dfStholomanual into another language, under the above conditions for modified
216407bc5bStholoversions, except that this permission notice may be stated in a
226407bc5bStholotranslation approved by the Free Software Foundation.
2390ac78dfStholo
2490ac78dfStholo
25e77048c1StholoFile: cvs.info,  Node: cvsignore,  Next: checkoutlist,  Prev: rcsinfo,  Up: Administrative files
26e77048c1Stholo
27e77048c1StholoIgnoring files via cvsignore
28e77048c1Stholo============================
29e77048c1Stholo
30e77048c1Stholo   There are certain file names that frequently occur inside your
31e77048c1Stholoworking copy, but that you don't want to put under CVS control.
32e77048c1StholoExamples are all the object files that you get while you compile your
33e77048c1Stholosources.  Normally, when you run `cvs update', it prints a line for
34e77048c1Stholoeach file it encounters that it doesn't know about (*note update
35e77048c1Stholooutput::).
36e77048c1Stholo
37e77048c1Stholo   CVS has a list of files (or sh(1) file name patterns) that it should
38e77048c1Stholoignore while running `update', `import' and `release'.  This list is
39e77048c1Stholoconstructed in the following way.
40e77048c1Stholo
41e77048c1Stholo   * The list is initialized to include certain file name patterns:
42e77048c1Stholo     names associated with CVS administration, or with other common
43e77048c1Stholo     source control systems; common names for patch files, object files,
44e77048c1Stholo     archive files, and editor backup files; and other names that are
45e77048c1Stholo     usually artifacts of assorted utilities.  Currently, the default
46e77048c1Stholo     list of ignored file name patterns is:
47e77048c1Stholo
48e77048c1Stholo              RCS     SCCS    CVS     CVS.adm
49e77048c1Stholo              RCSLOG  cvslog.*
50e77048c1Stholo              tags    TAGS
51e77048c1Stholo              .make.state     .nse_depinfo
52e77048c1Stholo              *~      #*      .#*     ,*      _$*     *$
53e77048c1Stholo              *.old   *.bak   *.BAK   *.orig  *.rej   .del-*
54e77048c1Stholo              *.a     *.olb   *.o     *.obj   *.so    *.exe
55e77048c1Stholo              *.Z     *.elc   *.ln
56e77048c1Stholo              core
57e77048c1Stholo
58e77048c1Stholo   * The per-repository list in `$CVSROOT/CVSROOT/cvsignore' is
59e77048c1Stholo     appended to the list, if that file exists.
60e77048c1Stholo
61e77048c1Stholo   * The per-user list in `.cvsignore' in your home directory is
62e77048c1Stholo     appended to the list, if it exists.
63e77048c1Stholo
64e77048c1Stholo   * Any entries in the environment variable `$CVSIGNORE' is appended
65e77048c1Stholo     to the list.
66e77048c1Stholo
67e77048c1Stholo   * Any `-I' options given to CVS is appended.
68e77048c1Stholo
69e77048c1Stholo   * As CVS traverses through your directories, the contents of any
70e77048c1Stholo     `.cvsignore' will be appended to the list.  The patterns found in
71e77048c1Stholo     `.cvsignore' are only valid for the directory that contains them,
72e77048c1Stholo     not for any sub-directories.
73e77048c1Stholo
74e77048c1Stholo   In any of the 5 places listed above, a single exclamation mark (`!')
75e77048c1Stholoclears the ignore list.  This can be used if you want to store any file
76e77048c1Stholowhich normally is ignored by CVS.
77e77048c1Stholo
78e77048c1Stholo   Specifying `-I !' to `cvs import' will import everything, which is
79e77048c1Sthologenerally what you want to do if you are importing files from a
80e77048c1Stholopristine distribution or any other source which is known to not contain
81e77048c1Stholoany extraneous files.  However, looking at the rules above you will see
82e77048c1Stholothere is a fly in the ointment; if the distribution contains any
83e77048c1Stholo`.cvsignore' files, then the patterns from those files will be
84e77048c1Stholoprocessed even if `-I !' is specified.  The only workaround is to
85e77048c1Stholoremove the `.cvsignore' files in order to do the import.  Because this
86e77048c1Stholois awkward, in the future `-I !' might be modified to override
87e77048c1Stholo`.cvsignore' files in each directory.
88e77048c1Stholo
89e77048c1Stholo   Note that the syntax of the ignore files consists of a series of
90e77048c1Sthololines, each of which contains a space separated list of filenames.
91e77048c1StholoThis offers no clean way to specify filenames which contain spaces, but
92e77048c1Stholoyou can use a workaround like `foo?bar' to match a file named `foo bar'
93e77048c1Stholo(it also matches `fooxbar' and the like).  Also note that there is
94e77048c1Stholocurrently no way to specify comments.
95e77048c1Stholo
96e77048c1Stholo
972f9d2fd9StholoFile: cvs.info,  Node: checkoutlist,  Next: history file,  Prev: cvsignore,  Up: Administrative files
982f9d2fd9Stholo
992f9d2fd9StholoThe checkoutlist file
1002f9d2fd9Stholo=====================
1012f9d2fd9Stholo
1022f9d2fd9Stholo   It may be helpful to use CVS to maintain your own files in the
1032f9d2fd9Stholo`CVSROOT' directory.  For example, suppose that you have a script
1042f9d2fd9Stholo`logcommit.pl' which you run by including the following line in the
1052f9d2fd9Stholo`commitinfo' administrative file:
1062f9d2fd9Stholo
1072f9d2fd9Stholo     ALL   $CVSROOT/CVSROOT/logcommit.pl
1082f9d2fd9Stholo
1092f9d2fd9Stholo   To maintain `logcommit.pl' with CVS you would add the following line
1102f9d2fd9Stholoto the `checkoutlist' administrative file:
1112f9d2fd9Stholo
1122f9d2fd9Stholo     logcommit.pl
1132f9d2fd9Stholo
1142f9d2fd9Stholo   The format of `checkoutlist' is one line for each file that you want
1152f9d2fd9Stholoto maintain using CVS, giving the name of the file.
1162f9d2fd9Stholo
1172f9d2fd9Stholo   After setting up `checkoutlist' in this fashion, the files listed
1182f9d2fd9Stholothere will function just like CVS's built-in administrative files.  For
1192f9d2fd9Stholoexample, when checking in one of the files you should get a message
1202f9d2fd9Stholosuch as:
1212f9d2fd9Stholo
1222f9d2fd9Stholo     cvs commit: Rebuilding administrative file database
1232f9d2fd9Stholo
1242f9d2fd9Stholo   and the checked out copy in the `CVSROOT' directory should be
1252f9d2fd9Stholoupdated.
1262f9d2fd9Stholo
127e77048c1Stholo   Note that listing `passwd' (*note Password authentication server::)
1282f9d2fd9Stholoin `checkoutlist' is not recommended for security reasons.
1292f9d2fd9Stholo
1302f9d2fd9Stholo   For information about keeping a checkout out copy in a more general
1312f9d2fd9Stholocontext than the one provided by `checkoutlist', see *Note Keeping a
1322f9d2fd9Stholochecked out copy::.
1332f9d2fd9Stholo
1342f9d2fd9Stholo
1352f9d2fd9StholoFile: cvs.info,  Node: history file,  Next: Variables,  Prev: checkoutlist,  Up: Administrative files
1362f9d2fd9Stholo
1372f9d2fd9StholoThe history file
1382f9d2fd9Stholo================
1392f9d2fd9Stholo
1402f9d2fd9Stholo   The file `$CVSROOT/CVSROOT/history' is used to log information for
141e77048c1Stholothe `history' command (*note history::).  This file must be created to
1422f9d2fd9Stholoturn on logging.  This is done automatically if the `cvs init' command
143e77048c1Stholois used to set up the repository (*note Creating a repository::).
1442f9d2fd9Stholo
1452f9d2fd9Stholo   The file format of the `history' file is documented only in comments
1462f9d2fd9Stholoin the CVS source code, but generally programs should use the `cvs
1472f9d2fd9Stholohistory' command to access it anyway, in case the format changes with
1482f9d2fd9Stholofuture releases of CVS.
1492f9d2fd9Stholo
1502f9d2fd9Stholo
1518506102dStholoFile: cvs.info,  Node: Variables,  Next: config,  Prev: history file,  Up: Administrative files
1528506102dStholo
1538506102dStholoExpansions in administrative files
1548506102dStholo==================================
1558506102dStholo
1568506102dStholo   Sometimes in writing an administrative file, you might want the file
1578506102dStholoto be able to know various things based on environment CVS is running
1588506102dStholoin.  There are several mechanisms to do that.
1598506102dStholo
1608506102dStholo   To find the home directory of the user running CVS (from the `HOME'
1618506102dStholoenvironment variable), use `~' followed by `/' or the end of the line.
1628506102dStholoLikewise for the home directory of USER, use `~USER'.  These variables
1638506102dStholoare expanded on the server machine, and don't get any reasonable
164e77048c1Stholoexpansion if pserver (*note Password authenticated::) is in use;
1658506102dStholotherefore user variables (see below) may be a better choice to
1668506102dStholocustomize behavior based on the user running CVS.
1678506102dStholo
1688506102dStholo   One may want to know about various pieces of information internal to
1698506102dStholoCVS.  A CVS internal variable has the syntax `${VARIABLE}', where
1708506102dStholoVARIABLE starts with a letter and consists of alphanumeric characters
1718506102dStholoand `_'.  If the character following VARIABLE is a non-alphanumeric
1728506102dStholocharacter other than `_', the `{' and `}' can be omitted.  The CVS
1738506102dStholointernal variables are:
1748506102dStholo
1758506102dStholo`CVSROOT'
1768506102dStholo     This is the value of the CVS root in use.  *Note Repository::, for
1778506102dStholo     a description of the various ways to specify this.
1788506102dStholo
1798506102dStholo`RCSBIN'
1808506102dStholo     In CVS 1.9.18 and older, this specified the directory where CVS
1818506102dStholo     was looking for RCS programs.  Because CVS no longer runs RCS
1828506102dStholo     programs, specifying this internal variable is now an error.
1838506102dStholo
1848506102dStholo`CVSEDITOR'
1858506102dStholo`VISUAL'
1868506102dStholo`EDITOR'
1878506102dStholo     These all expand to the same value, which is the editor that CVS
1888506102dStholo     is using.  *Note Global options::, for how to specify this.
1898506102dStholo
1908506102dStholo`USER'
1918506102dStholo     Username of the user running CVS (on the CVS server machine).
192e77048c1Stholo     When using pserver, this is the user specified in the repository
193e77048c1Stholo     specification which need not be the same as the username the
194e77048c1Stholo     server is running as (*note Password authentication server::).
1958506102dStholo
1968506102dStholo   If you want to pass a value to the administrative files which the
1978506102dStholouser who is running CVS can specify, use a user variable.  To expand a
1988506102dStholouser variable, the administrative file contains `${=VARIABLE}'.  To set
1998506102dStholoa user variable, specify the global option `-s' to CVS, with argument
2008506102dStholo`VARIABLE=VALUE'.  It may be particularly useful to specify this option
201e77048c1Stholovia `.cvsrc' (*note ~/.cvsrc::).
2028506102dStholo
2038506102dStholo   For example, if you want the administrative file to refer to a test
2048506102dStholodirectory you might create a user variable `TESTDIR'.  Then if CVS is
2058506102dStholoinvoked as
2068506102dStholo
2078506102dStholo     cvs -s TESTDIR=/work/local/tests
2088506102dStholo
2098506102dStholoand the administrative file contains `sh ${=TESTDIR}/runtests', then
2108506102dStholothat string is expanded to `sh /work/local/tests/runtests'.
2118506102dStholo
2128506102dStholo   All other strings containing `$' are reserved; there is no way to
2138506102dStholoquote a `$' character so that `$' represents itself.
2148506102dStholo
215*43c1707eStholo   Environment variables passed to administrative files are:
216*43c1707eStholo
217*43c1707eStholo`CVS_USER'
218*43c1707eStholo     The CVS-specific username provided by the user, if it can be
219*43c1707eStholo     provided (currently just for the pserver access method), and to
220*43c1707eStholo     the empty string otherwise.  (CVS_USER and USER may differ when
221*43c1707eStholo     `$CVSROOT/CVSROOT/passwd' is used to map cvs usernames to system
222*43c1707eStholo     usernames.)
223*43c1707eStholo
2248506102dStholo
2258506102dStholoFile: cvs.info,  Node: config,  Prev: Variables,  Up: Administrative files
2268506102dStholo
2278506102dStholoThe CVSROOT/config configuration file
2288506102dStholo=====================================
2298506102dStholo
2308506102dStholo   The administrative file `config' contains various miscellaneous
2318506102dStholosettings which affect the behavior of CVS.  The syntax is slightly
2328506102dStholodifferent from the other administrative files.  Variables are not
2338506102dStholoexpanded.  Lines which start with `#' are considered comments.  Other
2348506102dSthololines consist of a keyword, `=', and a value.  Note that this syntax is
2358506102dStholovery strict.  Extraneous spaces or tabs are not permitted.
2368506102dStholo
2378506102dStholo   Currently defined keywords are:
2388506102dStholo
2398506102dStholo`RCSBIN=BINDIR'
2408506102dStholo     For CVS 1.9.12 through 1.9.18, this setting told CVS to look for
2418506102dStholo     RCS programs in the BINDIR directory.  Current versions of CVS do
2428506102dStholo     not run RCS programs; for compatibility this setting is accepted,
2438506102dStholo     but it does nothing.
2448506102dStholo
2458506102dStholo`SystemAuth=VALUE'
2468506102dStholo     If VALUE is `yes', then pserver should check for users in the
2478506102dStholo     system's user database if not found in `CVSROOT/passwd'.  If it is
2488506102dStholo     `no', then all pserver users must exist in `CVSROOT/passwd'.  The
2498506102dStholo     default is `yes'.  For more on pserver, see *Note Password
2508506102dStholo     authenticated::.
2518506102dStholo
2528506102dStholo`TopLevelAdmin=VALUE'
2538506102dStholo     Modify the `checkout' command to create a `CVS' directory at the
2548506102dStholo     top level of the new working directory, in addition to `CVS'
2558506102dStholo     directories created within checked-out directories.  The default
2568506102dStholo     value is `no'.
2578506102dStholo
2588506102dStholo     This option is useful if you find yourself performing many
2598506102dStholo     commands at the top level of your working directory, rather than
2608506102dStholo     in one of the checked out subdirectories.  The `CVS' directory
2618506102dStholo     created there will mean you don't have to specify `CVSROOT' for
2628506102dStholo     each command.  It also provides a place for the `CVS/Template'
263e77048c1Stholo     file (*note Working directory storage::).
2648506102dStholo
2658506102dStholo`LockDir=DIRECTORY'
2668506102dStholo     Put CVS lock files in DIRECTORY rather than directly in the
2678506102dStholo     repository.  This is useful if you want to let users read from the
2688506102dStholo     repository while giving them write access only to DIRECTORY, not
2698506102dStholo     to the repository.  You need to create DIRECTORY, but CVS will
2708506102dStholo     create subdirectories of DIRECTORY as it needs them.  For
2718506102dStholo     information on CVS locks, see *Note Concurrency::.
2728506102dStholo
2738506102dStholo     Before enabling the LockDir option, make sure that you have
2748506102dStholo     tracked down and removed any copies of CVS 1.9 or older.  Such
2758506102dStholo     versions neither support LockDir, nor will give an error
2768506102dStholo     indicating that they don't support it.  The result, if this is
2778506102dStholo     allowed to happen, is that some CVS users will put the locks one
2788506102dStholo     place, and others will put them another place, and therefore the
2798506102dStholo     repository could become corrupted.  CVS 1.10 does not support
2808506102dStholo     LockDir but it will print a warning if run on a repository with
2818506102dStholo     LockDir enabled.
2828506102dStholo
283e77048c1Stholo`LogHistory=VALUE'
284e77048c1Stholo     Control what is logged to the `CVSROOT/history' file.  Default of
285e77048c1Stholo     `TOFEWGCMAR' (or simply `all') will log all transactions.  Any
286e77048c1Stholo     subset of the default is legal.  (For example, to only log
287e77048c1Stholo     transactions that modify the `*,v' files, use `LogHistory=TMAR'.)
288e77048c1Stholo
2898506102dStholo
2908506102dStholoFile: cvs.info,  Node: Environment variables,  Next: Compatibility,  Prev: Administrative files,  Up: Top
2918506102dStholo
2928506102dStholoAll environment variables which affect CVS
2938506102dStholo******************************************
2948506102dStholo
2958506102dStholo   This is a complete list of all environment variables that affect CVS.
2968506102dStholo
2978506102dStholo`$CVSIGNORE'
2988506102dStholo     A whitespace-separated list of file name patterns that CVS should
2998506102dStholo     ignore. *Note cvsignore::.
3008506102dStholo
3018506102dStholo`$CVSWRAPPERS'
3028506102dStholo     A whitespace-separated list of file name patterns that CVS should
3038506102dStholo     treat as wrappers. *Note Wrappers::.
3048506102dStholo
3058506102dStholo`$CVSREAD'
3068506102dStholo     If this is set, `checkout' and `update' will try hard to make the
3078506102dStholo     files in your working directory read-only.  When this is not set,
3088506102dStholo     the default behavior is to permit modification of your working
3098506102dStholo     files.
3108506102dStholo
3118506102dStholo`$CVSUMASK'
3128506102dStholo     Controls permissions of files in the repository.  See *Note File
3138506102dStholo     permissions::.
3148506102dStholo
3158506102dStholo`$CVSROOT'
3168506102dStholo     Should contain the full pathname to the root of the CVS source
3178506102dStholo     repository (where the RCS files are kept).  This information must
3188506102dStholo     be available to CVS for most commands to execute; if `$CVSROOT' is
3198506102dStholo     not set, or if you wish to override it for one invocation, you can
3208506102dStholo     supply it on the command line: `cvs -d cvsroot cvs_command...'
3218506102dStholo     Once you have checked out a working directory, CVS stores the
3228506102dStholo     appropriate root (in the file `CVS/Root'), so normally you only
3238506102dStholo     need to worry about this when initially checking out a working
3248506102dStholo     directory.
3258506102dStholo
3268506102dStholo`$EDITOR'
3278506102dStholo`$CVSEDITOR'
3288506102dStholo`$VISUAL'
3298506102dStholo     Specifies the program to use for recording log messages during
3308506102dStholo     commit.  `$CVSEDITOR' overrides `$EDITOR'.  See *Note Committing
3318506102dStholo     your changes::.
3328506102dStholo
3338506102dStholo`$PATH'
3348506102dStholo     If `$RCSBIN' is not set, and no path is compiled into CVS, it will
3358506102dStholo     use `$PATH' to try to find all programs it uses.
3368506102dStholo
3378506102dStholo`$HOME'
3382f9d2fd9Stholo
3398506102dStholo`$HOMEPATH'
3402f9d2fd9Stholo
3418506102dStholo`$HOMEDRIVE'
3428506102dStholo     Used to locate the directory where the `.cvsrc' file, and other
343e77048c1Stholo     such files, are searched.  On Unix, CVS just checks for `HOME'.
344e77048c1Stholo     On Windows NT, the system will set `HOMEDRIVE', for example to
345e77048c1Stholo     `d:' and `HOMEPATH', for example to `\joe'.  On Windows 95, you'll
346e77048c1Stholo     probably need to set `HOMEDRIVE' and `HOMEPATH' yourself.
3478506102dStholo
3488506102dStholo`$CVS_RSH'
3498506102dStholo     Specifies the external program which CVS connects with, when
350e77048c1Stholo     `:ext:' access method is specified.  *note Connecting via rsh::.
3518506102dStholo
3528506102dStholo`$CVS_SERVER'
3538506102dStholo     Used in client-server mode when accessing a remote repository
3548506102dStholo     using RSH.  It specifies the name of the program to start on the
3558506102dStholo     server side when accessing a remote repository using RSH.  The
356e77048c1Stholo     default value is `cvs'.  *note Connecting via rsh::
3578506102dStholo
3588506102dStholo`$CVS_PASSFILE'
3598506102dStholo     Used in client-server mode when accessing the `cvs login server'.
3608506102dStholo     Default value is `$HOME/.cvspass'.  *note Password authentication
361e77048c1Stholo     client::
3628506102dStholo
3638506102dStholo`$CVS_CLIENT_PORT'
364*43c1707eStholo     Used in client-server mode when accessing the server via Kerberos,
365*43c1707eStholo     GSSAPI, or CVS's password authentication if the port is not
366*43c1707eStholo     specified in $CVSROOT.  *note Remote repositories::
3678506102dStholo
3688506102dStholo`$CVS_RCMD_PORT'
3698506102dStholo     Used in client-server mode.  If set, specifies the port number to
3708506102dStholo     be used when accessing the RCMD demon on the server side.
3718506102dStholo     (Currently not used for Unix clients).
3728506102dStholo
3738506102dStholo`$CVS_CLIENT_LOG'
3748506102dStholo     Used for debugging only in client-server mode.  If set, everything
375e77048c1Stholo     sent to the server is logged into ``$CVS_CLIENT_LOG'.in' and
376e77048c1Stholo     everything sent from the server is logged into
3778506102dStholo     ``$CVS_CLIENT_LOG'.out'.
3788506102dStholo
3798506102dStholo`$CVS_SERVER_SLEEP'
3808506102dStholo     Used only for debugging the server side in client-server mode.  If
3818506102dStholo     set, delays the start of the server child process the specified
3828506102dStholo     amount of seconds so that you can attach to it with a debugger.
3838506102dStholo
3848506102dStholo`$CVS_IGNORE_REMOTE_ROOT'
3858506102dStholo     For CVS 1.10 and older, setting this variable prevents CVS from
3868506102dStholo     overwriting the `CVS/Root' file when the `-d' global option is
3878506102dStholo     specified.  Later versions of CVS do not rewrite `CVS/Root', so
388e77048c1Stholo     `CVS_IGNORE_REMOTE_ROOT' has no effect.
3898506102dStholo
3908506102dStholo`$COMSPEC'
3918506102dStholo     Used under OS/2 only.  It specifies the name of the command
3928506102dStholo     interpreter and defaults to CMD.EXE.
3938506102dStholo
3948506102dStholo`$TMPDIR'
3958506102dStholo`$TMP'
3968506102dStholo`$TEMP'
3978506102dStholo     Directory in which temporary files are located.  The CVS server
3988506102dStholo     uses `TMPDIR'.  *Note Global options::, for a description of how
3998506102dStholo     to specify this.  Some parts of CVS will always use `/tmp' (via
4008506102dStholo     the `tmpnam' function provided by the system).
4018506102dStholo
4028506102dStholo     On Windows NT, `TMP' is used (via the `_tempnam' function provided
4038506102dStholo     by the system).
4048506102dStholo
4058506102dStholo     The `patch' program which is used by the CVS client uses `TMPDIR',
4068506102dStholo     and if it is not set, uses `/tmp' (at least with GNU patch 2.1).
4078506102dStholo     Note that if your server and client are both running CVS 1.9.10 or
4088506102dStholo     later, CVS will not invoke an external `patch' program.
4098506102dStholo
4108506102dStholo
4118506102dStholoFile: cvs.info,  Node: Compatibility,  Next: Troubleshooting,  Prev: Environment variables,  Up: Top
4128506102dStholo
4138506102dStholoCompatibility between CVS Versions
4148506102dStholo**********************************
4158506102dStholo
4168506102dStholo   The repository format is compatible going back to CVS 1.3.  But see
4178506102dStholo*Note Watches Compatibility::, if you have copies of CVS 1.6 or older
4188506102dStholoand you want to use the optional developer communication features.
4198506102dStholo
4208506102dStholo   The working directory format is compatible going back to CVS 1.5.
4218506102dStholoIt did change between CVS 1.3 and CVS 1.5.  If you run CVS 1.5 or newer
4228506102dStholoon a working directory checked out with CVS 1.3, CVS will convert it,
4238506102dStholobut to go back to CVS 1.3 you need to check out a new working directory
4248506102dStholowith CVS 1.3.
4258506102dStholo
4268506102dStholo   The remote protocol is interoperable going back to CVS 1.5, but no
4278506102dStholofurther (1.5 was the first official release with the remote protocol,
4288506102dStholobut some older versions might still be floating around).  In many cases
4298506102dStholoyou need to upgrade both the client and the server to take advantage of
4308506102dStholonew features and bugfixes, however.
4318506102dStholo
4328506102dStholo
4338506102dStholoFile: cvs.info,  Node: Troubleshooting,  Next: Credits,  Prev: Compatibility,  Up: Top
4348506102dStholo
4358506102dStholoTroubleshooting
4368506102dStholo***************
4378506102dStholo
4388506102dStholo   If you are having trouble with CVS, this appendix may help.  If
4398506102dStholothere is a particular error message which you are seeing, then you can
4408506102dSthololook up the message alphabetically.  If not, you can look through the
4418506102dStholosection on other problems to see if your problem is mentioned there.
4428506102dStholo
4438506102dStholo* Menu:
4448506102dStholo
4458506102dStholo* Error messages::              Partial list of CVS errors
4468506102dStholo* Connection::                  Trouble making a connection to a CVS server
4478506102dStholo* Other problems::              Problems not readily listed by error message
4488506102dStholo
4498506102dStholo
4502f91a5f5StholoFile: cvs.info,  Node: Error messages,  Next: Connection,  Up: Troubleshooting
4512f91a5f5Stholo
4522f91a5f5StholoPartial list of error messages
4532f91a5f5Stholo==============================
4542f91a5f5Stholo
4552f91a5f5Stholo   Here is a partial list of error messages that you may see from CVS.
4562f91a5f5StholoIt is not a complete list--CVS is capable of printing many, many error
4572f91a5f5Stholomessages, often with parts of them supplied by the operating system,
4582f91a5f5Stholobut the intention is to list the common and/or potentially confusing
4592f91a5f5Stholoerror messages.
4602f91a5f5Stholo
4612f91a5f5Stholo   The messages are alphabetical, but introductory text such as `cvs
4622f91a5f5Stholoupdate: ' is not considered in ordering them.
4632f91a5f5Stholo
4642f91a5f5Stholo   In some cases the list includes messages printed by old versions of
4652f91a5f5StholoCVS (partly because users may not be sure which version of CVS they are
4662f91a5f5Stholousing at any particular moment).
4672f91a5f5Stholo
4682f91a5f5Stholo`cvs COMMAND: authorization failed: server HOST rejected access'
4692f91a5f5Stholo     This is a generic response when trying to connect to a pserver
4702f91a5f5Stholo     server which chooses not to provide a specific reason for denying
4712f91a5f5Stholo     authorization.  Check that the username and password specified are
472e77048c1Stholo     correct and that the `CVSROOT' specified is allowed by
473e77048c1Stholo     `--allow-root' in `inetd.conf'.  See *Note Password
474e77048c1Stholo     authenticated::.
4752f91a5f5Stholo
4762f91a5f5Stholo`FILE:LINE: Assertion 'TEXT' failed'
4772f91a5f5Stholo     The exact format of this message may vary depending on your
4782f91a5f5Stholo     system.  It indicates a bug in CVS, which can be handled as
4792f91a5f5Stholo     described in *Note BUGS::.
4802f91a5f5Stholo
4816407bc5bStholo`cvs COMMAND: conflict: removed FILE was modified by second party'
4826407bc5bStholo     This message indicates that you removed a file, and someone else
4836407bc5bStholo     modified it.  To resolve the conflict, first run `cvs add FILE'.
4846407bc5bStholo     If desired, look at the other party's modification to decide
4856407bc5bStholo     whether you still want to remove it.  If you don't want to remove
4866407bc5bStholo     it, stop here.  If you do want to remove it, proceed with `cvs
4876407bc5bStholo     remove FILE' and commit your removal.
4886407bc5bStholo
4892f91a5f5Stholo`cannot change permissions on temporary directory'
4902f91a5f5Stholo          Operation not permitted
4912f91a5f5Stholo     This message has been happening in a non-reproducible, occasional
4922f91a5f5Stholo     way when we run the client/server testsuite, both on Red Hat Linux
4932f91a5f5Stholo     3.0.3 and 4.1.  We haven't been able to figure out what causes it,
4942f91a5f5Stholo     nor is it known whether it is specific to linux (or even to this
4952f91a5f5Stholo     particular machine!).  If the problem does occur on other unices,
4962f91a5f5Stholo     `Operation not permitted' would be likely to read `Not owner' or
4972f91a5f5Stholo     whatever the system in question uses for the unix `EPERM' error.
4982f91a5f5Stholo     If you have any information to add, please let us know as
4992f91a5f5Stholo     described in *Note BUGS::.  If you experience this error while
5002f91a5f5Stholo     using CVS, retrying the operation which produced it should work
5012f91a5f5Stholo     fine.
5022f91a5f5Stholo
5032f9d2fd9Stholo`cvs [server aborted]: Cannot check out files into the repository itself'
5042f9d2fd9Stholo     The obvious cause for this message (especially for
5052f9d2fd9Stholo     non-client/server CVS) is that the CVS root is, for example,
5062f9d2fd9Stholo     `/usr/local/cvsroot' and you try to check out files when you are
5072f9d2fd9Stholo     in a subdirectory, such as `/usr/local/cvsroot/test'.  However,
5082f9d2fd9Stholo     there is a more subtle cause, which is that the temporary
5092f9d2fd9Stholo     directory on the server is set to a subdirectory of the root
5102f9d2fd9Stholo     (which is also not allowed).  If this is the problem, set the
5112f9d2fd9Stholo     temporary directory to somewhere else, for example `/var/tmp'; see
5122f9d2fd9Stholo     `TMPDIR' in *Note Environment variables::, for how to set the
5132f9d2fd9Stholo     temporary directory.
5142f9d2fd9Stholo
5152f91a5f5Stholo`cannot open CVS/Entries for reading: No such file or directory'
5162f91a5f5Stholo     This generally indicates a CVS internal error, and can be handled
517e77048c1Stholo     as with other CVS bugs (*note BUGS::).  Usually there is a
5182f91a5f5Stholo     workaround--the exact nature of which would depend on the
5192f91a5f5Stholo     situation but which hopefully could be figured out.
5202f91a5f5Stholo
5212f91a5f5Stholo`cvs [init aborted]: cannot open CVS/Root: No such file or directory'
5222f91a5f5Stholo     This message is harmless.  Provided it is not accompanied by other
5232f91a5f5Stholo     errors, the operation has completed successfully.  This message
5242f91a5f5Stholo     should not occur with current versions of CVS, but it is documented
5252f91a5f5Stholo     here for the benefit of CVS 1.9 and older.
5262f91a5f5Stholo
5272f91a5f5Stholo`cvs [checkout aborted]: cannot rename file FILE to CVS/,,FILE: Invalid argument'
5282f91a5f5Stholo     This message has been reported as intermittently happening with
5292f91a5f5Stholo     CVS 1.9 on Solaris 2.5.  The cause is unknown; if you know more
5302f91a5f5Stholo     about what causes it, let us know as described in *Note BUGS::.
5312f91a5f5Stholo
5322f91a5f5Stholo`cvs [COMMAND aborted]: cannot start server via rcmd'
5332f91a5f5Stholo     This, unfortunately, is a rather nonspecific error message which
5342f91a5f5Stholo     CVS 1.9 will print if you are running the CVS client and it is
5352f91a5f5Stholo     having trouble connecting to the server.  Current versions of CVS
5362f91a5f5Stholo     should print a much more specific error message.  If you get this
5372f91a5f5Stholo     message when you didn't mean to run the client at all, you
5382f91a5f5Stholo     probably forgot to specify `:local:', as described in *Note
5392f91a5f5Stholo     Repository::.
5402f91a5f5Stholo
5412f91a5f5Stholo`ci: FILE,v: bad diff output line: Binary files - and /tmp/T2a22651 differ'
5422f91a5f5Stholo     CVS 1.9 and older will print this message when trying to check in
5432f91a5f5Stholo     a binary file if RCS is not correctly installed.  Re-read the
5442f91a5f5Stholo     instructions that came with your RCS distribution and the INSTALL
5452f91a5f5Stholo     file in the CVS distribution.  Alternately, upgrade to a current
5462f91a5f5Stholo     version of CVS, which checks in files itself rather than via RCS.
5472f91a5f5Stholo
5482f91a5f5Stholo`cvs checkout: could not check out FILE'
5492f91a5f5Stholo     With CVS 1.9, this can mean that the `co' program (part of RCS)
5502f91a5f5Stholo     returned a failure.  It should be preceded by another error
5512f91a5f5Stholo     message, however it has been observed without another error
5522f91a5f5Stholo     message and the cause is not well-understood.  With the current
5532f91a5f5Stholo     version of CVS, which does not run `co', if this message occurs
5542f91a5f5Stholo     without another error message, it is definitely a CVS bug (*note
555e77048c1Stholo     BUGS::).
5562f91a5f5Stholo
5572f91a5f5Stholo`cvs [login aborted]: could not find out home directory'
5582f91a5f5Stholo     This means that you need to set the environment variables that CVS
559e77048c1Stholo     uses to locate your home directory.  See the discussion of `HOME',
560e77048c1Stholo     `HOMEDRIVE', and `HOMEPATH' in *Note Environment variables::.
5612f91a5f5Stholo
5622f91a5f5Stholo`cvs update: could not merge revision REV of FILE: No such file or directory'
5632f91a5f5Stholo     CVS 1.9 and older will print this message if there was a problem
5642f91a5f5Stholo     finding the `rcsmerge' program.  Make sure that it is in your
5652f91a5f5Stholo     `PATH', or upgrade to a current version of CVS, which does not
5662f91a5f5Stholo     require an external `rcsmerge' program.
5672f91a5f5Stholo
5682f91a5f5Stholo`cvs [update aborted]: could not patch FILE: No such file or directory'
5692f91a5f5Stholo     This means that there was a problem finding the `patch' program.
5702f91a5f5Stholo     Make sure that it is in your `PATH'.  Note that despite
5712f9d2fd9Stholo     appearances the message is _not_ referring to whether it can find
5722f91a5f5Stholo     FILE.  If both the client and the server are running a current
5732f91a5f5Stholo     version of CVS, then there is no need for an external patch
5742f91a5f5Stholo     program and you should not see this message.  But if either client
5752f91a5f5Stholo     or server is running CVS 1.9, then you need `patch'.
5762f91a5f5Stholo
5772f91a5f5Stholo`cvs update: could not patch FILE; will refetch'
5782f91a5f5Stholo     This means that for whatever reason the client was unable to apply
5792f91a5f5Stholo     a patch that the server sent.  The message is nothing to be
5802f91a5f5Stholo     concerned about, because inability to apply the patch only slows
5812f91a5f5Stholo     things down and has no effect on what CVS does.
5822f91a5f5Stholo
5832f91a5f5Stholo`dying gasps from SERVER unexpected'
5842f91a5f5Stholo     There is a known bug in the server for CVS 1.9.18 and older which
5852f91a5f5Stholo     can cause this.  For me, this was reproducible if I used the `-t'
5862f91a5f5Stholo     global option.  It was fixed by Andy Piper's 14 Nov 1997 change to
5872f91a5f5Stholo     src/filesubr.c, if anyone is curious.  If you see the message, you
5882f91a5f5Stholo     probably can just retry the operation which failed, or if you have
5892f91a5f5Stholo     discovered information concerning its cause, please let us know as
5902f91a5f5Stholo     described in *Note BUGS::.
5912f91a5f5Stholo
5922f91a5f5Stholo`end of file from server (consult above messages if any)'
5932f91a5f5Stholo     The most common cause for this message is if you are using an
5942f91a5f5Stholo     external `rsh' program and it exited with an error.  In this case
5952f91a5f5Stholo     the `rsh' program should have printed a message, which will appear
5962f91a5f5Stholo     before the above message.  For more information on setting up a
5972f91a5f5Stholo     CVS client and server, see *Note Remote repositories::.
5982f91a5f5Stholo
5992f9d2fd9Stholo`cvs [update aborted]: EOF in key in RCS file FILE,v'
6002f9d2fd9Stholo`cvs [checkout aborted]: EOF while looking for end of string in RCS file FILE,v'
6012f9d2fd9Stholo     This means that there is a syntax error in the given RCS file.
6022f9d2fd9Stholo     Note that this might be true even if RCS can read the file OK; CVS
6032f9d2fd9Stholo     does more error checking of errors in the RCS file.  That is why
6042f9d2fd9Stholo     you may see this message when upgrading from CVS 1.9 to CVS 1.10.
6052f9d2fd9Stholo     The likely cause for the original corruption is hardware, the
6062f9d2fd9Stholo     operating system, or the like.  Of course, if you find a case in
6072f9d2fd9Stholo     which CVS seems to corrupting the file, by all means report it,
608e77048c1Stholo     (*note BUGS::).  There are quite a few variations of this error
6092f9d2fd9Stholo     message, depending on exactly where in the RCS file CVS finds the
6102f9d2fd9Stholo     syntax error.
6112f9d2fd9Stholo
6122f91a5f5Stholo`cvs commit: Executing 'mkmodules''
6132f91a5f5Stholo     This means that your repository is set up for a version of CVS
6142f91a5f5Stholo     prior to CVS 1.8.  When using CVS 1.8 or later, the above message
6152f91a5f5Stholo     will be preceded by
6162f91a5f5Stholo
6172f91a5f5Stholo          cvs commit: Rebuilding administrative file database
6182f91a5f5Stholo
6192f91a5f5Stholo     If you see both messages, the database is being rebuilt twice,
6202f91a5f5Stholo     which is unnecessary but harmless.  If you wish to avoid the
6212f91a5f5Stholo     duplication, and you have no versions of CVS 1.7 or earlier in
6222f91a5f5Stholo     use, remove `-i mkmodules' every place it appears in your `modules'
6232f91a5f5Stholo     file.  For more information on the `modules' file, see *Note
6242f91a5f5Stholo     modules::.
6252f91a5f5Stholo
6262f91a5f5Stholo`missing author'
6272f91a5f5Stholo     Typically this can happen if you created an RCS file with your
6282f91a5f5Stholo     username set to empty.  CVS will, bogusly, create an illegal RCS
6292f91a5f5Stholo     file with no value for the author field.  The solution is to make
6302f91a5f5Stholo     sure your username is set to a non-empty value and re-create the
6312f91a5f5Stholo     RCS file.
6322f91a5f5Stholo
6332f9d2fd9Stholo`cvs [checkout aborted]: no such tag TAG'
6342f9d2fd9Stholo     This message means that CVS isn't familiar with the tag TAG.
6352f9d2fd9Stholo     Usually this means that you have mistyped a tag name; however
6362f9d2fd9Stholo     there are (relatively obscure) cases in which CVS will require you
6372f9d2fd9Stholo     to try a few other CVS commands involving that tag, before you
6382f9d2fd9Stholo     find one which will cause CVS to update the `val-tags' file; see
6392f9d2fd9Stholo     discussion of val-tags in *Note File permissions::.  You only need
6402f9d2fd9Stholo     to worry about this once for a given tag; when a tag is listed in
6412f9d2fd9Stholo     `val-tags', it stays there.  Note that using `-f' to not require
6422f9d2fd9Stholo     tag matches does not override this check; see *Note Common
6432f9d2fd9Stholo     options::.
6442f9d2fd9Stholo
6452f91a5f5Stholo`*PANIC* administration files missing'
6462f91a5f5Stholo     This typically means that there is a directory named CVS but it
6472f91a5f5Stholo     does not contain the administrative files which CVS puts in a CVS
6482f91a5f5Stholo     directory.  If the problem is that you created a CVS directory via
6492f91a5f5Stholo     some mechanism other than CVS, then the answer is simple, use a
6502f91a5f5Stholo     name other than CVS.  If not, it indicates a CVS bug (*note
651e77048c1Stholo     BUGS::).
6522f91a5f5Stholo
6532f91a5f5Stholo`rcs error: Unknown option: -x,v/'
6542f91a5f5Stholo     This message will be followed by a usage message for RCS.  It
6552f91a5f5Stholo     means that you have an old version of RCS (probably supplied with
656e77048c1Stholo     your operating system), as well as an old version of CVS.  CVS
657e77048c1Stholo     1.9.18 and earlier only work with RCS version 5 and later; current
658e77048c1Stholo     versions of CVS do not run RCS programs.
6592f91a5f5Stholo
6602f91a5f5Stholo`cvs [server aborted]: received broken pipe signal'
6612f91a5f5Stholo     This message seems to be caused by a hard-to-track-down bug in CVS
6622f91a5f5Stholo     or the systems it runs on (we don't know--we haven't tracked it
6632f91a5f5Stholo     down yet!).  It seems to happen only after a CVS command has
6642f91a5f5Stholo     completed, and you should be able to just ignore the message.
6652f91a5f5Stholo     However, if you have discovered information concerning its cause,
6662f91a5f5Stholo     please let us know as described in *Note BUGS::.
6672f91a5f5Stholo
6682f91a5f5Stholo`Too many arguments!'
6692f91a5f5Stholo     This message is typically printed by the `log.pl' script which is
6702f91a5f5Stholo     in the `contrib' directory in the CVS source distribution.  In
6712f91a5f5Stholo     some versions of CVS, `log.pl' has been part of the default CVS
6722f91a5f5Stholo     installation.  The `log.pl' script gets called from the `loginfo'
6732f91a5f5Stholo     administrative file.  Check that the arguments passed in `loginfo'
6742f91a5f5Stholo     match what your version of `log.pl' expects.  In particular, the
6752f91a5f5Stholo     `log.pl' from CVS 1.3 and older expects the logfile as an argument
6762f91a5f5Stholo     whereas the `log.pl' from CVS 1.5 and newer expects the logfile to
6772f91a5f5Stholo     be specified with a `-f' option.  Of course, if you don't need
6782f91a5f5Stholo     `log.pl' you can just comment it out of `loginfo'.
6792f91a5f5Stholo
6802f9d2fd9Stholo`cvs [update aborted]: unexpected EOF reading FILE,v'
6812f9d2fd9Stholo     See `EOF in key in RCS file'.
6822f9d2fd9Stholo
6838506102dStholo`cvs [login aborted]: unrecognized auth response from SERVER'
6848506102dStholo     This message typically means that the server is not set up
6858506102dStholo     properly.  For example, if `inetd.conf' points to a nonexistent
6868506102dStholo     cvs executable.  To debug it further, find the log file which
6878506102dStholo     inetd writes (`/var/log/messages' or whatever inetd uses on your
6888506102dStholo     system).  For details, see *Note Connection::, and *Note Password
6898506102dStholo     authentication server::.
6908506102dStholo
691e77048c1Stholo`cvs server: cannot open /root/.cvsignore: Permission denied'
692e77048c1Stholo`cvs [server aborted]: can't chdir(/root): Permission denied'
693e77048c1Stholo     See *Note Connection::.
694e77048c1Stholo
6952f91a5f5Stholo`cvs commit: Up-to-date check failed for `FILE''
6962f91a5f5Stholo     This means that someone else has committed a change to that file
6972f91a5f5Stholo     since the last time that you did a `cvs update'.  So before
6982f91a5f5Stholo     proceeding with your `cvs commit' you need to `cvs update'.  CVS
6992f91a5f5Stholo     will merge the changes that you made and the changes that the
7002f91a5f5Stholo     other person made.  If it does not detect any conflicts it will
701e77048c1Stholo     report `M FILE' and you are ready to `cvs commit'.  If it detects
702e77048c1Stholo     conflicts it will print a message saying so, will report `C FILE',
703e77048c1Stholo     and you need to manually resolve the conflict.  For more details
704e77048c1Stholo     on this process see *Note Conflicts example::.
7052f91a5f5Stholo
7062f91a5f5Stholo`Usage:	diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 file2 file3'
7072f91a5f5Stholo          Only one of [exEX3] allowed
7082f91a5f5Stholo     This indicates a problem with the installation of `diff3' and
7092f91a5f5Stholo     `rcsmerge'.  Specifically `rcsmerge' was compiled to look for GNU
7102f91a5f5Stholo     diff3, but it is finding unix diff3 instead.  The exact text of
7112f91a5f5Stholo     the message will vary depending on the system.  The simplest
7122f91a5f5Stholo     solution is to upgrade to a current version of CVS, which does not
7132f91a5f5Stholo     rely on external `rcsmerge' or `diff3' programs.
7142f91a5f5Stholo
7152f91a5f5Stholo`warning: unrecognized response `TEXT' from cvs server'
7162f91a5f5Stholo     If TEXT contains a valid response (such as `ok') followed by an
7172f91a5f5Stholo     extra carriage return character (on many systems this will cause
7182f91a5f5Stholo     the second part of the message to overwrite the first part), then
7192f91a5f5Stholo     it probably means that you are using the `:ext:' access method
7202f91a5f5Stholo     with a version of rsh, such as most non-unix rsh versions, which
7212f91a5f5Stholo     does not by default provide a transparent data stream.  In such
7222f91a5f5Stholo     cases you probably want to try `:server:' instead of `:ext:'.  If
7232f91a5f5Stholo     TEXT is something else, this may signify a problem with your CVS
7242f91a5f5Stholo     server.  Double-check your installation against the instructions
7252f91a5f5Stholo     for setting up the CVS server.
7262f91a5f5Stholo
7278506102dStholo`cvs commit: [TIME] waiting for USER's lock in DIRECTORY'
7288506102dStholo     This is a normal message, not an error.  See *Note Concurrency::,
7298506102dStholo     for more details.
7308506102dStholo
7312f91a5f5Stholo`cvs commit: warning: editor session failed'
7322f91a5f5Stholo     This means that the editor which CVS is using exits with a nonzero
7332f91a5f5Stholo     exit status.  Some versions of vi will do this even when there was
734e77048c1Stholo     not a problem editing the file.  If so, point the `CVSEDITOR'
7352f91a5f5Stholo     environment variable to a small script such as:
7362f91a5f5Stholo
7372f91a5f5Stholo          #!/bin/sh
7382f91a5f5Stholo          vi $*
7392f91a5f5Stholo          exit 0
7402f91a5f5Stholo
7412f91a5f5Stholo
7422f91a5f5StholoFile: cvs.info,  Node: Connection,  Next: Other problems,  Prev: Error messages,  Up: Troubleshooting
7432f91a5f5Stholo
7442f91a5f5StholoTrouble making a connection to a CVS server
7452f91a5f5Stholo===========================================
7462f91a5f5Stholo
7472f91a5f5Stholo   This section concerns what to do if you are having trouble making a
7482f91a5f5Stholoconnection to a CVS server.  If you are running the CVS command line
7492f91a5f5Stholoclient running on Windows, first upgrade the client to CVS 1.9.12 or
7502f91a5f5Sthololater.  The error reporting in earlier versions provided much less
7512f91a5f5Stholoinformation about what the problem was.  If the client is non-Windows,
7522f91a5f5StholoCVS 1.9 should be fine.
7532f91a5f5Stholo
7542f91a5f5Stholo   If the error messages are not sufficient to track down the problem,
7552f91a5f5Stholothe next steps depend largely on which access method you are using.
7562f91a5f5Stholo
7572f91a5f5Stholo`:ext:'
7582f91a5f5Stholo     Try running the rsh program from the command line.  For example:
7592f91a5f5Stholo     "rsh servername cvs -v" should print CVS version information.  If
7602f91a5f5Stholo     this doesn't work, you need to fix it before you can worry about
7612f91a5f5Stholo     CVS problems.
7622f91a5f5Stholo
7632f91a5f5Stholo`:server:'
7642f91a5f5Stholo     You don't need a command line rsh program to use this access
7652f91a5f5Stholo     method, but if you have an rsh program around, it may be useful as
7662f91a5f5Stholo     a debugging tool.  Follow the directions given for :ext:.
7672f91a5f5Stholo
7682f91a5f5Stholo`:pserver:'
769*43c1707eStholo     Errors along the lines of "connection refused" typically indicate
770*43c1707eStholo     that inetd isn't even listening for connections on port 2401
771*43c1707eStholo     whereas errors like "connection reset by peer" or "recv() from
772*43c1707eStholo     server: EOF" typically indicate that inetd is listening for
773*43c1707eStholo     connections but is unable to start CVS (this is frequently caused
774*43c1707eStholo     by having an incorrect path in `inetd.conf').  "unrecognized auth
775*43c1707eStholo     response" errors are caused by a bad command line in `inetd.conf',
776*43c1707eStholo     typically an invalid option or forgetting to put the `pserver'
777*43c1707eStholo     command at the end of the line.  Another less common problem is
778*43c1707eStholo     invisible control characters that your editor "helpfully" added
779*43c1707eStholo     without you noticing.
780*43c1707eStholo
7812f91a5f5Stholo     One good debugging tool is to "telnet servername 2401".  After
7822f91a5f5Stholo     connecting, send any text (for example "foo" followed by return).
7832f91a5f5Stholo     If CVS is working correctly, it will respond with
7842f91a5f5Stholo
7852f91a5f5Stholo          cvs [pserver aborted]: bad auth protocol start: foo
7862f91a5f5Stholo
787*43c1707eStholo     If instead you get:
788*43c1707eStholo
789*43c1707eStholo          Usage: cvs [cvs-options] command [command-options-and-arguments]
790*43c1707eStholo          ...
791*43c1707eStholo
792*43c1707eStholo     then you're missing the `pserver' command at the end of the line
793*43c1707eStholo     in `inetd.conf'; check to make sure that the entire command is on
794*43c1707eStholo     one line and that it's complete.
795*43c1707eStholo
796*43c1707eStholo     Likewise, if you get something like:
797*43c1707eStholo
798*43c1707eStholo          Unknown command: `pserved'
799*43c1707eStholo
800*43c1707eStholo          CVS commands are:
801*43c1707eStholo                  add          Add a new file/directory to the repository
802*43c1707eStholo          ...
803*43c1707eStholo
804*43c1707eStholo     then you've misspelled `pserver' in some way.  If it isn't
805*43c1707eStholo     obvious, check for invisible control characters (particularly
806*43c1707eStholo     carriage returns) in `inetd.conf'.
807*43c1707eStholo
808*43c1707eStholo     If it fails to work at all, then make sure inetd is working right.
809e77048c1Stholo     Change the invocation in `inetd.conf' to run the echo program
8102f91a5f5Stholo     instead of cvs.  For example:
8112f91a5f5Stholo
8122f91a5f5Stholo          2401  stream  tcp  nowait  root /bin/echo echo hello
8132f91a5f5Stholo
8142f91a5f5Stholo     After making that change and instructing inetd to re-read its
8152f91a5f5Stholo     configuration file, "telnet servername 2401" should show you the
8162f91a5f5Stholo     text hello and then the server should close the connection.  If
8172f91a5f5Stholo     this doesn't work, you need to fix it before you can worry about
8182f91a5f5Stholo     CVS problems.
8192f91a5f5Stholo
8202f91a5f5Stholo     On AIX systems, the system will often have its own program trying
8212f91a5f5Stholo     to use port 2401.  This is AIX's problem in the sense that port
8222f91a5f5Stholo     2401 is registered for use with CVS.  I hear that there is an AIX
8232f91a5f5Stholo     patch available to address this problem.
8242f91a5f5Stholo
8252f9d2fd9Stholo     Another good debugging tool is the `-d' (debugging) option to
8262f9d2fd9Stholo     inetd.  Consult your system documentation for more information.
8272f9d2fd9Stholo
828e77048c1Stholo     If you seem to be connecting but get errors like:
829e77048c1Stholo
830e77048c1Stholo          cvs server: cannot open /root/.cvsignore: Permission denied
831e77048c1Stholo          cvs [server aborted]: can't chdir(/root): Permission denied
832e77048c1Stholo
833*43c1707eStholo     then you probably haven't specified `-f' in `inetd.conf'.
834e77048c1Stholo
835e77048c1Stholo     If you can connect successfully for a while but then can't, you've
836e77048c1Stholo     probably hit inetd's rate limit.  (If inetd receives too many
837e77048c1Stholo     requests for the same service in a short period of time, it
838e77048c1Stholo     assumes that something is wrong and temporarily disables the
839e77048c1Stholo     service.)  Check your inetd documentation to find out how to
840e77048c1Stholo     adjust the rate limit (some versions of inetd have a single rate
841e77048c1Stholo     limit, others allow you to set the limit for each service
842e77048c1Stholo     separately.)
843e77048c1Stholo
8442f91a5f5Stholo
8452f91a5f5StholoFile: cvs.info,  Node: Other problems,  Prev: Connection,  Up: Troubleshooting
8462f91a5f5Stholo
8472f91a5f5StholoOther common problems
8482f91a5f5Stholo=====================
8492f91a5f5Stholo
8502f91a5f5Stholo   Here is a list of problems which do not fit into the above
8512f91a5f5Stholocategories.  They are in no particular order.
8522f91a5f5Stholo
8532f9d2fd9Stholo   * On Windows, if there is a 30 second or so delay when you run a CVS
8542f9d2fd9Stholo     command, it may mean that you have your home directory set to
8552f9d2fd9Stholo     `C:/', for example (see `HOMEDRIVE' and `HOMEPATH' in *Note
8562f9d2fd9Stholo     Environment variables::).  CVS expects the home directory to not
8572f9d2fd9Stholo     end in a slash, for example `C:' or `C:\cvs'.
8582f9d2fd9Stholo
8592f91a5f5Stholo   * If you are running CVS 1.9.18 or older, and `cvs update' finds a
8602f91a5f5Stholo     conflict and tries to merge, as described in *Note Conflicts
8612f91a5f5Stholo     example::, but doesn't tell you there were conflicts, then you may
8622f91a5f5Stholo     have an old version of RCS.  The easiest solution probably is to
8632f91a5f5Stholo     upgrade to a current version of CVS, which does not rely on
8642f91a5f5Stholo     external RCS programs.
8652f91a5f5Stholo
8662f91a5f5Stholo
8672f91a5f5StholoFile: cvs.info,  Node: Credits,  Next: BUGS,  Prev: Troubleshooting,  Up: Top
8682f91a5f5Stholo
8692f91a5f5StholoCredits
8702f91a5f5Stholo*******
8712f91a5f5Stholo
8722f91a5f5Stholo   Roland Pesch, then of Cygnus Support <roland@wrs.com> wrote the
8732f91a5f5Stholomanual pages which were distributed with CVS 1.3.  Much of their text
8742f91a5f5Stholowas copied into this manual.  He also read an early draft of this
8752f91a5f5Stholomanual and contributed many ideas and corrections.
8762f91a5f5Stholo
8772f91a5f5Stholo   The mailing-list `info-cvs' is sometimes informative. I have
8782f91a5f5Stholoincluded information from postings made by the following persons: David
8792f91a5f5StholoG. Grubbs <dgg@think.com>.
8802f91a5f5Stholo
8812f91a5f5Stholo   Some text has been extracted from the man pages for RCS.
8822f91a5f5Stholo
8832f91a5f5Stholo   The CVS FAQ by David G. Grubbs has provided useful material.  The
8842f91a5f5StholoFAQ is no longer maintained, however, and this manual is about the
8852f91a5f5Stholoclosest thing there is to a successor (with respect to documenting how
8862f91a5f5Stholoto use CVS, at least).
8872f91a5f5Stholo
8882f91a5f5Stholo   In addition, the following persons have helped by telling me about
8892f91a5f5Stholomistakes I've made:
8902f91a5f5Stholo
8912f91a5f5Stholo     Roxanne Brunskill <rbrunski@datap.ca>,
8922f91a5f5Stholo     Kathy Dyer <dyer@phoenix.ocf.llnl.gov>,
8932f91a5f5Stholo     Karl Pingle <pingle@acuson.com>,
8942f91a5f5Stholo     Thomas A Peterson <tap@src.honeywell.com>,
8952f91a5f5Stholo     Inge Wallin <ingwa@signum.se>,
8962f91a5f5Stholo     Dirk Koschuetzki <koschuet@fmi.uni-passau.de>
8972f91a5f5Stholo     and Michael Brown <brown@wi.extrel.com>.
8982f91a5f5Stholo
8992f91a5f5Stholo   The list of contributors here is not comprehensive; for a more
9002f91a5f5Stholocomplete list of who has contributed to this manual see the file
9012f91a5f5Stholo`doc/ChangeLog' in the CVS source distribution.
9022f91a5f5Stholo
9032f91a5f5Stholo
9046407bc5bStholoFile: cvs.info,  Node: BUGS,  Next: Index,  Prev: Credits,  Up: Top
90590ac78dfStholo
906f79d7d1bStholoDealing with bugs in CVS or this manual
907f79d7d1bStholo***************************************
90890ac78dfStholo
909f79d7d1bStholo   Neither CVS nor this manual is perfect, and they probably never will
910f79d7d1bStholobe.  If you are having trouble using CVS, or think you have found a
911f79d7d1bStholobug, there are a number of things you can do about it.  Note that if
912f79d7d1bStholothe manual is unclear, that can be considered a bug in the manual, so
913f79d7d1bStholothese problems are often worth doing something about as well as
914f79d7d1bStholoproblems with CVS itself.
91590ac78dfStholo
916f79d7d1bStholo   * If you want someone to help you and fix bugs that you report,
917*43c1707eStholo     there are companies which will do that for a fee.  One such
918*43c1707eStholo     company is:
91990ac78dfStholo
920f79d7d1bStholo          Signum Support AB
921f79d7d1bStholo          Box 2044
922f79d7d1bStholo          S-580 02  Linkoping
923f79d7d1bStholo          Sweden
924f79d7d1bStholo          Email: info@signum.se
925f79d7d1bStholo          Phone: +46 (0)13 - 21 46 00
926f79d7d1bStholo          Fax:   +46 (0)13 - 21 47 00
927f79d7d1bStholo          http://www.signum.se/
928f79d7d1bStholo
929f79d7d1bStholo   * If you got CVS through a distributor, such as an operating system
930f79d7d1bStholo     vendor or a vendor of freeware CD-ROMs, you may wish to see
931f79d7d1bStholo     whether the distributor provides support.  Often, they will provide
932f79d7d1bStholo     no support or minimal support, but this may vary from distributor
933f79d7d1bStholo     to distributor.
934f79d7d1bStholo
935f79d7d1bStholo   * If you have the skills and time to do so, you may wish to fix the
936f79d7d1bStholo     bug yourself.  If you wish to submit your fix for inclusion in
937f79d7d1bStholo     future releases of CVS, see the file HACKING in the CVS source
938f79d7d1bStholo     distribution.  It contains much more information on the process of
939f79d7d1bStholo     submitting fixes.
940f79d7d1bStholo
941f79d7d1bStholo   * There may be resources on the net which can help.  Two good places
942f79d7d1bStholo     to start are:
943f79d7d1bStholo
944e77048c1Stholo          http://www.cvshome.org
945f79d7d1bStholo          http://www.loria.fr/~molli/cvs-index.html
946f79d7d1bStholo
947f79d7d1bStholo     If you are so inspired, increasing the information available on
948f79d7d1bStholo     the net is likely to be appreciated.  For example, before the
949f79d7d1bStholo     standard CVS distribution worked on Windows 95, there was a web
950f79d7d1bStholo     page with some explanation and patches for running CVS on Windows
951f79d7d1bStholo     95, and various people helped out by mentioning this page on
952f79d7d1bStholo     mailing lists or newsgroups when the subject came up.
953f79d7d1bStholo
954f79d7d1bStholo   * It is also possible to report bugs to `bug-cvs'.  Note that
955f79d7d1bStholo     someone may or may not want to do anything with your bug
956f79d7d1bStholo     report--if you need a solution consider one of the options
957f79d7d1bStholo     mentioned above.  People probably do want to hear about bugs which
958f79d7d1bStholo     are particularly severe in consequences and/or easy to fix,
959f79d7d1bStholo     however.  You can also increase your odds by being as clear as
960f79d7d1bStholo     possible about the exact nature of the bug and any other relevant
961f79d7d1bStholo     information.  The way to report bugs is to send email to
962f79d7d1bStholo     `bug-cvs@gnu.org'.  Note that submissions to `bug-cvs' may be
963f79d7d1bStholo     distributed under the terms of the GNU Public License, so if you
964f79d7d1bStholo     don't like this, don't submit them.  There is usually no
965f79d7d1bStholo     justification for sending mail directly to one of the CVS
966f79d7d1bStholo     maintainers rather than to `bug-cvs'; those maintainers who want
967f79d7d1bStholo     to hear about such bug reports read `bug-cvs'.  Also note that
9682f9d2fd9Stholo     sending a bug report to other mailing lists or newsgroups is _not_
969f79d7d1bStholo     a substitute for sending it to `bug-cvs'.  It is fine to discuss
970f79d7d1bStholo     CVS bugs on whatever forum you prefer, but there are not
971f79d7d1bStholo     necessarily any maintainers reading bug reports sent anywhere
972f79d7d1bStholo     except `bug-cvs'.
973f79d7d1bStholo
974f79d7d1bStholo   People often ask if there is a list of known bugs or whether a
975f79d7d1bStholoparticular bug is a known one.  The file BUGS in the CVS source
976f79d7d1bStholodistribution is one list of known bugs, but it doesn't necessarily try
977f79d7d1bStholoto be comprehensive.  Perhaps there will never be a comprehensive,
978f79d7d1bStholodetailed list of known bugs.
979f79d7d1bStholo
980