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