xref: /openbsd-src/gnu/usr.bin/cvs/doc/cvs.info-7 (revision 55b57aafc73e4f3206a9e6baa59e87c4bf850b0d)
143c1707eStholoThis is cvs.info, produced by makeinfo version 4.0 from cvs.texinfo.
2423f0401Stholo
36407bc5bStholoSTART-INFO-DIR-ENTRY
46407bc5bStholo* CVS: (cvs).          Concurrent Versions System
56407bc5bStholoEND-INFO-DIR-ENTRY
66407bc5bStholo
7423f0401Stholo   Copyright (C) 1992, 1993 Signum Support AB Copyright (C) 1993, 1994
8423f0401StholoFree Software Foundation, Inc.
9423f0401Stholo
10423f0401Stholo   Permission is granted to make and distribute verbatim copies of this
11423f0401Stholomanual provided the copyright notice and this permission notice are
12423f0401Stholopreserved on all copies.
13423f0401Stholo
14423f0401Stholo   Permission is granted to copy and distribute modified versions of
15423f0401Stholothis 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.
18423f0401Stholo
19423f0401Stholo   Permission is granted to copy and distribute translations of this
20423f0401Stholomanual 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.
23423f0401Stholo
24423f0401Stholo
258506102dStholoFile: cvs.info,  Node: Invoking CVS,  Next: Administrative files,  Prev: CVS commands,  Up: Top
268506102dStholo
278506102dStholoQuick reference to CVS commands
288506102dStholo*******************************
298506102dStholo
308506102dStholo   This appendix describes how to invoke CVS, with references to where
318506102dStholoeach command or feature is described in detail.  For other references
328506102dStholorun the `cvs --help' command, or see *Note Index::.
338506102dStholo
348506102dStholo   A CVS command looks like:
358506102dStholo
368506102dStholo     cvs [ GLOBAL_OPTIONS ] COMMAND [ COMMAND_OPTIONS ] [ COMMAND_ARGS ]
378506102dStholo
388506102dStholo   Global options:
398506102dStholo
408506102dStholo`--allow-root=ROOTDIR'
418506102dStholo     Specify legal CVSROOT directory (server only) (not in CVS 1.9 and
428506102dStholo     older).  See *Note Password authentication server::.
438506102dStholo
448506102dStholo`-a'
458506102dStholo     Authenticate all communication (client only) (not in CVS 1.9 and
468506102dStholo     older).  See *Note Global options::.
478506102dStholo
488506102dStholo`-b'
498506102dStholo     Specify RCS location (CVS 1.9 and older).  See *Note Global
508506102dStholo     options::.
518506102dStholo
528506102dStholo`-d ROOT'
538506102dStholo     Specify the CVSROOT.  See *Note Repository::.
548506102dStholo
558506102dStholo`-e EDITOR'
568506102dStholo     Edit messages with EDITOR.  See *Note Committing your changes::.
578506102dStholo
588506102dStholo`-f'
598506102dStholo     Do not read the `~/.cvsrc' file.  See *Note Global options::.
608506102dStholo
618506102dStholo`-H'
628506102dStholo`--help'
638506102dStholo     Print a help message.  See *Note Global options::.
648506102dStholo
658506102dStholo`-l'
66e77048c1Stholo     Do not log in `$CVSROOT/CVSROOT/history' file.  See *Note Global
67e77048c1Stholo     options::.
688506102dStholo
698506102dStholo`-n'
708506102dStholo     Do not change any files.  See *Note Global options::.
718506102dStholo
728506102dStholo`-Q'
738506102dStholo     Be really quiet.  See *Note Global options::.
748506102dStholo
758506102dStholo`-q'
768506102dStholo     Be somewhat quiet.  See *Note Global options::.
778506102dStholo
788506102dStholo`-r'
798506102dStholo     Make new working files read-only.  See *Note Global options::.
808506102dStholo
818506102dStholo`-s VARIABLE=VALUE'
828506102dStholo     Set a user variable.  See *Note Variables::.
838506102dStholo
848506102dStholo`-T TEMPDIR'
858506102dStholo     Put temporary files in TEMPDIR.  See *Note Global options::.
868506102dStholo
878506102dStholo`-t'
888506102dStholo     Trace CVS execution.  See *Note Global options::.
898506102dStholo
908506102dStholo`-v'
912f9d2fd9Stholo
928506102dStholo`--version'
938506102dStholo     Display version and copyright information for CVS.
948506102dStholo
958506102dStholo`-w'
968506102dStholo     Make new working files read-write.  See *Note Global options::.
978506102dStholo
988506102dStholo`-x'
998506102dStholo     Encrypt all communication (client only).  See *Note Global
1008506102dStholo     options::.
1018506102dStholo
1028506102dStholo`-z GZIP-LEVEL'
103e77048c1Stholo     Set the compression level (client only).  See *Note Global
104e77048c1Stholo     options::.
1058506102dStholo
106e77048c1Stholo   Keyword expansion modes (*note Substitution modes::):
1078506102dStholo
108*55b57aafStholo     -kkv  $Id: cvs.info-7,v 1.3 2001/09/30 19:44:54 tholo Exp $
109*55b57aafStholo     -kkvl $Id: cvs.info-7,v 1.3 2001/09/30 19:44:54 tholo Exp $
110*55b57aafStholo     -kk   $Id: cvs.info-7,v 1.3 2001/09/30 19:44:54 tholo Exp $
1118506102dStholo     -kv   file1,v 1.1 1993/12/09 03:21:13 joe Exp
1128506102dStholo     -ko   no expansion
1138506102dStholo     -kb   no expansion, file is binary
1148506102dStholo
115e77048c1Stholo   Keywords (*note Keyword list::):
1168506102dStholo
1178506102dStholo     $Author: tholo $
118*55b57aafStholo     $Date: 2001/09/30 19:44:54 $
119*55b57aafStholo     $Header: /home/cvs/src/gnu/usr.bin/cvs/doc/cvs.info-7,v 1.3 2001/09/30 19:44:54 tholo Exp $
120*55b57aafStholo     $Id: cvs.info-7,v 1.3 2001/09/30 19:44:54 tholo Exp $
1218506102dStholo     $Locker:  $
1228506102dStholo     $Name:  $
1238506102dStholo     $RCSfile: cvs.info-7,v $
124*55b57aafStholo     $Revision: 1.3 $
1258506102dStholo     $Source: /home/cvs/src/gnu/usr.bin/cvs/doc/cvs.info-7,v $
1268506102dStholo     $State: Exp $
1278506102dStholo     $Log: cvs.info-7,v $
128*55b57aafStholo     Revision 1.3  2001/09/30 19:44:54  tholo
129*55b57aafStholo     Revert to distributed version
130*55b57aafStholo
131*55b57aafStholo     Revision 1.1.1.13  2001/09/28 22:48:51  tholo
132*55b57aafStholo     Latest from Cyclic Software
1338506102dStholo
1348506102dStholo     Revision 1.1  1993/12/09 03:30:17  joe
1358506102dStholo     Initial revision
1368506102dStholo
1378506102dStholo   Commands, command options, and command arguments:
1388506102dStholo
1398506102dStholo`add [OPTIONS] [FILES...]'
1408506102dStholo     Add a new file/directory.  See *Note Adding files::.
1418506102dStholo
1428506102dStholo    `-k KFLAG'
1438506102dStholo          Set keyword expansion.
1448506102dStholo
1458506102dStholo    `-m MSG'
1468506102dStholo          Set file description.
1478506102dStholo
1488506102dStholo`admin [OPTIONS] [FILES...]'
1498506102dStholo     Administration of history files in the repository.  See *Note
1508506102dStholo     admin::.
1518506102dStholo
1528506102dStholo    `-b[REV]'
1538506102dStholo          Set default branch.  See *Note Reverting local changes::.
1548506102dStholo
1558506102dStholo    `-cSTRING'
1568506102dStholo          Set comment leader.
1578506102dStholo
1588506102dStholo    `-kSUBST'
1598506102dStholo          Set keyword substitution.  See *Note Keyword substitution::.
1608506102dStholo
1618506102dStholo    `-l[REV]'
1628506102dStholo          Lock revision REV, or latest revision.
1638506102dStholo
1648506102dStholo    `-mREV:MSG'
1658506102dStholo          Replace the log message of revision REV with MSG.
1668506102dStholo
1678506102dStholo    `-oRANGE'
1688506102dStholo          Delete revisions from the repository.  See *Note admin
1698506102dStholo          options::.
1708506102dStholo
1718506102dStholo    `-q'
1728506102dStholo          Run quietly; do not print diagnostics.
1738506102dStholo
1748506102dStholo    `-sSTATE[:REV]'
1758506102dStholo          Set the state.
1768506102dStholo
1778506102dStholo    `-t'
1788506102dStholo          Set file description from standard input.
1798506102dStholo
1808506102dStholo    `-tFILE'
1818506102dStholo          Set file description from FILE.
1828506102dStholo
1838506102dStholo    `-t-STRING'
1848506102dStholo          Set file description to STRING.
1858506102dStholo
1868506102dStholo    `-u[REV]'
1878506102dStholo          Unlock revision REV, or latest revision.
1888506102dStholo
1898506102dStholo`annotate [OPTIONS] [FILES...]'
1908506102dStholo     Show last revision where each line was modified.  See *Note
1918506102dStholo     annotate::.
1928506102dStholo
1938506102dStholo    `-D DATE'
1948506102dStholo          Annotate the most recent revision no later than DATE.  See
1958506102dStholo          *Note Common options::.
1968506102dStholo
1978506102dStholo    `-f'
1988506102dStholo          Use head revision if tag/date not found.  See *Note Common
1998506102dStholo          options::.
2008506102dStholo
2018506102dStholo    `-l'
2028506102dStholo          Local; run only in current working directory.  *Note
2038506102dStholo          Recursive behavior::.
2048506102dStholo
2058506102dStholo    `-R'
2068506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
2078506102dStholo
2088506102dStholo    `-r TAG'
2098506102dStholo          Annotate revision TAG.  See *Note Common options::.
2108506102dStholo
2118506102dStholo`checkout [OPTIONS] MODULES...'
2128506102dStholo     Get a copy of the sources.  See *Note checkout::.
2138506102dStholo
2148506102dStholo    `-A'
2158506102dStholo          Reset any sticky tags/date/options.  See *Note Sticky tags::
2168506102dStholo          and *Note Keyword substitution::.
2178506102dStholo
2188506102dStholo    `-c'
2198506102dStholo          Output the module database.  See *Note checkout options::.
2208506102dStholo
2218506102dStholo    `-D DATE'
2228506102dStholo          Check out revisions as of DATE (is sticky).  See *Note Common
2238506102dStholo          options::.
2248506102dStholo
2258506102dStholo    `-d DIR'
2268506102dStholo          Check out into DIR.  See *Note checkout options::.
2278506102dStholo
2288506102dStholo    `-f'
2298506102dStholo          Use head revision if tag/date not found.  See *Note Common
2308506102dStholo          options::.
2318506102dStholo
2328506102dStholo    `-j REV'
2338506102dStholo          Merge in changes.  See *Note checkout options::.
2348506102dStholo
2358506102dStholo    `-k KFLAG'
2368506102dStholo          Use KFLAG keyword expansion.  See *Note Substitution modes::.
2378506102dStholo
2388506102dStholo    `-l'
2398506102dStholo          Local; run only in current working directory.  *Note
2408506102dStholo          Recursive behavior::.
2418506102dStholo
2428506102dStholo    `-N'
2438506102dStholo          Don't "shorten" module paths if -d specified.  See *Note
2448506102dStholo          checkout options::.
2458506102dStholo
2468506102dStholo    `-n'
2478506102dStholo          Do not run module program (if any).  See *Note checkout
2488506102dStholo          options::.
2498506102dStholo
2508506102dStholo    `-P'
2518506102dStholo          Prune empty directories.  See *Note Moving directories::.
2528506102dStholo
2538506102dStholo    `-p'
2548506102dStholo          Check out files to standard output (avoids stickiness).  See
2558506102dStholo          *Note checkout options::.
2568506102dStholo
2578506102dStholo    `-R'
2588506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
2598506102dStholo
2608506102dStholo    `-r TAG'
2618506102dStholo          Checkout revision TAG (is sticky).  See *Note Common
2628506102dStholo          options::.
2638506102dStholo
2648506102dStholo    `-s'
2658506102dStholo          Like -c, but include module status.  See *Note checkout
2668506102dStholo          options::.
2678506102dStholo
2688506102dStholo`commit [OPTIONS] [FILES...]'
2698506102dStholo     Check changes into the repository.  See *Note commit::.
2708506102dStholo
2718506102dStholo    `-F FILE'
2728506102dStholo          Read log message from FILE.  See *Note commit options::.
2738506102dStholo
2748506102dStholo    `-f'
2758506102dStholo          Force the file to be committed; disables recursion.  See
2768506102dStholo          *Note commit options::.
2778506102dStholo
2788506102dStholo    `-l'
2798506102dStholo          Local; run only in current working directory.  See *Note
2808506102dStholo          Recursive behavior::.
2818506102dStholo
2828506102dStholo    `-m MSG'
2838506102dStholo          Use MSG as log message.  See *Note commit options::.
2848506102dStholo
2858506102dStholo    `-n'
2868506102dStholo          Do not run module program (if any).  See *Note commit
2878506102dStholo          options::.
2888506102dStholo
2898506102dStholo    `-R'
2908506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
2918506102dStholo
2928506102dStholo    `-r REV'
2938506102dStholo          Commit to REV.  See *Note commit options::.
2948506102dStholo
2958506102dStholo`diff [OPTIONS] [FILES...]'
2968506102dStholo     Show differences between revisions.  See *Note diff::.  In
2978506102dStholo     addition to the options shown below, accepts a wide variety of
2988506102dStholo     options to control output style, for example `-c' for context
2998506102dStholo     diffs.
3008506102dStholo
3018506102dStholo    `-D DATE1'
3028506102dStholo          Diff revision for date against working file.  See *Note diff
3038506102dStholo          options::.
3048506102dStholo
3058506102dStholo    `-D DATE2'
3068506102dStholo          Diff REV1/DATE1 against DATE2.  See *Note diff options::.
3078506102dStholo
3088506102dStholo    `-l'
3098506102dStholo          Local; run only in current working directory.  See *Note
3108506102dStholo          Recursive behavior::.
3118506102dStholo
3128506102dStholo    `-N'
3138506102dStholo          Include diffs for added and removed files.  See *Note diff
3148506102dStholo          options::.
3158506102dStholo
3168506102dStholo    `-R'
3178506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
3188506102dStholo
3198506102dStholo    `-r REV1'
3208506102dStholo          Diff revision for REV1 against working file.  See *Note diff
3218506102dStholo          options::.
3228506102dStholo
3238506102dStholo    `-r REV2'
3248506102dStholo          Diff REV1/DATE1 against REV2.  See *Note diff options::.
3258506102dStholo
3268506102dStholo`edit [OPTIONS] [FILES...]'
3278506102dStholo     Get ready to edit a watched file.  See *Note Editing files::.
3288506102dStholo
3298506102dStholo    `-a ACTIONS'
3308506102dStholo          Specify actions for temporary watch, where ACTIONS is `edit',
3318506102dStholo          `unedit', `commit', `all', or `none'.  See *Note Editing
3328506102dStholo          files::.
3338506102dStholo
3348506102dStholo    `-l'
3358506102dStholo          Local; run only in current working directory.  See *Note
3368506102dStholo          Recursive behavior::.
3378506102dStholo
3388506102dStholo    `-R'
3398506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
3408506102dStholo
3418506102dStholo`editors [OPTIONS] [FILES...]'
3428506102dStholo     See who is editing a watched file.  See *Note Watch information::.
3438506102dStholo
3448506102dStholo    `-l'
3458506102dStholo          Local; run only in current working directory.  See *Note
3468506102dStholo          Recursive behavior::.
3478506102dStholo
3488506102dStholo    `-R'
3498506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
3508506102dStholo
3518506102dStholo`export [OPTIONS] MODULES...'
3528506102dStholo     Export files from CVS.  See *Note export::.
3538506102dStholo
3548506102dStholo    `-D DATE'
3558506102dStholo          Check out revisions as of DATE.  See *Note Common options::.
3568506102dStholo
3578506102dStholo    `-d DIR'
3588506102dStholo          Check out into DIR.  See *Note export options::.
3598506102dStholo
3608506102dStholo    `-f'
3618506102dStholo          Use head revision if tag/date not found.  See *Note Common
3628506102dStholo          options::.
3638506102dStholo
3648506102dStholo    `-k KFLAG'
3658506102dStholo          Use KFLAG keyword expansion.  See *Note Substitution modes::.
3668506102dStholo
3678506102dStholo    `-l'
3688506102dStholo          Local; run only in current working directory.  *Note
3698506102dStholo          Recursive behavior::.
3708506102dStholo
3718506102dStholo    `-N'
3728506102dStholo          Don't "shorten" module paths if -d specified.  See *Note
3738506102dStholo          export options::.
3748506102dStholo
3758506102dStholo    `-n'
3768506102dStholo          Do not run module program (if any).  See *Note export
3778506102dStholo          options::.
3788506102dStholo
3798506102dStholo    `-P'
3808506102dStholo          Prune empty directories.  See *Note Moving directories::.
3818506102dStholo
3828506102dStholo    `-R'
3838506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
3848506102dStholo
3858506102dStholo    `-r TAG'
3862f9d2fd9Stholo          Checkout revision TAG.  See *Note Common options::.
3878506102dStholo
3888506102dStholo`history [OPTIONS] [FILES...]'
3898506102dStholo     Show repository access history.  See *Note history::.
3908506102dStholo
3918506102dStholo    `-a'
3928506102dStholo          All users (default is self).  See *Note history options::.
3938506102dStholo
3948506102dStholo    `-b STR'
3958506102dStholo          Back to record with STR in module/file/repos field.  See
3968506102dStholo          *Note history options::.
3978506102dStholo
3988506102dStholo    `-c'
3998506102dStholo          Report on committed (modified) files.  See *Note history
4008506102dStholo          options::.
4018506102dStholo
4028506102dStholo    `-D DATE'
4038506102dStholo          Since DATE.  See *Note history options::.
4048506102dStholo
4058506102dStholo    `-e'
4068506102dStholo          Report on all record types.  See *Note history options::.
4078506102dStholo
4088506102dStholo    `-l'
4098506102dStholo          Last modified (committed or modified report).  See *Note
4108506102dStholo          history options::.
4118506102dStholo
4128506102dStholo    `-m MODULE'
4138506102dStholo          Report on MODULE (repeatable).  See *Note history options::.
4148506102dStholo
4158506102dStholo    `-n MODULE'
4168506102dStholo          In MODULE.  See *Note history options::.
4178506102dStholo
4188506102dStholo    `-o'
4198506102dStholo          Report on checked out modules.  See *Note history options::.
4208506102dStholo
4218506102dStholo    `-r REV'
4228506102dStholo          Since revision REV.  See *Note history options::.
4238506102dStholo
4248506102dStholo    `-T'
4258506102dStholo          Produce report on all TAGs.  See *Note history options::.
4268506102dStholo
4278506102dStholo    `-t TAG'
4288506102dStholo          Since tag record placed in history file (by anyone).  See
4298506102dStholo          *Note history options::.
4308506102dStholo
4318506102dStholo    `-u USER'
4328506102dStholo          For user USER (repeatable).  See *Note history options::.
4338506102dStholo
4348506102dStholo    `-w'
4358506102dStholo          Working directory must match.  See *Note history options::.
4368506102dStholo
4378506102dStholo    `-x TYPES'
4388506102dStholo          Report on TYPES, one or more of `TOEFWUCGMAR'.  See *Note
4398506102dStholo          history options::.
4408506102dStholo
4418506102dStholo    `-z ZONE'
4428506102dStholo          Output for time zone ZONE.  See *Note history options::.
4438506102dStholo
4448506102dStholo`import [OPTIONS] REPOSITORY VENDOR-TAG RELEASE-TAGS...'
4458506102dStholo     Import files into CVS, using vendor branches.  See *Note import::.
4468506102dStholo
4478506102dStholo    `-b BRA'
4488506102dStholo          Import to vendor branch BRA.  See *Note Multiple vendor
4498506102dStholo          branches::.
4508506102dStholo
4518506102dStholo    `-d'
4528506102dStholo          Use the file's modification time as the time of import.  See
4538506102dStholo          *Note import options::.
4548506102dStholo
4558506102dStholo    `-k KFLAG'
4568506102dStholo          Set default keyword substitution mode.  See *Note import
4578506102dStholo          options::.
4588506102dStholo
4598506102dStholo    `-m MSG'
4608506102dStholo          Use MSG for log message.  See *Note import options::.
4618506102dStholo
4628506102dStholo    `-I IGN'
4638506102dStholo          More files to ignore (! to reset).  See *Note import
4648506102dStholo          options::.
4658506102dStholo
4668506102dStholo    `-W SPEC'
4678506102dStholo          More wrappers.  See *Note import options::.
4688506102dStholo
4698506102dStholo`init'
4708506102dStholo     Create a CVS repository if it doesn't exist.  See *Note Creating a
4718506102dStholo     repository::.
4728506102dStholo
4738506102dStholo`log [OPTIONS] [FILES...]'
4748506102dStholo     Print out history information for files.  See *Note log::.
4758506102dStholo
4768506102dStholo    `-b'
4778506102dStholo          Only list revisions on the default branch.  See *Note log
4788506102dStholo          options::.
4798506102dStholo
4808506102dStholo    `-d DATES'
4818506102dStholo          Specify dates (D1<D2 for range, D for latest before).  See
4828506102dStholo          *Note log options::.
4838506102dStholo
4848506102dStholo    `-h'
4858506102dStholo          Only print header.  See *Note log options::.
4868506102dStholo
4878506102dStholo    `-l'
4888506102dStholo          Local; run only in current working directory.  See *Note
4898506102dStholo          Recursive behavior::.
4908506102dStholo
4918506102dStholo    `-N'
4928506102dStholo          Do not list tags.  See *Note log options::.
4938506102dStholo
4948506102dStholo    `-R'
4958506102dStholo          Only print name of RCS file.  See *Note log options::.
4968506102dStholo
4978506102dStholo    `-rREVS'
4988506102dStholo          Only list revisions REVS.  See *Note log options::.
4998506102dStholo
5008506102dStholo    `-s STATES'
5018506102dStholo          Only list revisions with specified states.  See *Note log
5028506102dStholo          options::.
5038506102dStholo
5048506102dStholo    `-t'
5058506102dStholo          Only print header and descriptive text.  See *Note log
5068506102dStholo          options::.
5078506102dStholo
5088506102dStholo    `-wLOGINS'
5098506102dStholo          Only list revisions checked in by specified logins.  See
5108506102dStholo          *Note log options::.
5118506102dStholo
5128506102dStholo`login'
5138506102dStholo     Prompt for password for authenticating server.  See *Note Password
5148506102dStholo     authentication client::.
5158506102dStholo
5168506102dStholo`logout'
5178506102dStholo     Remove stored password for authenticating server.  See *Note
5188506102dStholo     Password authentication client::.
5198506102dStholo
5208506102dStholo`rdiff [OPTIONS] MODULES...'
5218506102dStholo     Show differences between releases.  See *Note rdiff::.
5228506102dStholo
5238506102dStholo    `-c'
5248506102dStholo          Context diff output format (default).  See *Note rdiff
5258506102dStholo          options::.
5268506102dStholo
5278506102dStholo    `-D DATE'
5288506102dStholo          Select revisions based on DATE.  See *Note Common options::.
5298506102dStholo
5308506102dStholo    `-f'
5318506102dStholo          Use head revision if tag/date not found.  See *Note Common
5328506102dStholo          options::.
5338506102dStholo
5348506102dStholo    `-l'
5358506102dStholo          Local; run only in current working directory.  See *Note
5368506102dStholo          Recursive behavior::.
5378506102dStholo
5388506102dStholo    `-R'
5398506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
5408506102dStholo
5418506102dStholo    `-r REV'
5428506102dStholo          Select revisions based on REV.  See *Note Common options::.
5438506102dStholo
5448506102dStholo    `-s'
5458506102dStholo          Short patch - one liner per file.  See *Note rdiff options::.
5468506102dStholo
5478506102dStholo    `-t'
5488506102dStholo          Top two diffs - last change made to the file.  See *Note diff
5498506102dStholo          options::.
5508506102dStholo
5518506102dStholo    `-u'
5528506102dStholo          Unidiff output format.  See *Note rdiff options::.
5538506102dStholo
5548506102dStholo    `-V VERS'
5558506102dStholo          Use RCS Version VERS for keyword expansion (obsolete).  See
5568506102dStholo          *Note rdiff options::.
5578506102dStholo
5588506102dStholo`release [OPTIONS] DIRECTORY'
5598506102dStholo     Indicate that a directory is no longer in use.  See *Note
5608506102dStholo     release::.
5618506102dStholo
5628506102dStholo    `-d'
5638506102dStholo          Delete the given directory.  See *Note release options::.
5648506102dStholo
5658506102dStholo`remove [OPTIONS] [FILES...]'
5668506102dStholo     Remove an entry from the repository.  See *Note Removing files::.
5678506102dStholo
5688506102dStholo    `-f'
5698506102dStholo          Delete the file before removing it.  See *Note Removing
5708506102dStholo          files::.
5718506102dStholo
5728506102dStholo    `-l'
5738506102dStholo          Local; run only in current working directory.  See *Note
5748506102dStholo          Recursive behavior::.
5758506102dStholo
5768506102dStholo    `-R'
5778506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
5788506102dStholo
5798506102dStholo`rtag [OPTIONS] TAG MODULES...'
5808506102dStholo     Add a symbolic tag to a module.  See *Note Revisions:: and *Note
5818506102dStholo     Branching and merging::.
5828506102dStholo
5838506102dStholo    `-a'
5848506102dStholo          Clear tag from removed files that would not otherwise be
5858506102dStholo          tagged.  See *Note Tagging add/remove::.
5868506102dStholo
5878506102dStholo    `-b'
5888506102dStholo          Create a branch named TAG.  See *Note Branching and merging::.
5898506102dStholo
5908506102dStholo    `-D DATE'
5918506102dStholo          Tag revisions as of DATE.  See *Note Tagging by date/tag::.
5928506102dStholo
5938506102dStholo    `-d'
5948506102dStholo          Delete TAG.  See *Note Modifying tags::.
5958506102dStholo
5968506102dStholo    `-F'
5978506102dStholo          Move TAG if it already exists.  See *Note Modifying tags::.
5988506102dStholo
5998506102dStholo    `-f'
6008506102dStholo          Force a head revision match if tag/date not found.  See *Note
6018506102dStholo          Tagging by date/tag::.
6028506102dStholo
6038506102dStholo    `-l'
6048506102dStholo          Local; run only in current working directory.  See *Note
6058506102dStholo          Recursive behavior::.
6068506102dStholo
6078506102dStholo    `-n'
6088506102dStholo          No execution of tag program.  See *Note Common options::.
6098506102dStholo
6108506102dStholo    `-R'
6118506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
6128506102dStholo
6138506102dStholo    `-r REV'
6148506102dStholo          Tag existing tag REV.  See *Note Tagging by date/tag::.
6158506102dStholo
6168506102dStholo`status [OPTIONS] FILES...'
6178506102dStholo     Display status information in a working directory.  See *Note File
6188506102dStholo     status::.
6198506102dStholo
6208506102dStholo    `-l'
6218506102dStholo          Local; run only in current working directory.  See *Note
6228506102dStholo          Recursive behavior::.
6238506102dStholo
6248506102dStholo    `-R'
6258506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
6268506102dStholo
6278506102dStholo    `-v'
6288506102dStholo          Include tag information for file.  See *Note Tags::.
6298506102dStholo
6308506102dStholo`tag [OPTIONS] TAG [FILES...]'
6318506102dStholo     Add a symbolic tag to checked out version of files.  See *Note
6328506102dStholo     Revisions:: and *Note Branching and merging::.
6338506102dStholo
6348506102dStholo    `-b'
6358506102dStholo          Create a branch named TAG.  See *Note Branching and merging::.
6368506102dStholo
6378506102dStholo    `-c'
6388506102dStholo          Check that working files are unmodified.  See *Note Tagging
6398506102dStholo          the working directory::.
6408506102dStholo
6418506102dStholo    `-D DATE'
6428506102dStholo          Tag revisions as of DATE.  See *Note Tagging by date/tag::.
6438506102dStholo
6448506102dStholo    `-d'
6458506102dStholo          Delete TAG.  See *Note Modifying tags::.
6468506102dStholo
6478506102dStholo    `-F'
6488506102dStholo          Move TAG if it already exists.  See *Note Modifying tags::.
6498506102dStholo
6508506102dStholo    `-f'
6518506102dStholo          Force a head revision match if tag/date not found.  See *Note
6528506102dStholo          Tagging by date/tag::.
6538506102dStholo
6548506102dStholo    `-l'
6558506102dStholo          Local; run only in current working directory.  See *Note
6568506102dStholo          Recursive behavior::.
6578506102dStholo
6588506102dStholo    `-R'
6598506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
6608506102dStholo
6618506102dStholo    `-r REV'
6628506102dStholo          Tag existing tag REV.  See *Note Tagging by date/tag::.
6638506102dStholo
6648506102dStholo`unedit [OPTIONS] [FILES...]'
6658506102dStholo     Undo an edit command.  See *Note Editing files::.
6668506102dStholo
6678506102dStholo    `-a ACTIONS'
6688506102dStholo          Specify actions for temporary watch, where ACTIONS is `edit',
6698506102dStholo          `unedit', `commit', `all', or `none'.  See *Note Editing
6708506102dStholo          files::.
6718506102dStholo
6728506102dStholo    `-l'
6738506102dStholo          Local; run only in current working directory.  See *Note
6748506102dStholo          Recursive behavior::.
6758506102dStholo
6768506102dStholo    `-R'
6778506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
6788506102dStholo
6798506102dStholo`update [OPTIONS] [FILES...]'
6808506102dStholo     Bring work tree in sync with repository.  See *Note update::.
6818506102dStholo
6828506102dStholo    `-A'
6838506102dStholo          Reset any sticky tags/date/options.  See *Note Sticky tags::
6848506102dStholo          and *Note Keyword substitution::.
6858506102dStholo
686e77048c1Stholo    `-C'
687e77048c1Stholo          Overwrite locally modified files with clean copies from the
688e77048c1Stholo          repository (the modified file is saved in `.#FILE.REVISION',
689e77048c1Stholo          however).
690e77048c1Stholo
6918506102dStholo    `-D DATE'
6928506102dStholo          Check out revisions as of DATE (is sticky).  See *Note Common
6938506102dStholo          options::.
6948506102dStholo
6958506102dStholo    `-d'
6968506102dStholo          Create directories.  See *Note update options::.
6978506102dStholo
6988506102dStholo    `-f'
6998506102dStholo          Use head revision if tag/date not found.  See *Note Common
7008506102dStholo          options::.
7018506102dStholo
7028506102dStholo    `-I IGN'
7038506102dStholo          More files to ignore (! to reset).  See *Note import
7048506102dStholo          options::.
7058506102dStholo
7068506102dStholo    `-j REV'
7078506102dStholo          Merge in changes.  See *Note update options::.
7088506102dStholo
7098506102dStholo    `-k KFLAG'
7108506102dStholo          Use KFLAG keyword expansion.  See *Note Substitution modes::.
7118506102dStholo
7128506102dStholo    `-l'
7138506102dStholo          Local; run only in current working directory.  *Note
7148506102dStholo          Recursive behavior::.
7158506102dStholo
7168506102dStholo    `-P'
7178506102dStholo          Prune empty directories.  See *Note Moving directories::.
7188506102dStholo
7198506102dStholo    `-p'
7208506102dStholo          Check out files to standard output (avoids stickiness).  See
7218506102dStholo          *Note update options::.
7228506102dStholo
7238506102dStholo    `-R'
7248506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
7258506102dStholo
7268506102dStholo    `-r TAG'
7278506102dStholo          Checkout revision TAG (is sticky).  See *Note Common
7288506102dStholo          options::.
7298506102dStholo
7308506102dStholo    `-W SPEC'
7318506102dStholo          More wrappers.  See *Note import options::.
7328506102dStholo
733e77048c1Stholo`version'
734e77048c1Stholo     Display the version of CVS being used.  If the repository is
735e77048c1Stholo     remote, display both the client and server versions.
736e77048c1Stholo
7378506102dStholo`watch [on|off|add|remove] [OPTIONS] [FILES...]'
7388506102dStholo     on/off: turn on/off read-only checkouts of files.  See *Note
7398506102dStholo     Setting a watch::.
7408506102dStholo
7418506102dStholo     add/remove: add or remove notification on actions.  See *Note
7428506102dStholo     Getting Notified::.
7438506102dStholo
7448506102dStholo    `-a ACTIONS'
7458506102dStholo          Specify actions for temporary watch, where ACTIONS is `edit',
7468506102dStholo          `unedit', `commit', `all', or `none'.  See *Note Editing
7478506102dStholo          files::.
7488506102dStholo
7498506102dStholo    `-l'
7508506102dStholo          Local; run only in current working directory.  See *Note
7518506102dStholo          Recursive behavior::.
7528506102dStholo
7538506102dStholo    `-R'
7548506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
7558506102dStholo
7568506102dStholo`watchers [OPTIONS] [FILES...]'
7578506102dStholo     See who is watching a file.  See *Note Watch information::.
7588506102dStholo
7598506102dStholo    `-l'
7608506102dStholo          Local; run only in current working directory.  See *Note
7618506102dStholo          Recursive behavior::.
7628506102dStholo
7638506102dStholo    `-R'
7648506102dStholo          Operate recursively (default).  *Note Recursive behavior::.
7658506102dStholo
7668506102dStholo
7678506102dStholoFile: cvs.info,  Node: Administrative files,  Next: Environment variables,  Prev: Invoking CVS,  Up: Top
7688506102dStholo
7698506102dStholoReference manual for Administrative files
7708506102dStholo*****************************************
7718506102dStholo
7728506102dStholo   Inside the repository, in the directory `$CVSROOT/CVSROOT', there
7738506102dStholoare a number of supportive files for CVS.  You can use CVS in a limited
7748506102dStholofashion without any of them, but if they are set up properly they can
7758506102dStholohelp make life easier.  For a discussion of how to edit them, see *Note
7768506102dStholoIntro administrative files::.
7778506102dStholo
7788506102dStholo   The most important of these files is the `modules' file, which
7798506102dStholodefines the modules inside the repository.
7808506102dStholo
7818506102dStholo* Menu:
7828506102dStholo
7838506102dStholo* modules::                     Defining modules
7842f9d2fd9Stholo* Wrappers::                    Specify binary-ness based on file name
7858506102dStholo* commit files::                The commit support files
7868506102dStholo* commitinfo::                  Pre-commit checking
7878506102dStholo* verifymsg::                   How are log messages evaluated?
7888506102dStholo* editinfo::                    Specifying how log messages are created
7898506102dStholo                                (obsolete)
7908506102dStholo* loginfo::                     Where should log messages be sent?
7918506102dStholo* rcsinfo::                     Templates for the log messages
7928506102dStholo* cvsignore::                   Ignoring files via cvsignore
7932f9d2fd9Stholo* checkoutlist::                Adding your own administrative files
7948506102dStholo* history file::                History information
7958506102dStholo* Variables::                   Various variables are expanded
7968506102dStholo* config::                      Miscellaneous CVS configuration
7978506102dStholo
7988506102dStholo
7998506102dStholoFile: cvs.info,  Node: modules,  Next: Wrappers,  Up: Administrative files
8008506102dStholo
8018506102dStholoThe modules file
8028506102dStholo================
8038506102dStholo
8048506102dStholo   The `modules' file records your definitions of names for collections
8058506102dStholoof source code.  CVS will use these definitions if you use CVS to
8068506102dStholoupdate the modules file (use normal commands like `add', `commit', etc).
8078506102dStholo
8088506102dStholo   The `modules' file may contain blank lines and comments (lines
8098506102dStholobeginning with `#') as well as module definitions.  Long lines can be
8108506102dStholocontinued on the next line by specifying a backslash (`\') as the last
8118506102dStholocharacter on the line.
8128506102dStholo
8138506102dStholo   There are three basic types of modules: alias modules, regular
8148506102dStholomodules, and ampersand modules.  The difference between them is the way
8158506102dStholothat they map files in the repository to files in the working
8168506102dStholodirectory.  In all of the following examples, the top-level repository
8178506102dStholocontains a directory called `first-dir', which contains two files,
8188506102dStholo`file1' and `file2', and a directory `sdir'.  `first-dir/sdir' contains
8198506102dStholoa file `sfile'.
8208506102dStholo
8218506102dStholo* Menu:
8228506102dStholo
8238506102dStholo* Alias modules::             The simplest kind of module
8248506102dStholo* Regular modules::
8258506102dStholo* Ampersand modules::
8268506102dStholo* Excluding directories::     Excluding directories from a module
8278506102dStholo* Module options::            Regular and ampersand modules can take options
828e77048c1Stholo* Module program options::    How the modules ``program options'' programs
829e77048c1Stholo                              are run.
8308506102dStholo
8318506102dStholo
8322f91a5f5StholoFile: cvs.info,  Node: Alias modules,  Next: Regular modules,  Up: modules
8332f91a5f5Stholo
8342f91a5f5StholoAlias modules
8352f91a5f5Stholo-------------
8362f91a5f5Stholo
8372f91a5f5Stholo   Alias modules are the simplest kind of module:
8382f91a5f5Stholo
8392f91a5f5Stholo`MNAME -a ALIASES...'
8402f91a5f5Stholo     This represents the simplest way of defining a module MNAME.  The
8412f91a5f5Stholo     `-a' flags the definition as a simple alias: CVS will treat any
8422f91a5f5Stholo     use of MNAME (as a command argument) as if the list of names
8432f91a5f5Stholo     ALIASES had been specified instead.  ALIASES may contain either
8442f91a5f5Stholo     other module names or paths.  When you use paths in aliases,
8452f91a5f5Stholo     `checkout' creates all intermediate directories in the working
8462f91a5f5Stholo     directory, just as if the path had been specified explicitly in
8472f91a5f5Stholo     the CVS arguments.
8482f91a5f5Stholo
8492f91a5f5Stholo   For example, if the modules file contains:
8502f91a5f5Stholo
8512f91a5f5Stholo     amodule -a first-dir
8522f91a5f5Stholo
8532f91a5f5Stholothen the following two commands are equivalent:
8542f91a5f5Stholo
8552f91a5f5Stholo     $ cvs co amodule
8562f91a5f5Stholo     $ cvs co first-dir
8572f91a5f5Stholo
8582f91a5f5Stholoand they each would provide output such as:
8592f91a5f5Stholo
8602f91a5f5Stholo     cvs checkout: Updating first-dir
8612f91a5f5Stholo     U first-dir/file1
8622f91a5f5Stholo     U first-dir/file2
8632f91a5f5Stholo     cvs checkout: Updating first-dir/sdir
8642f91a5f5Stholo     U first-dir/sdir/sfile
8652f91a5f5Stholo
8662f91a5f5Stholo
8672f91a5f5StholoFile: cvs.info,  Node: Regular modules,  Next: Ampersand modules,  Prev: Alias modules,  Up: modules
8682f91a5f5Stholo
8692f91a5f5StholoRegular modules
8702f91a5f5Stholo---------------
8712f91a5f5Stholo
8722f91a5f5Stholo`MNAME [ options ] DIR [ FILES... ]'
8732f91a5f5Stholo     In the simplest case, this form of module definition reduces to
8742f91a5f5Stholo     `MNAME DIR'.  This defines all the files in directory DIR as
8752f91a5f5Stholo     module mname.  DIR is a relative path (from `$CVSROOT') to a
8762f91a5f5Stholo     directory of source in the source repository.  In this case, on
8772f91a5f5Stholo     checkout, a single directory called MNAME is created as a working
8782f91a5f5Stholo     directory; no intermediate directory levels are used by default,
8792f91a5f5Stholo     even if DIR was a path involving several directory levels.
8802f91a5f5Stholo
8812f91a5f5Stholo   For example, if a module is defined by:
8822f91a5f5Stholo
8832f91a5f5Stholo     regmodule first-dir
8842f91a5f5Stholo
8852f91a5f5Stholothen regmodule will contain the files from first-dir:
8862f91a5f5Stholo
8872f91a5f5Stholo     $ cvs co regmodule
8882f91a5f5Stholo     cvs checkout: Updating regmodule
8892f91a5f5Stholo     U regmodule/file1
8902f91a5f5Stholo     U regmodule/file2
8912f91a5f5Stholo     cvs checkout: Updating regmodule/sdir
8922f91a5f5Stholo     U regmodule/sdir/sfile
8932f91a5f5Stholo     $
8942f91a5f5Stholo
8952f91a5f5Stholo   By explicitly specifying files in the module definition after DIR,
8962f91a5f5Stholoyou can select particular files from directory DIR.  Here is an example:
8972f91a5f5Stholo
8982f91a5f5Stholo     regfiles first-dir/sdir sfile
8992f91a5f5Stholo
9002f91a5f5StholoWith this definition, getting the regfiles module will create a single
9012f91a5f5Stholoworking directory `regfiles' containing the file listed, which comes
9022f91a5f5Stholofrom a directory deeper in the CVS source repository:
9032f91a5f5Stholo
9042f91a5f5Stholo     $ cvs co regfiles
9052f91a5f5Stholo     U regfiles/sfile
9062f91a5f5Stholo     $
9072f91a5f5Stholo
9082f91a5f5Stholo
9092f91a5f5StholoFile: cvs.info,  Node: Ampersand modules,  Next: Excluding directories,  Prev: Regular modules,  Up: modules
9102f91a5f5Stholo
9112f91a5f5StholoAmpersand modules
9122f91a5f5Stholo-----------------
9132f91a5f5Stholo
9142f91a5f5Stholo   A module definition can refer to other modules by including
9152f91a5f5Stholo`&MODULE' in its definition.
9162f91a5f5Stholo     MNAME [ options ] &MODULE...
9172f91a5f5Stholo
9182f91a5f5Stholo   Then getting the module creates a subdirectory for each such module,
9192f91a5f5Stholoin the directory containing the module.  For example, if modules
9202f91a5f5Stholocontains
9212f91a5f5Stholo
9222f91a5f5Stholo     ampermod &first-dir
9232f91a5f5Stholo
9242f91a5f5Stholo   then a checkout will create an `ampermod' directory which contains a
9252f91a5f5Stholodirectory called `first-dir', which in turns contains all the
9262f91a5f5Stholodirectories and files which live there.  For example, the command
9272f91a5f5Stholo
9282f91a5f5Stholo     $ cvs co ampermod
9292f91a5f5Stholo
9302f91a5f5Stholowill create the following files:
9312f91a5f5Stholo
9322f91a5f5Stholo     ampermod/first-dir/file1
9332f91a5f5Stholo     ampermod/first-dir/file2
9342f91a5f5Stholo     ampermod/first-dir/sdir/sfile
9352f91a5f5Stholo
9362f91a5f5Stholo   There is one quirk/bug: the messages that CVS prints omit the
9372f91a5f5Stholo`ampermod', and thus do not correctly display the location to which it
9382f91a5f5Stholois checking out the files:
9392f91a5f5Stholo
9402f91a5f5Stholo     $ cvs co ampermod
9412f91a5f5Stholo     cvs checkout: Updating first-dir
9422f91a5f5Stholo     U first-dir/file1
9432f91a5f5Stholo     U first-dir/file2
9442f91a5f5Stholo     cvs checkout: Updating first-dir/sdir
9452f91a5f5Stholo     U first-dir/sdir/sfile
9462f91a5f5Stholo     $
9472f91a5f5Stholo
9482f91a5f5Stholo   Do not rely on this buggy behavior; it may get fixed in a future
9492f91a5f5Stholorelease of CVS.
9502f91a5f5Stholo
9512f91a5f5Stholo
9522f91a5f5StholoFile: cvs.info,  Node: Excluding directories,  Next: Module options,  Prev: Ampersand modules,  Up: modules
9532f91a5f5Stholo
9542f91a5f5StholoExcluding directories
9552f91a5f5Stholo---------------------
9562f91a5f5Stholo
9572f91a5f5Stholo   An alias module may exclude particular directories from other
9582f91a5f5Stholomodules by using an exclamation mark (`!') before the name of each
9592f91a5f5Stholodirectory to be excluded.
9602f91a5f5Stholo
9612f91a5f5Stholo   For example, if the modules file contains:
9622f91a5f5Stholo
963d794bb93Stholo     exmodule -a !first-dir/sdir first-dir
9642f91a5f5Stholo
9652f91a5f5Stholo   then checking out the module `exmodule' will check out everything in
9662f91a5f5Stholo`first-dir' except any files in the subdirectory `first-dir/sdir'.
9672f91a5f5Stholo
9682f91a5f5Stholo
969e77048c1StholoFile: cvs.info,  Node: Module options,  Next: Module program options,  Prev: Excluding directories,  Up: modules
9702f91a5f5Stholo
9712f91a5f5StholoModule options
9722f91a5f5Stholo--------------
9732f91a5f5Stholo
9742f91a5f5Stholo   Either regular modules or ampersand modules can contain options,
9752f91a5f5Stholowhich supply additional information concerning the module.
9762f91a5f5Stholo
9772f91a5f5Stholo`-d NAME'
9782f91a5f5Stholo     Name the working directory something other than the module name.
9792f91a5f5Stholo
9802f91a5f5Stholo`-e PROG'
9812f91a5f5Stholo     Specify a program PROG to run whenever files in a module are
9822f91a5f5Stholo     exported.  PROG runs with a single argument, the module name.
9832f91a5f5Stholo
9842f91a5f5Stholo`-i PROG'
9852f91a5f5Stholo     Specify a program PROG to run whenever files in a module are
9862f91a5f5Stholo     committed.  PROG runs with a single argument, the full pathname of
9872f91a5f5Stholo     the affected directory in a source repository.  The `commitinfo',
9882f91a5f5Stholo     `loginfo', and `verifymsg' files provide other ways to call a
9892f91a5f5Stholo     program on commit.
9902f91a5f5Stholo
9912f91a5f5Stholo`-o PROG'
9922f91a5f5Stholo     Specify a program PROG to run whenever files in a module are
9932f91a5f5Stholo     checked out.  PROG runs with a single argument, the module name.
9942f91a5f5Stholo
9952f91a5f5Stholo`-s STATUS'
9962f91a5f5Stholo     Assign a status to the module.  When the module file is printed
9972f91a5f5Stholo     with `cvs checkout -s' the modules are sorted according to
9982f91a5f5Stholo     primarily module status, and secondarily according to the module
9992f91a5f5Stholo     name.  This option has no other meaning.  You can use this option
10002f91a5f5Stholo     for several things besides status: for instance, list the person
10012f91a5f5Stholo     that is responsible for this module.
10022f91a5f5Stholo
10032f91a5f5Stholo`-t PROG'
10042f91a5f5Stholo     Specify a program PROG to run whenever files in a module are
10052f91a5f5Stholo     tagged with `rtag'.  PROG runs with two arguments: the module name
10062f91a5f5Stholo     and the symbolic tag specified to `rtag'.  It is not run when
10072f91a5f5Stholo     `tag' is executed.  Generally you will find that taginfo is a
1008e77048c1Stholo     better solution (*note user-defined logging::).
10092f91a5f5Stholo
10102f91a5f5Stholo`-u PROG'
10112f91a5f5Stholo     Specify a program PROG to run whenever `cvs update' is executed
10122f91a5f5Stholo     from the top-level directory of the checked-out module.  PROG runs
10132f91a5f5Stholo     with a single argument, the full path to the source repository for
10142f91a5f5Stholo     this module.
10152f91a5f5Stholo
1016e77048c1Stholo   You should also see *note Module program options:: about how the
1017e77048c1Stholo"program options" programs are run.
1018e77048c1Stholo
1019e77048c1Stholo
1020e77048c1StholoFile: cvs.info,  Node: Module program options,  Prev: Module options,  Up: modules
1021e77048c1Stholo
1022e77048c1StholoHow the modules file "program options" programs are run
1023e77048c1Stholo-------------------------------------------------------
1024e77048c1Stholo
1025e77048c1StholoFor checkout, rtag, and export, the program is server-based, and as
1026e77048c1Stholosuch the following applies:-
1027e77048c1Stholo
1028e77048c1Stholo   If using remote access methods (pserver, ext, etc.), CVS will
1029e77048c1Stholoexecute this program on the server from a temporary directory. The path
1030e77048c1Stholois searched for this program.
1031e77048c1Stholo
1032e77048c1Stholo   If using "local access" (on a local or remote NFS filesystem, i.e.
1033e77048c1Stholorepository set just to a path), the program will be executed from the
1034e77048c1Stholonewly checked-out tree, if found there, or alternatively searched for
1035e77048c1Stholoin the path if not.
1036e77048c1Stholo
1037e77048c1StholoThe commit and update programs are locally-based, and are run as
1038e77048c1Stholofollows:-
1039e77048c1Stholo
1040e77048c1Stholo   The program is always run locally. One must re-checkout the tree one
1041e77048c1Stholois using if these options are updated in the modules administrative
1042e77048c1Stholofile. The file CVS/Checkin.prog contains the value of the option `-i'
1043e77048c1Stholoset in the modules file, and similarly for the file CVS/Update.prog and
1044e77048c1Stholo`-u'. The program is always executed from the top level of the
1045e77048c1Stholochecked-out copy on the client. Again, the program is first searched
1046e77048c1Stholofor in the checked-out copy and then using the path.
1047e77048c1Stholo
1048e77048c1Stholo   The programs are all run after the operation has effectively
1049e77048c1Stholocompleted.
1050e77048c1Stholo
10512f91a5f5Stholo
1052f79d7d1bStholoFile: cvs.info,  Node: Wrappers,  Next: commit files,  Prev: modules,  Up: Administrative files
1053f79d7d1bStholo
1054f79d7d1bStholoThe cvswrappers file
1055f79d7d1bStholo====================
1056f79d7d1bStholo
10578506102dStholo   Wrappers refers to a CVS feature which lets you control certain
10588506102dStholosettings based on the name of the file which is being operated on.  The
10598506102dStholosettings are `-k' for binary files, and `-m' for nonmergeable text
10608506102dStholofiles.
1061f79d7d1bStholo
10628506102dStholo   The `-m' option specifies the merge methodology that should be used
10638506102dStholowhen a non-binary file is updated.  `MERGE' means the usual CVS
10648506102dStholobehavior: try to merge the files.  `COPY' means that `cvs update' will
10658506102dStholorefuse to merge files, as it also does for files specified as binary
10668506102dStholowith `-kb' (but if the file is specified as binary, there is no need to
10678506102dStholospecify `-m 'COPY'').  CVS will provide the user with the two versions
10688506102dStholoof the files, and require the user using mechanisms outside CVS, to
10698506102dStholoinsert any necessary changes.  *WARNING*: do not use `COPY' with CVS
10708506102dStholo1.9 or earlier-such versions of CVS will copy one version of your file
10718506102dStholoover the other, wiping out the previous contents.  The `-m' wrapper
10728506102dStholooption only affects behavior when merging is done on update; it does
10738506102dStholonot affect how files are stored.  See *Note Binary files::, for more on
10748506102dStholobinary files.
1075f79d7d1bStholo
1076f79d7d1bStholo   The basic format of the file `cvswrappers' is:
1077f79d7d1bStholo
1078f79d7d1bStholo     wildcard     [option value][option value]...
1079f79d7d1bStholo
1080f79d7d1bStholo     where option is one of
1081f79d7d1bStholo     -m           update methodology      value: MERGE or COPY
1082f79d7d1bStholo     -k           keyword expansion       value: expansion mode
1083f79d7d1bStholo
1084f79d7d1bStholo     and value is a single-quote delimited value.
1085f79d7d1bStholo
10868506102dStholo   For example, the following command imports a directory, treating
10878506102dStholofiles whose name ends in `.exe' as binary:
1088f79d7d1bStholo
1089f79d7d1bStholo     cvs import -I ! -W "*.exe -k 'b'" first-dir vendortag reltag
1090f79d7d1bStholo
1091f79d7d1bStholo
1092f79d7d1bStholoFile: cvs.info,  Node: commit files,  Next: commitinfo,  Prev: Wrappers,  Up: Administrative files
1093f79d7d1bStholo
1094f79d7d1bStholoThe commit support files
1095f79d7d1bStholo========================
1096f79d7d1bStholo
1097f79d7d1bStholo   The `-i' flag in the `modules' file can be used to run a certain
1098e77048c1Stholoprogram whenever files are committed (*note modules::).  The files
1099f79d7d1bStholodescribed in this section provide other, more flexible, ways to run
1100f79d7d1bStholoprograms whenever something is committed.
1101f79d7d1bStholo
1102f79d7d1bStholo   There are three kind of programs that can be run on commit.  They
1103f79d7d1bStholoare specified in files in the repository, as described below.  The
1104f79d7d1bStholofollowing table summarizes the file names and the purpose of the
1105f79d7d1bStholocorresponding programs.
1106f79d7d1bStholo
1107f79d7d1bStholo`commitinfo'
1108f79d7d1bStholo     The program is responsible for checking that the commit is
1109f79d7d1bStholo     allowed.  If it exits with a non-zero exit status the commit will
1110f79d7d1bStholo     be aborted.
1111f79d7d1bStholo
1112f79d7d1bStholo`verifymsg'
1113f79d7d1bStholo     The specified program is used to evaluate the log message, and
1114f79d7d1bStholo     possibly verify that it contains all required fields.  This is
1115f79d7d1bStholo     most useful in combination with the `rcsinfo' file, which can hold
1116e77048c1Stholo     a log message template (*note rcsinfo::).
1117f79d7d1bStholo
1118f79d7d1bStholo`editinfo'
1119f79d7d1bStholo     The specified program is used to edit the log message, and
1120f79d7d1bStholo     possibly verify that it contains all required fields.  This is
1121f79d7d1bStholo     most useful in combination with the `rcsinfo' file, which can hold
1122e77048c1Stholo     a log message template (*note rcsinfo::).  (obsolete)
1123f79d7d1bStholo
1124f79d7d1bStholo`loginfo'
1125f79d7d1bStholo     The specified program is called when the commit is complete.  It
1126f79d7d1bStholo     receives the log message and some additional information and can
1127f79d7d1bStholo     store the log message in a file, or mail it to appropriate
1128f79d7d1bStholo     persons, or maybe post it to a local newsgroup, or...  Your
1129f79d7d1bStholo     imagination is the limit!
1130f79d7d1bStholo
1131f79d7d1bStholo* Menu:
1132f79d7d1bStholo
1133f79d7d1bStholo* syntax::                      The common syntax
1134f79d7d1bStholo
1135f79d7d1bStholo
1136f79d7d1bStholoFile: cvs.info,  Node: syntax,  Up: commit files
1137f79d7d1bStholo
1138f79d7d1bStholoThe common syntax
1139f79d7d1bStholo-----------------
1140f79d7d1bStholo
1141f79d7d1bStholo   The administrative files such as `commitinfo', `loginfo', `rcsinfo',
1142f79d7d1bStholo`verifymsg', etc., all have a common format.  The purpose of the files
1143f79d7d1bStholoare described later on.  The common syntax is described here.
1144f79d7d1bStholo
1145f79d7d1bStholo   Each line contains the following:
1146f79d7d1bStholo   * A regular expression.  This is a basic regular expression in the
1147f79d7d1bStholo     syntax used by GNU emacs.
1148f79d7d1bStholo
1149f79d7d1bStholo   * A whitespace separator--one or more spaces and/or tabs.
1150f79d7d1bStholo
1151f79d7d1bStholo   * A file name or command-line template.
1152f79d7d1bStholo
1153f79d7d1bStholoBlank lines are ignored.  Lines that start with the character `#' are
11542f9d2fd9Stholotreated as comments.  Long lines unfortunately can _not_ be broken in
1155f79d7d1bStholotwo parts in any way.
1156f79d7d1bStholo
1157f79d7d1bStholo   The first regular expression that matches the current directory name
1158f79d7d1bStholoin the repository is used.  The rest of the line is used as a file name
1159f79d7d1bStholoor command-line as appropriate.
1160f79d7d1bStholo
1161f79d7d1bStholo
1162f79d7d1bStholoFile: cvs.info,  Node: commitinfo,  Next: verifymsg,  Prev: commit files,  Up: Administrative files
1163f79d7d1bStholo
1164f79d7d1bStholoCommitinfo
1165f79d7d1bStholo==========
1166f79d7d1bStholo
1167f79d7d1bStholo   The `commitinfo' file defines programs to execute whenever `cvs
1168f79d7d1bStholocommit' is about to execute.  These programs are used for pre-commit
1169f79d7d1bStholochecking to verify that the modified, added and removed files are really
1170f79d7d1bStholoready to be committed.  This could be used, for instance, to verify
1171f79d7d1bStholothat the changed files conform to to your site's standards for coding
1172f79d7d1bStholopractice.
1173f79d7d1bStholo
1174f79d7d1bStholo   As mentioned earlier, each line in the `commitinfo' file consists of
1175f79d7d1bStholoa regular expression and a command-line template.  The template can
1176f79d7d1bStholoinclude a program name and any number of arguments you wish to supply
1177f79d7d1bStholoto it.  The full path to the current source repository is appended to
1178f79d7d1bStholothe template, followed by the file names of any files involved in the
1179f79d7d1bStholocommit (added, removed, and modified files).
1180f79d7d1bStholo
11818506102dStholo   The first line with a regular expression matching the directory
11828506102dStholowithin the repository will be used.  If the command returns a non-zero
11838506102dStholoexit status the commit will be aborted.
1184f79d7d1bStholo
1185f79d7d1bStholo   If the repository name does not match any of the regular expressions
1186f79d7d1bStholoin this file, the `DEFAULT' line is used, if it is specified.
1187f79d7d1bStholo
11888506102dStholo   All occurrences of the name `ALL' appearing as a regular expression
1189f79d7d1bStholoare used in addition to the first matching regular expression or the
1190f79d7d1bStholoname `DEFAULT'.
1191f79d7d1bStholo
1192f79d7d1bStholo   Note: when CVS is accessing a remote repository, `commitinfo' will
11932f9d2fd9Stholobe run on the _remote_ (i.e., server) side, not the client side (*note
1194e77048c1StholoRemote repositories::).
1195f79d7d1bStholo
1196f79d7d1bStholo
1197f79d7d1bStholoFile: cvs.info,  Node: verifymsg,  Next: editinfo,  Prev: commitinfo,  Up: Administrative files
1198f79d7d1bStholo
1199f79d7d1bStholoVerifying log messages
1200f79d7d1bStholo======================
1201f79d7d1bStholo
1202f79d7d1bStholo   Once you have entered a log message, you can evaluate that message
1203f79d7d1bStholoto check for specific content, such as a bug ID.  Use the `verifymsg'
1204f79d7d1bStholofile to specify a program that is used to verify the log message.  This
1205f79d7d1bStholoprogram could be a simple script that checks that the entered message
1206f79d7d1bStholocontains the required fields.
1207f79d7d1bStholo
1208f79d7d1bStholo   The `verifymsg' file is often most useful together with the
1209f79d7d1bStholo`rcsinfo' file, which can be used to specify a log message template.
1210f79d7d1bStholo
1211f79d7d1bStholo   Each line in the `verifymsg' file consists of a regular expression
1212f79d7d1bStholoand a command-line template.  The template must include a program name,
1213f79d7d1bStholoand can include any number of arguments.  The full path to the current
1214f79d7d1bSthololog message template file is appended to the template.
1215f79d7d1bStholo
1216f79d7d1bStholo   One thing that should be noted is that the `ALL' keyword is not
1217f79d7d1bStholosupported.  If more than one matching line is found, the first one is
1218f79d7d1bStholoused.  This can be useful for specifying a default verification script
12198506102dStholoin a directory, and then overriding it in a subdirectory.
1220f79d7d1bStholo
1221f79d7d1bStholo   If the repository name does not match any of the regular expressions
1222f79d7d1bStholoin this file, the `DEFAULT' line is used, if it is specified.
1223f79d7d1bStholo
1224f79d7d1bStholo   If the verification script exits with a non-zero exit status, the
1225f79d7d1bStholocommit is aborted.
1226f79d7d1bStholo
1227f79d7d1bStholo   Note that the verification script cannot change the log message; it
1228f79d7d1bStholocan merely accept it or reject it.
1229f79d7d1bStholo
1230f79d7d1bStholo   The following is a little silly example of a `verifymsg' file,
1231f79d7d1bStholotogether with the corresponding `rcsinfo' file, the log message
1232f79d7d1bStholotemplate and an verification  script.  We begin with the log message
1233f79d7d1bStholotemplate.  We want to always record a bug-id number on the first line
1234f79d7d1bStholoof the log message.  The rest of log message is free text.  The
1235f79d7d1bStholofollowing template is found in the file `/usr/cvssupport/tc.template'.
1236f79d7d1bStholo
1237f79d7d1bStholo     BugId:
1238f79d7d1bStholo
1239f79d7d1bStholo   The script `/usr/cvssupport/bugid.verify' is used to evaluate the
1240f79d7d1bSthololog message.
1241f79d7d1bStholo
1242f79d7d1bStholo     #!/bin/sh
1243f79d7d1bStholo     #
1244f79d7d1bStholo     #       bugid.verify filename
1245f79d7d1bStholo     #
1246f79d7d1bStholo     #  Verify that the log message contains a valid bugid
1247f79d7d1bStholo     #  on the first line.
1248f79d7d1bStholo     #
1249f79d7d1bStholo     if head -1 < $1 | grep '^BugId:[ ]*[0-9][0-9]*$' > /dev/null; then
1250f79d7d1bStholo         exit 0
1251f79d7d1bStholo     else
1252f79d7d1bStholo         echo "No BugId found."
1253f79d7d1bStholo         exit 1
1254f79d7d1bStholo     fi
1255f79d7d1bStholo
1256f79d7d1bStholo   The `verifymsg' file contains this line:
1257f79d7d1bStholo
12582f9d2fd9Stholo     ^tc     /usr/cvssupport/bugid.verify
1259f79d7d1bStholo
1260f79d7d1bStholo   The `rcsinfo' file contains this line:
1261f79d7d1bStholo
1262f79d7d1bStholo     ^tc     /usr/cvssupport/tc.template
1263f79d7d1bStholo
1264f79d7d1bStholo
1265f79d7d1bStholoFile: cvs.info,  Node: editinfo,  Next: loginfo,  Prev: verifymsg,  Up: Administrative files
1266f79d7d1bStholo
1267f79d7d1bStholoEditinfo
1268f79d7d1bStholo========
1269f79d7d1bStholo
12702f9d2fd9Stholo   _NOTE:_ The `editinfo' feature has been rendered obsolete.  To set a
1271f79d7d1bStholodefault editor for log messages use the `EDITOR' environment variable
1272e77048c1Stholo(*note Environment variables::) or the `-e' global option (*note Global
1273e77048c1Stholooptions::).  See *Note verifymsg::, for information on the use of the
1274e77048c1Stholo`verifymsg' feature for evaluating log messages.
1275f79d7d1bStholo
1276f79d7d1bStholo   If you want to make sure that all log messages look the same way,
1277f79d7d1bStholoyou can use the `editinfo' file to specify a program that is used to
1278f79d7d1bStholoedit the log message.  This program could be a custom-made editor that
1279f79d7d1bStholoalways enforces a certain style of the log message, or maybe a simple
1280f79d7d1bStholoshell script that calls an editor, and checks that the entered message
1281f79d7d1bStholocontains the required fields.
1282f79d7d1bStholo
1283f79d7d1bStholo   If no matching line is found in the `editinfo' file, the editor
1284f79d7d1bStholospecified in the environment variable `$CVSEDITOR' is used instead.  If
1285f79d7d1bStholothat variable is not set, then the environment variable `$EDITOR' is
1286f79d7d1bStholoused instead.  If that variable is not set a default will be used.  See
1287f79d7d1bStholo*Note Committing your changes::.
1288f79d7d1bStholo
1289f79d7d1bStholo   The `editinfo' file is often most useful together with the `rcsinfo'
1290f79d7d1bStholofile, which can be used to specify a log message template.
1291f79d7d1bStholo
1292f79d7d1bStholo   Each line in the `editinfo' file consists of a regular expression
1293f79d7d1bStholoand a command-line template.  The template must include a program name,
1294f79d7d1bStholoand can include any number of arguments.  The full path to the current
1295f79d7d1bSthololog message template file is appended to the template.
1296f79d7d1bStholo
1297f79d7d1bStholo   One thing that should be noted is that the `ALL' keyword is not
1298f79d7d1bStholosupported.  If more than one matching line is found, the first one is
1299f79d7d1bStholoused.  This can be useful for specifying a default edit script in a
1300f79d7d1bStholomodule, and then overriding it in a subdirectory.
1301f79d7d1bStholo
1302f79d7d1bStholo   If the repository name does not match any of the regular expressions
1303f79d7d1bStholoin this file, the `DEFAULT' line is used, if it is specified.
1304f79d7d1bStholo
1305f79d7d1bStholo   If the edit script exits with a non-zero exit status, the commit is
1306f79d7d1bStholoaborted.
1307f79d7d1bStholo
1308f79d7d1bStholo   Note: when CVS is accessing a remote repository, or when the `-m' or
1309f79d7d1bStholo`-F' options to `cvs commit' are used, `editinfo' will not be consulted.
1310f79d7d1bStholoThere is no good workaround for this; use `verifymsg' instead.
1311f79d7d1bStholo
1312f79d7d1bStholo* Menu:
1313f79d7d1bStholo
1314f79d7d1bStholo* editinfo example::            Editinfo example
1315f79d7d1bStholo
1316f79d7d1bStholo
1317f79d7d1bStholoFile: cvs.info,  Node: editinfo example,  Up: editinfo
1318f79d7d1bStholo
1319f79d7d1bStholoEditinfo example
1320f79d7d1bStholo----------------
1321f79d7d1bStholo
1322f79d7d1bStholo   The following is a little silly example of a `editinfo' file,
1323f79d7d1bStholotogether with the corresponding `rcsinfo' file, the log message
1324f79d7d1bStholotemplate and an editor script.  We begin with the log message template.
1325f79d7d1bStholoWe want to always record a bug-id number on the first line of the log
1326f79d7d1bStholomessage.  The rest of log message is free text.  The following template
1327f79d7d1bStholois found in the file `/usr/cvssupport/tc.template'.
1328f79d7d1bStholo
1329f79d7d1bStholo     BugId:
1330f79d7d1bStholo
1331f79d7d1bStholo   The script `/usr/cvssupport/bugid.edit' is used to edit the log
1332f79d7d1bStholomessage.
1333f79d7d1bStholo
1334f79d7d1bStholo     #!/bin/sh
1335f79d7d1bStholo     #
1336f79d7d1bStholo     #       bugid.edit filename
1337f79d7d1bStholo     #
1338f79d7d1bStholo     #  Call $EDITOR on FILENAME, and verify that the
1339f79d7d1bStholo     #  resulting file contains a valid bugid on the first
1340f79d7d1bStholo     #  line.
1341f79d7d1bStholo     if [ "x$EDITOR" = "x" ]; then EDITOR=vi; fi
1342f79d7d1bStholo     if [ "x$CVSEDITOR" = "x" ]; then CVSEDITOR=$EDITOR; fi
1343f79d7d1bStholo     $CVSEDITOR $1
1344f79d7d1bStholo     until head -1|grep '^BugId:[ ]*[0-9][0-9]*$' < $1
1345f79d7d1bStholo     do  echo -n  "No BugId found.  Edit again? ([y]/n)"
1346f79d7d1bStholo         read ans
1347f79d7d1bStholo         case ${ans} in
1348f79d7d1bStholo             n*) exit 1;;
1349f79d7d1bStholo         esac
1350f79d7d1bStholo         $CVSEDITOR $1
1351f79d7d1bStholo     done
1352f79d7d1bStholo
1353f79d7d1bStholo   The `editinfo' file contains this line:
1354f79d7d1bStholo
1355f79d7d1bStholo     ^tc     /usr/cvssupport/bugid.edit
1356f79d7d1bStholo
1357f79d7d1bStholo   The `rcsinfo' file contains this line:
1358f79d7d1bStholo
1359f79d7d1bStholo     ^tc     /usr/cvssupport/tc.template
1360f79d7d1bStholo
1361f79d7d1bStholo
1362f79d7d1bStholoFile: cvs.info,  Node: loginfo,  Next: rcsinfo,  Prev: editinfo,  Up: Administrative files
1363f79d7d1bStholo
1364f79d7d1bStholoLoginfo
1365f79d7d1bStholo=======
1366f79d7d1bStholo
1367f79d7d1bStholo   The `loginfo' file is used to control where `cvs commit' log
1368f79d7d1bStholoinformation is sent.  The first entry on a line is a regular expression
1369f79d7d1bStholowhich is tested against the directory that the change is being made to,
1370f79d7d1bStholorelative to the `$CVSROOT'.  If a match is found, then the remainder of
1371f79d7d1bStholothe line is a filter program that should expect log information on its
1372f79d7d1bStholostandard input.
1373f79d7d1bStholo
1374f79d7d1bStholo   If the repository name does not match any of the regular expressions
1375f79d7d1bStholoin this file, the `DEFAULT' line is used, if it is specified.
1376f79d7d1bStholo
13778506102dStholo   All occurrences of the name `ALL' appearing as a regular expression
1378f79d7d1bStholoare used in addition to the first matching regular expression or
1379f79d7d1bStholo`DEFAULT'.
1380f79d7d1bStholo
1381f79d7d1bStholo   The first matching regular expression is used.
1382f79d7d1bStholo
1383f79d7d1bStholo   *Note commit files::, for a description of the syntax of the
1384f79d7d1bStholo`loginfo' file.
1385f79d7d1bStholo
1386f79d7d1bStholo   The user may specify a format string as part of the filter.  The
1387f79d7d1bStholostring is composed of a `%' followed by a space, or followed by a single
1388f79d7d1bStholoformat character, or followed by a set of format characters surrounded
1389f79d7d1bStholoby `{' and `}' as separators.  The format characters are:
1390f79d7d1bStholo
1391f79d7d1bStholos
1392f79d7d1bStholo     file name
1393f79d7d1bStholo
1394f79d7d1bStholoV
1395f79d7d1bStholo     old version number (pre-checkin)
1396f79d7d1bStholo
1397f79d7d1bStholov
1398f79d7d1bStholo     new version number (post-checkin)
1399f79d7d1bStholo
1400f79d7d1bStholo   All other characters that appear in a format string expand to an
1401f79d7d1bStholoempty field (commas separating fields are still provided).
1402f79d7d1bStholo
1403f79d7d1bStholo   For example, some valid format strings are `%', `%s', `%{s}', and
1404f79d7d1bStholo`%{sVv}'.
1405f79d7d1bStholo
1406f79d7d1bStholo   The output will be a string of tokens separated by spaces.  For
1407e77048c1Stholobackwards compatibility, the first token will be the repository
1408e77048c1Stholosubdirectory.  The rest of the tokens will be comma-delimited lists of
1409e77048c1Stholothe information requested in the format string.  For example, if
1410e77048c1Stholo`/u/src/master/yoyodyne/tc' is the repository, `%{sVv}' is the format
1411e77048c1Stholostring, and three files (ChangeLog, Makefile, foo.c) were modified, the
1412e77048c1Stholooutput might be:
1413f79d7d1bStholo
1414e77048c1Stholo     yoyodyne/tc ChangeLog,1.1,1.2 Makefile,1.3,1.4 foo.c,1.12,1.13
1415f79d7d1bStholo
1416f79d7d1bStholo   As another example, `%{}' means that only the name of the repository
1417f79d7d1bStholowill be generated.
1418f79d7d1bStholo
1419f79d7d1bStholo   Note: when CVS is accessing a remote repository, `loginfo' will be
14202f9d2fd9Stholorun on the _remote_ (i.e., server) side, not the client side (*note
1421e77048c1StholoRemote repositories::).
1422f79d7d1bStholo
1423f79d7d1bStholo* Menu:
1424f79d7d1bStholo
1425f79d7d1bStholo* loginfo example::             Loginfo example
1426f79d7d1bStholo* Keeping a checked out copy::  Updating a tree on every checkin
1427f79d7d1bStholo
1428f79d7d1bStholo
1429f79d7d1bStholoFile: cvs.info,  Node: loginfo example,  Next: Keeping a checked out copy,  Up: loginfo
1430f79d7d1bStholo
1431f79d7d1bStholoLoginfo example
1432f79d7d1bStholo---------------
1433f79d7d1bStholo
1434f79d7d1bStholo   The following `loginfo' file, together with the tiny shell-script
1435f79d7d1bStholobelow, appends all log messages to the file
1436f79d7d1bStholo`$CVSROOT/CVSROOT/commitlog', and any commits to the administrative
1437f79d7d1bStholofiles (inside the `CVSROOT' directory) are also logged in
14386407bc5bStholo`/usr/adm/cvsroot-log'.  Commits to the `prog1' directory are mailed to
14396407bc5bStholoceder.
1440f79d7d1bStholo
14416407bc5bStholo     ALL             /usr/local/bin/cvs-log $CVSROOT/CVSROOT/commitlog $USER
1442f79d7d1bStholo     ^CVSROOT        /usr/local/bin/cvs-log /usr/adm/cvsroot-log
14436407bc5bStholo     ^prog1          Mail -s %s ceder
1444f79d7d1bStholo
1445f79d7d1bStholo   The shell-script `/usr/local/bin/cvs-log' looks like this:
1446f79d7d1bStholo
1447f79d7d1bStholo     #!/bin/sh
1448f79d7d1bStholo     (echo "------------------------------------------------------";
14496407bc5bStholo      echo -n $2"  ";
1450f79d7d1bStholo      date;
1451f79d7d1bStholo      echo;
14526407bc5bStholo      cat) >> $1
1453f79d7d1bStholo
1454f79d7d1bStholo
1455f79d7d1bStholoFile: cvs.info,  Node: Keeping a checked out copy,  Prev: loginfo example,  Up: loginfo
1456f79d7d1bStholo
1457f79d7d1bStholoKeeping a checked out copy
1458f79d7d1bStholo--------------------------
1459f79d7d1bStholo
1460f79d7d1bStholo   It is often useful to maintain a directory tree which contains files
1461f79d7d1bStholowhich correspond to the latest version in the repository.  For example,
1462f79d7d1bStholoother developers might want to refer to the latest sources without
1463f79d7d1bStholohaving to check them out, or you might be maintaining a web site with
1464f79d7d1bStholoCVS and want every checkin to cause the files used by the web server to
1465f79d7d1bStholobe updated.
1466f79d7d1bStholo
1467f79d7d1bStholo   The way to do this is by having loginfo invoke `cvs update'.  Doing
1468f79d7d1bStholoso in the naive way will cause a problem with locks, so the `cvs update'
14692f91a5f5Stholomust be run in the background.  Here is an example for unix (this
14702f91a5f5Stholoshould all be on one line):
1471f79d7d1bStholo
1472f79d7d1bStholo     ^cyclic-pages		(date; cat; (sleep 2; cd /u/www/local-docs;
1473f79d7d1bStholo      cvs -q update -d) &) >> $CVSROOT/CVSROOT/updatelog 2>&1
1474f79d7d1bStholo
1475f79d7d1bStholo   This will cause checkins to repository directories starting with
1476f79d7d1bStholo`cyclic-pages' to update the checked out tree in `/u/www/local-docs'.
1477f79d7d1bStholo
1478f79d7d1bStholo
1479f79d7d1bStholoFile: cvs.info,  Node: rcsinfo,  Next: cvsignore,  Prev: loginfo,  Up: Administrative files
1480f79d7d1bStholo
1481f79d7d1bStholoRcsinfo
1482f79d7d1bStholo=======
1483f79d7d1bStholo
1484f79d7d1bStholo   The `rcsinfo' file can be used to specify a form to edit when
1485f79d7d1bStholofilling out the commit log.  The `rcsinfo' file has a syntax similar to
1486f79d7d1bStholothe `verifymsg', `commitinfo' and `loginfo' files.  *Note syntax::.
14872f9d2fd9StholoUnlike the other files the second part is _not_ a command-line
1488f79d7d1bStholotemplate.  Instead, the part after the regular expression should be a
1489f79d7d1bStholofull pathname to a file containing the log message template.
1490f79d7d1bStholo
1491f79d7d1bStholo   If the repository name does not match any of the regular expressions
1492f79d7d1bStholoin this file, the `DEFAULT' line is used, if it is specified.
1493f79d7d1bStholo
14948506102dStholo   All occurrences of the name `ALL' appearing as a regular expression
1495f79d7d1bStholoare used in addition to the first matching regular expression or
1496f79d7d1bStholo`DEFAULT'.
1497f79d7d1bStholo
1498f79d7d1bStholo   The log message template will be used as a default log message.  If
1499f79d7d1bStholoyou specify a log message with `cvs commit -m MESSAGE' or `cvs commit -f
1500f79d7d1bStholoFILE' that log message will override the template.
1501f79d7d1bStholo
1502f79d7d1bStholo   *Note verifymsg::, for an example `rcsinfo' file.
1503f79d7d1bStholo
1504f79d7d1bStholo   When CVS is accessing a remote repository, the contents of `rcsinfo'
1505f79d7d1bStholoat the time a directory is first checked out will specify a template
1506f79d7d1bStholowhich does not then change.  If you edit `rcsinfo' or its templates,
1507f79d7d1bStholoyou may need to check out a new working directory.
1508f79d7d1bStholo
1509