1.\" $OpenBSD: cvs.1,v 1.122 2009/03/25 09:47:26 joris Exp $ 2.\" 3.\" Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org> 4.\" Copyright (c) 2004-2008 Xavier Santolaria <xsa@openbsd.org> 5.\" All rights reserved. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 11.\" 1. Redistributions of source code must retain the above copyright 12.\" notice, this list of conditions and the following disclaimer. 13.\" 2. The name of the author may not be used to endorse or promote products 14.\" derived from this software without specific prior written permission. 15.\" 16.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 17.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 18.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 19.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 20.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26.\" 27.Dd $Mdocdate: March 25 2009 $ 28.Dt CVS 1 29.Os 30.Sh NAME 31.Nm cvs 32.Nd OpenCVS Concurrent Versioning System 33.Sh SYNOPSIS 34.Nm 35.Bk -words 36.Op Fl flnQqRrtVvw 37.Op Fl d Ar root 38.Op Fl e Ar editor 39.Xo 40.Oo Fl s 41.Ar var Ns = Ns Ar val Oc 42.Xc 43.Op Fl T Ar tmpdir 44.Op Fl z Ar level 45.Ar command ... 46.Ek 47.Sh DESCRIPTION 48The 49.Nm 50program acts as both client and server for the use of and administration of 51a CVS source repository. 52CVS is used to maintain version information on files that are kept in a 53repository. 54Although it is more commonly used to track changes in source code, there 55are no real limitations to the type of files that can be stored in a 56repository. 57For a general introduction to CVS, see 58.Xr cvsintro 7 . 59.Pp 60.Nm 61reads its startup configuration file, 62.Pa .cvsrc , 63from the home directory of the user who invoked it. 64This file is used to specify implicit options passed to 65.Nm 66or one of its commands whenever it is invoked. 67The defaults in the configuration file can be overridden with the 68.Fl f 69option (see below). 70See 71.Xr cvs 5 72for further information. 73.Pp 74.Nm 75also supports 76keyword substitution \(en 77see the 78.Xr rcs 1 79man page for more information. 80.Pp 81The following options are supported: 82.Bl -tag -width Ds 83.It Fl d Ar root 84Use 85.Ar root 86as the path to the root directory of the CVS repository. 87The value must specify an absolute path. 88.It Fl e Ar editor 89Use the program 90.Ar editor 91whenever editing log information. 92This option overrides the environment variables CVSEDITOR, VISUAL, and EDITOR. 93.It Fl f 94Do not read the user's configuration file on startup. 95.It Fl l 96Suppress logging of history information. 97.It Fl n 98Dry-run mode. 99Show which files will be used by the command issued 100without really running it. 101.It Fl Q 102Be extra quiet. 103Only error messages will be displayed. 104.It Fl q 105Be quiet about reporting. 106.It Fl R 107Permit checkout from a read-only repository. 108Implies 109.Fl l . 110See also 111.Ev CVSREADONLYFS , 112below. 113.It Fl r 114Extract files in read-only mode. 115.It Fl s Ar var Ns = Ns Ar val 116Set the value of the internal variable 117.Ar var 118to the string 119.Ar val . 120.It Fl T Ar tmpdir 121Set the value of the directory where temporary files are to be created. 122The default is set to 123.Pa /tmp . 124.It Fl t 125Trace program execution. 126.It Fl V 127Verbose mode. 128All messages will be displayed. 129This is the default. 130.Fl V 131and 132.Fl Q 133are mutually exclusive. 134If both are specified, 135.Fl Q 136takes precedence. 137.It Fl v 138Display version information and exit. 139.It Fl w 140Extract new files in read-write mode. 141Overrides the setting of the 142.Ev CVSREAD 143environment variable. 144This is the default unless 145.Ev CVSREAD 146is set or the 147.Fl r 148option is specified. 149.It Fl z Ar level 150Specify the compression level to 151.Xr gzip 1 152when transferring files. 153The compression level ranges from 1 to 9, 154with 1 being the fastest, 155and 9 providing the best level of compression. 156The default is 6. 157.El 158.Pp 159.Ex -std cvs 160.Sh COMMANDS 161.Nm 162supports the following commands: 163add, 164admin, 165annotate, 166checkout, 167commit, 168diff, 169edit, 170editors, 171export, 172history, 173import, 174init, 175kserver, 176log, 177rannotate, 178rdiff, 179release, 180remove, 181rlog, 182rtag, 183server, 184status, 185tag, 186unedit, 187update, 188version, 189watch, 190watchers. 191The commands are fully explained in this section. 192.Pp 193Files may be selected by 194.Em revision 195or, where no revision is specified, 196the latest revision of the default branch is used. 197Revisions are specified either by using the 198.Fl r 199option or 200by appending the revision number to any option that supports it. 201.Pp 202.Nm 203supports the notion of 204.Em state . 205The state is an arbitrary string of characters used to describe a file 206(or a specific revision of a file). 207States can be set or changed using the 208.Fl s 209option, for CVS tools which support it. 210The state of a file/revision can be modified without having to 211.Ic commit 212a new file/revision. 213The default state is 214.Sq Exp 215(Experimental). 216Examples of states could be 217.Sq Dev , 218.Sq Reviewed , 219or 220.Sq Stab . 221.Ss add 222Before a file is known to 223.Nm , 224it must be added to the repository using this command. 225Adding a file does not actually publish the contents of the 226file: the 227.Ic commit 228command must also be used to publish it into the repository, 229and thus let others access the file. 230.Pp 231Note: since directories have no versioning system, it is sufficient 232to add them with the 233.Ic add 234command alone; the 235.Ic commit 236command is not necessary. 237.Bd -literal -offset indent 238usage: cvs add [-k mode] [-m msg] file ... 239.Ed 240.Pp 241The 242.Ic add 243command takes the following options: 244.Bl -tag -width Ds -offset 3n 245.It Fl k Ar mode 246Specify the keyword substitution mode. 247.It Fl m Ar msg 248Attach log message 249.Ar msg . 250By default, no log message is required. 251.El 252.Pp 253Aliases: 254.Ic ad , 255.Ic new . 256.Ss admin 257The 258.Ic admin 259command is used to directly modify the RCS files. 260.Bd -literal -offset indent 261usage: cvs admin [-Iq] [-b branch] [-k mode] [-m rev:msg] 262 [-N tag[:rev]] [-n tag[:rev]] [-o rev] 263 [-s state[:rev]] [-t file | str] 264.Ed 265.Pp 266The 267.Ic admin 268command takes the following options: 269.Bl -tag -width Ds -offset 3n 270.It Fl b Ar branch 271Set the default branch to 272.Ar branch . 273.It Fl I 274Command is interactive. 275.It Fl k Ar mode 276Specify the keyword substitution mode. 277.It Fl m Ar rev : Ns Ar msg 278Change the log message of a revision. 279.It Xo Fl N 280.Ar tag Ns Op : Ns Ar rev 281.Xc 282Same as 283.Fl n , 284but override tag if it already exists. 285.It Xo Fl n 286.Ar tag Ns Op : Ns Ar rev 287.Xc 288Associate the 289.Ar tag 290with the 291.Ar rev 292or the branch given as argument. 293If the revision or the branch is not specified, the tag is deleted. 294The 295.Sq \&: 296character means the association of the tag and the latest revision of 297the default branch. 298A branch number ending with the 299.Sq \&. 300character means the current latest revision in the branch. 301This option is functionally the same as the 302.Ic rtag 303command, but it avoids the check of the tags done with the 304.Pa CVSROOT/taginfo 305file. 306.It Fl o Ar rev 307Delete one or more revisions. 308The specifications of the values or revisions are as follows: 309.Bl -tag -width Ds 310.It rev 311Specific revision. 312.It rev1:rev2 313Delete all revisions of a branch between 314.Ar rev1 315and 316.Ar rev2 . 317.It rev1::rev2 318Delete all revisions of a branch between 319.Ar rev1 320and 321.Ar rev2 322without deleting revisions 323.Ar rev1 324and 325.Ar rev2 . 326.It :rev 327Delete all revisions of the branch until revision 328.Ar rev . 329.It rev: 330Delete all revisions of the branch from revision 331.Ar rev 332until the last revision of the branch. 333.El 334.It Fl q 335Quiet mode. 336.It Xo Fl s 337.Ar state Ns Op : Ns Ar rev 338.Xc 339Change state of a revision. 340.It Fl t Ar file \*(Ba Ar str 341Change the descriptive text. 342The descriptive text is taken from the 343.Ar file 344specified as argument or from the string 345.Ar str 346given as argument if it is preceded by the 347.Sq - 348character. 349If no argument is used, the descriptive text is taken from standard input. 350.El 351.Pp 352Aliases: 353.Ic adm , 354.Ic rcs . 355.Ss annotate 356For each line of any files specified, show information about its 357last revision. 358The information given is the last revision when a modification occurred, 359the author's name, and the date of the revision. 360.Bd -literal -offset indent 361usage: cvs annotate [flR] [-D date | -r rev] [file ...] 362.Ed 363.Pp 364The 365.Ic annotate 366command takes the following options: 367.Bl -tag -width Ds -offset 3n 368.It Fl D Ar date 369Show the annotations as of the latest revision no later than 370.Ar date . 371.It Fl f 372Force the use of the head revision if the specified 373tag or date is not found. 374This can be used in combination with 375.Fl D 376or 377.Fl r 378to ensure that there is some output from the 379.Ic annotate 380command, even if only to show Revision 1.1 of the file. 381.It Fl l 382Limit the scope of the search to the local directory 383only and disable recursive behaviour. 384.It Fl R 385Enable recursive behaviour. 386This is the default. 387.It Fl r Ar rev 388Show annotations as of revision 389.Ar rev 390(can be a revision number or a tag). 391.El 392.Pp 393Aliases: 394.Ic ann , 395.Ic blame . 396.Ss checkout 397The 398.Ic checkout 399command is used to create a local copy of one or more modules present on the 400target CVS repository. 401.Bd -literal -offset indent 402usage: cvs checkout [-AcflNnPpRs] [-d dir] [-j rev] [-k mode] 403 -D date | -r rev module ... 404.Ed 405.Pp 406The 407.Ic checkout 408command takes the following options: 409.Bl -tag -width Ds -offset 3n 410.It Fl A 411Reset any sticky tags, dates, or keyword substitution modes that 412have been set on the tree. 413.It Fl c 414Display the list of available modules. 415.It Fl D Ar date 416Check out as of the latest revision no later than 417.Ar date 418(implies 419.Fl P ) 420(is sticky). 421.It Fl d Ar dir 422Check out in directory 423.Ar dir 424instead of the directory bearing the same name as the 425.Ar module . 426.It Fl f 427Force the use of the head revision if the specified 428tag or date is not found. 429.It Fl j Ar rev 430Merge in changes made between current revision and 431.Ar rev . 432If two 433.Fl j 434options are specified, only merge the differences between the two 435revisions of the branch. 436This allows successive merges without having to resolve 437already resolved conflicts again. 438.It Fl k Ar mode 439Specify the keyword substitution mode (is sticky). 440.It Fl l 441Limit the scope of the search to the local directory 442only and disable recursive behaviour. 443.It Fl N 444If used in conjunction with the 445.Fl d 446option, files are placed in local directory 447.Ar module , 448located in directory 449.Ar dir . 450.It Fl n 451Do not execute programs listed in the 452.Pa CVSROOT/modules 453file. 454.It Fl P 455Prune empty directories. 456.It Fl p 457Check out files to standard output (avoids stickiness). 458.It Fl R 459Enable recursive behaviour. 460This is the default. 461.It Fl r Ar rev 462Check out from a particular revision or branch (implies 463.Fl P ) 464(is sticky). 465.It Fl s 466Like 467.Fl c , 468but include module status. 469.El 470.Pp 471Aliases: 472.Ic co , 473.Ic get . 474.Ss commit 475The 476.Ic commit 477command is used to send local changes back to the server and update the 478repository's information to reflect the changes. 479.Bd -literal -offset indent 480usage: cvs commit [-flnR] [-F logfile | -m msg] [-r rev] [file ...] 481.Ed 482.Pp 483The 484.Ic commit 485command takes the following options: 486.Bl -tag -width Ds -offset 3n 487.It Fl F Ar logfile 488Specify a 489.Ar file 490which contains the log message. 491.It Fl f 492Force a file to be committed, even though it is unchanged. 493.It Fl l 494Limit the scope of the search to the local directory 495only and disable recursive behaviour. 496.It Fl m Ar msg 497Specify a log message on the command line (suppresses the editor invocation). 498.It Fl n 499Do not execute programs listed in the 500.Pa CVSROOT/modules 501file. 502.It Fl R 503Enable recursive behaviour. 504This is the default. 505.It Fl r Ar rev 506Commit to a particular symbolic or numerical revision. 507.El 508.Pp 509Aliases: 510.Ic ci , 511.Ic com . 512.Ss diff 513The 514.Ic diff 515command is very similar to the 516.Xr diff 1 517program, except that the differential comparisons that it generates are 518between local or remote revisions of files stored in the CVS repository. 519.Bd -literal -offset indent 520usage: cvs diff [-cilNnpRu] 521 [[-D date1 | -r rev1] [-D date2 | -r rev2]] 522 [-k mode] [file ...] 523.Ed 524.Pp 525The 526.Ic diff 527command takes the following options: 528.Bl -tag -width Ds -offset 3n 529.It Fl c 530Produces a diff with three lines of context. 531See 532.Xr diff 1 533for more information. 534.It Xo Fl D Ar date1 535.Op Fl D Ar date2 536.Xc 537Differences between the revision at 538.Ar date1 539and the working copy or 540.Ar date1 541and 542.Ar date2 543(if specified). 544.It Fl i 545Ignore the case of letters. 546For example, 547.Sq A 548will compare equal to 549.Sq a . 550.It Fl k Ar mode 551Specify the keyword substitution mode. 552.It Fl l 553Limit the scope of the search to the local directory 554only and disable recursive behaviour. 555.It Fl N 556Include added or removed files. 557.It Fl n 558Produces a diff in the same format as that used by 559.Xr rcsdiff 1 , 560with a count of changed lines on each insert or delete command. 561.It Fl p 562With unified and context diffs, show with each change the first 56340 characters of the last line before the context beginning with 564a letter, an underscore or a dollar sign. 565See 566.Xr diff 1 567for more information. 568.It Fl R 569Enable recursive behaviour. 570This is the default. 571.It Xo Fl r Ar rev1 572.Op Fl r Ar rev2 573.Xc 574Differences between revision 575.Ar rev1 576and the working copy or 577.Ar rev1 578and 579.Ar rev2 580(if specified). 581.It Fl u 582Produces a unified diff with three lines of context. 583See 584.Xr diff 1 585for more information. 586.El 587.Pp 588Aliases: 589.Ic di , 590.Ic dif . 591.Ss edit 592The 593.Ic edit 594command is used to make a file that is being watched 595(and therefore read-only) 596readable and writable and to inform others that it is in the 597process of being changed. 598Notifications terminate when the 599.Ic commit 600command is issued. 601Editing rights on the file can be given up using the 602.Ic unedit 603command, which terminates the temporary notifications. 604.Bd -literal -offset indent 605usage: cvs edit [-lR] [-a action] [file ...] 606.Ed 607.Pp 608The 609.Ic edit 610command takes the following options: 611.Bl -tag -width Ds -offset 3n 612.It Fl a Ar action 613Specify the temporary notification wanted: 614.Pp 615.Bl -tag -width Ds -compact 616.It Cm commit 617Another user has committed changes to the file. 618.It Cm edit 619Another user has issued the 620.Ic edit 621command on the file. 622.It Cm unedit 623Another user has issued the 624.Ic unedit 625command on the file. 626.It Cm all 627All of the above. 628.It Cm none 629None of the above. 630.El 631.Pp 632The 633.Fl a 634flag may appear more than once, or not at all. 635If omitted, the action defaults to 636.Cm all . 637.It Fl l 638Limit the scope of the search to the local directory 639only and disable recursive behaviour. 640.It Fl R 641Enable recursive behaviour. 642This is the default. 643.El 644.Ss editors 645The 646.Ic editors 647command lists the users with edition rights on a file. 648For that, pseudo-lock mode must be enabled (see the 649.Ic watch 650command). 651The e-mail address of the user editing the file, the timestamp 652when the edition first started, the host from where the edition 653has been requested and the path to the edited file are listed. 654.Bd -literal -offset indent 655usage: cvs editors [-lR] [file ...] 656.Ed 657.Pp 658The 659.Ic editors 660command takes the following options: 661.Bl -tag -width Ds -offset 3n 662.It Fl l 663Limit the scope of the search to the local directory 664only and disable recursive behaviour. 665.It Fl R 666Enable recursive behaviour. 667This is the default. 668.El 669.Ss export 670The 671.Ic export 672command extracts a copy of 673.Ar module 674without including the directories used for management by 675.Nm . 676This eases production of a software release. 677A date or a revision must be specified for the command to be valid, 678which ensures that later extractions can be reproduced with the same 679options as the release. 680.Pp 681The checked out module's files will be placed in a directory 682bearing the same name as the checked out module, by default. 683.Bd -literal -offset indent 684usage: cvs export [-flNnR] [-d dir] [-k mode] 685 -D date | -r rev module ... 686.Ed 687.Pp 688The 689.Ic export 690command takes the following options: 691.Bl -tag -width Ds -offset 3n 692.It Fl D Ar date 693Export as of the latest revision no later than 694.Ar date . 695.It Fl d Ar dir 696Export in directory 697.Ar dir 698instead of the directory bearing the same name as the 699.Ar module . 700.It Fl f 701Force the use of the head revision if the specified 702tag or date is not found. 703This can be used in combination with 704.Fl D 705or 706.Fl r 707to ensure that the 708.Ic export 709command is valid. 710.It Fl k Ar mode 711Specify the keyword substitution mode: the 712.Fl k Ar v 713option is often used to avoid substitution of keywords during 714a release cycle. 715However, be aware that it does not handle an export containing 716binary files correctly. 717.It Fl l 718Limit the scope of the search to the local directory 719only and disable recursive behaviour. 720.It Fl N 721If used in conjunction with the 722.Fl d 723option, files are placed in local directory 724.Ar module , 725located in directory 726.Ar dir . 727.It Fl n 728Do not execute programs listed in the 729.Pa CVSROOT/modules 730file. 731.It Fl R 732Enable recursive behaviour. 733This is the default. 734.It Fl r Ar rev 735Export from a particular symbolic or numerical revision. 736.El 737.Pp 738Aliases: 739.Ic ex , 740.Ic exp . 741.Ss history 742The 743.Ic history 744command is used to display the history of actions done in the 745base repository. 746This functionality is only available if the 747.Pa CVSROOT/history 748file has been created. 749Only the 750.Ic checkout , 751.Ic commit , 752.Ic export , 753.Ic release , 754.Ic rtag , 755and 756.Ic update 757commands are logged into this file. 758.Bd -literal -offset indent 759usage: cvs history [-aceloTw] [-b str] [-D date] [-f file] 760 [-m module] [-n module] [-p path] [-r rev] 761 [-t tag] [-u user] [-x ACEFGMORTUW] [-z tz] 762 [file ...] 763.Ed 764.Pp 765The 766.Ic history 767command takes the following options: 768.Bl -tag -width Ds -offset 3n 769.It Fl a 770Display records for all users. 771By default, only records from the user issuing the 772.Ic history 773command are displayed. 774.It Fl b Ar str 775Display everything back to a record containing the string 776.Ar str 777in either the module name, the file name, or the repository path. 778.It Fl c 779Display the archived files 780.Pf ( Ic commit 781command). 782.It Fl D Ar date 783Report no later than 784.Ar date . 785.It Fl e 786Select all records (same as 787.Fl x 788with all types). 789.It Fl f Ar file 790Display records related to 791.Ar file . 792.It Fl l 793Show last checkouts of modules with the 794.Ic checkout 795command. 796.It Fl m Ar module 797Look for the 798.Ar module 799(can be used several times). 800.It Fl n Ar module 801Search into the 802.Ar module . 803.It Fl o 804Report on modules checked out by users. 805.It Fl p Ar path 806Display records from the base repository being in the directory 807specified by the 808.Ar path . 809.It Fl r Ar rev 810Report for a particular revision (checks in the RCS file). 811.It Fl T 812Report on all tags. 813.It Fl t Ar tag 814Report since tag record placed in the 815.Pa CVSROOT/history 816file by any user. 817.It Fl u Ar user 818Report for a specified 819.Ar user . 820Can be used several times to match many users. 821.It Fl w 822Check that records match the current working directory. 823.It Fl x Ar ACEFGMORTUW 824Extract by a specific record type specified by a single letter. 825They can be used in combination. 826The available types are as follows: 827.Bl -tag -width Ds 828.It A 829A file has been added with the 830.Ic add 831command. 832.It C 833A merge has been done, but unresolved conflicts still remain. 834.It E 835Export. 836.It F 837Release. 838.It G 839A merge has been done without conflict. 840.It M 841A file has been modified (using the 842.Ic commit 843command). 844.It O 845Checkout. 846.It R 847A file has been removed with the 848.Ic remove 849command. 850.It T 851Rtag. 852.It U 853Normal update. 854.It W 855The file has been deleted from the directory because it does not 856exist anymore in the base repository. 857.El 858.It Fl z Ar tz 859Display records with the time synchronized with timezone 860.Ar tz . 861.El 862.Pp 863All records have the following five first columns: 864.Pp 865.Bl -dash -compact 866.It 867The record type (the 868.Fl x 869option). 870.It 871The date of the action. 872.It 873The time of the action. 874.It 875The time zone. 876.It 877The user who made the action. 878.El 879.Pp 880The other columns vary depending on the command issued: 881.Pp 882For records coming from the 883.Ic rtag 884command, the additional columns are as follows: 885.Bd -literal -offset indent 886<module> [<tag>:<argument>] {<working directory>} 887.Ed 888.Pp 889For records coming from the 890.Ic checkout 891and 892.Ic export 893commands, the additional columns are as follows: 894.Bd -literal -offset indent 895<request> <repository> =<module>= <working directory> 896.Ed 897.Pp 898For records coming from the 899.Ic release 900command, the additional columns are as follows: 901.Bd -literal -offset indent 902=<module>= <working directory> 903.Ed 904.Pp 905For records coming from the 906.Ic commit 907and 908.Ic update 909commands, the additional columns are as follows: 910.Bd -literal -offset indent 911<version> <file> <module> == <working directory> 912.Ed 913.Pp 914Aliases: 915.Ic hi , 916.Ic his . 917.Ss import 918Import sources into CVS using vendor branches. 919.Pp 920At least three arguments are required: 921.Ar module 922specifies the location of the sources to be imported; 923.Ar vendortag 924is a tag for the entire branch; 925.Ar releasetag 926is used to identify the files created with 927.Ic cvs import . 928.Bd -literal -offset indent 929usage: cvs import [-d] [-b branch] [-I ign] [-k mode] [-m msg] 930 [-W spec] module vendortag releasetag 931.Ed 932.Pp 933The 934.Ic import 935command takes the following options: 936.Bl -tag -width Ds -offset 3n 937.It Fl b Ar branch 938Specify the first-level branch number. 939.It Fl d 940Use the file's last modification time as the timestamp for the 941initial revisions. 942.It Fl I Ar ign 943Ignore files specified by 944.Ar ign . 945This option can be used several times on the command line. 946To see all files, use the 947.Fl I Ar !\& 948specification. 949.It Fl k Ar mode 950Specify the keyword substitution mode (is sticky). 951.It Fl m Ar msg 952Specify the log message to send. 953.It Fl W Ar spec 954Wrappers specification line. 955.El 956.Pp 957Aliases: 958.Ic im , 959.Ic imp . 960.Ss init 961Create a CVS repository if it doesn't exist. 962.Ss kserver 963Start a Kerberos authentication server. 964.Ss log 965The 966.Ic log 967command displays information on a 968.Ar file 969such as its different revisions, description, different tags, 970as well as the comments, dates, and authors of these revisions. 971By default, the 972.Ic log 973command displays all the available information; the options are only 974used to restrict the displayed information. 975.Bd -literal -offset indent 976usage: cvs log [-bhlNRt] [-d dates] [-r revs] [-s state] 977 [-w users] [file ...] 978.Ed 979.Pp 980The 981.Ic log 982command takes the following options: 983.Bl -tag -width Ds -offset 3n 984.It Fl b 985List revisions of the default branch only. 986.It Fl d Ar dates 987Specify revisions with dates matching the specification. 988The specification might be as follows: 989.Bl -tag -width Ds 990.It date1<date2 or date2>date1 991Select all revisions between 992.Ar date1 993and 994.Ar date2 . 995.It <date or date> 996Select all revisions before 997.Ar date . 998.It >date or date< 999Select all revisions after 1000.Ar date . 1001.It date 1002Select the latest revision before or equal to 1003.Ar date . 1004.El 1005.Pp 1006The 1007.Sq \*(Gt 1008and 1009.Sq \*(Lt 1010characters can be followed by the 1011.Sq = 1012character to imply an inclusive specification. 1013Several specifications can be used by separating them with the 1014.Sq \&; 1015character. 1016.It Fl h 1017Print header only. 1018.It Fl l 1019Limit the scope of the search to the local directory only. 1020.It Fl N 1021Do not list tags. 1022.It Fl R 1023Print name of RCS file only. 1024.It Fl r Ar revs 1025Specify revision(s) to list: 1026.Bl -tag -width Ds 1027.It rev1,rev2,... 1028A list of revisions is specified by separating names or numbers 1029of revisions by the 1030.Sq \&, 1031character. 1032.It rev1:rev2 1033List all revisions between 1034.Ar rev1 1035and 1036.Ar rev2 1037(they must be on the same branch). 1038.It :rev 1039List all revisions since the beginning of the branch until 1040.Ar rev 1041included. 1042.It rev: 1043List all revisions of the branch beginning with 1044.Ar rev . 1045.It branch 1046List all revisions of a branch. 1047.It branch. 1048List the latest revision of the branch 1049.Ar branch . 1050.It branch1:branch2 1051List all revisions of branches between 1052.Ar branch1 1053and 1054.Ar branch2 . 1055.El 1056.Pp 1057Without argument, the 1058.Fl r 1059option means the latest revision of the default branch. 1060.It Fl s Ar state 1061List revisions of the specified 1062.Ar state 1063only. 1064Several states can be listed by separating them with the 1065.Sq \&, 1066character. 1067.It Fl t 1068Print header and description only. 1069.It Fl w Ar users 1070Do not list revisions made by specified 1071.Ar users . 1072Usernames should be separated by the 1073.Sq \&, 1074character. 1075.El 1076.Pp 1077Aliases: 1078.Ic lo . 1079.Ss rannotate 1080For each line of any files specified, show information about its 1081last revision. 1082The information given is the last revision when a modification occurred, 1083the author's name, and the date of the revision. 1084This command does not need a local checkout of the repository 1085to work. 1086.Bd -literal -offset indent 1087usage: cvs rannotate [flR] [-D date | -r rev] module ... 1088.Ed 1089.Pp 1090The 1091.Ic rannotate 1092command takes the following options: 1093.Bl -tag -width Ds -offset 3n 1094.It Fl D Ar date 1095Show the annotations as of the latest revision no later than 1096.Ar date . 1097.It Fl f 1098Force the use of the head revision if the specified 1099tag or date is not found. 1100This can be used in combination with 1101.Fl D 1102or 1103.Fl r 1104to ensure that there is some output from the 1105.Ic rannotate 1106command, even if only to show Revision 1.1 of the file. 1107.It Fl l 1108Limit the scope of the search to the local directory 1109only and disable recursive behaviour. 1110.It Fl R 1111Enable recursive behaviour. 1112This is the default. 1113.It Fl r Ar rev 1114Show annotations as of revision 1115.Ar rev 1116(can be a revision number or a tag). 1117.El 1118.Pp 1119Aliases: 1120.Ic rann , 1121.Ic ra . 1122.Ss rdiff 1123The 1124.Ic rdiff 1125command lists differences between two revisions in a 1126.Xr patch 1 1127compatible format. 1128This command does not need a local checkout of the repository 1129to work. 1130.Bd -literal -offset indent 1131usage: cvs rdiff [-flR] [-c | -u] [-s | -t] [-V ver] 1132 -D date | -r rev [-D date2 | -r rev2] 1133 module ... 1134.Ed 1135.Pp 1136The 1137.Ic rdiff 1138command takes the following options: 1139.Bl -tag -width Ds -offset 3n 1140.It Fl c 1141Produces a diff with three lines of context. 1142See 1143.Xr diff 1 1144for more information. 1145This is the default. 1146.It Xo Fl D Ar date 1147.Op Fl D Ar date2 1148.Xc 1149Differences between the revision at 1150.Ar date 1151and the working copy or 1152.Ar date 1153and 1154.Ar date2 1155(if specified). 1156.It Fl f 1157Force the use of the head revision if the specified 1158date or revision is not found. 1159.It Fl l 1160Limit the scope of the search to the local directory 1161only and disable recursive behaviour. 1162.It Fl R 1163Enable recursive behaviour. 1164This is the default. 1165.It Xo Fl r Ar rev 1166.Op Fl r Ar rev2 1167.Xc 1168Differences between revision 1169.Ar rev 1170and the working copy or 1171.Ar rev 1172and 1173.Ar rev2 1174(if specified). 1175.It Fl s 1176Create a summary change instead of a whole patch. 1177.It Fl t 1178Lists differences between the last two revisions of each file. 1179.It Fl u 1180Produces a diff in unidiff format. 1181.It Fl V Ar ver 1182Use the RCS version 1183.Ar ver 1184for keyword substitution. 1185.El 1186.Pp 1187Aliases: 1188.Ic pa , 1189.Ic patch . 1190.Ss release 1191The 1192.Ic release 1193command indicates to 1194.Nm 1195that the working copy of a module is no longer in use and checks 1196that non archived modifications in the base repository do exist. 1197This command is not mandatory. 1198Local directories could always be removed without using it, but 1199in this case the handling of history information will no longer be 1200correct (see the 1201.Ic history 1202command). 1203.Bd -literal -offset indent 1204usage: cvs release [-d] dir ... 1205.Ed 1206.Pp 1207The 1208.Ic release 1209command takes the following options: 1210.Bl -tag -width Ds -offset 3n 1211.It Fl d Ar dir 1212Remove the directory 1213.Ar dir . 1214Be aware that this option silently removes any directories that have 1215been added to the local working copy without using the 1216.Ic add 1217command. 1218.El 1219.Pp 1220For each file not being synchronized with the base repository, 1221a single letter prefix is given to specify the state of the file. 1222The possible prefixes are as follows: 1223.Bl -tag -width Ds 1224.It \&? 1225The file is unknown to 1226.Nm 1227and is not in the list of files to ignore. 1228Any new directories which have not been added with the 1229.Ic add 1230command are silently ignored as well as their content. 1231.It A 1232The file has been added with the 1233.Ic add 1234command, but has not been committed to the repository with the 1235.Ic commit 1236command. 1237.It M 1238The file has been locally modified; a more recent version might 1239exist in the base repository. 1240.It R 1241The file has been removed with the 1242.Ic remove 1243command, but has not been committed to the repository with the 1244.Ic commit 1245command. 1246.It U 1247A more recent version of the file does exist but it is not 1248locally up to date. 1249.El 1250.Pp 1251Aliases: 1252.Ic re , 1253.Ic rel . 1254.Ss remove 1255The 1256.Ic remove 1257command is used to inform 1258.Nm 1259that 1260.Ar file 1261is scheduled to be removed from the repository. 1262Files are not actually removed from the repository until the 1263.Ic commit 1264command has been run subsequently. 1265.Pp 1266There is no way to remove a directory with the 1267.Ic remove 1268command. 1269.Nm 1270will only remove a directory if it is empty and if the 1271.Ic checkout 1272or 1273.Ic update 1274commands are run with the 1275.Fl P 1276option. 1277(Note that the 1278.Ic export 1279command always removes empty directories.) 1280.Bd -literal -offset indent 1281usage: cvs remove [-flR] [file ...] 1282.Ed 1283.Pp 1284The 1285.Ic remove 1286command takes the following options: 1287.Bl -tag -width Ds -offset 3n 1288.It Fl f 1289Force local file removal. 1290If this flag is not used, the file must be locally removed beforehand for 1291the command to be valid. 1292.It Fl l 1293Limit the scope of the search to the local directory 1294only and disable recursive behaviour. 1295.It Fl R 1296Enable recursive behaviour. 1297This is the default. 1298.El 1299.Pp 1300Aliases: 1301.Ic rm , 1302.Ic delete . 1303.Ss rlog 1304The 1305.Ic rlog 1306command displays information on a 1307.Ar file 1308such as its different revisions, description, different tags, 1309as well as the comments, dates, and authors of these revisions. 1310By default, the 1311.Ic rlog 1312command displays all the available information; the options are only 1313used to restrict the displayed information. 1314This command does not need a local checkout of the repository 1315to work. 1316.Bd -literal -offset indent 1317usage: cvs rlog [-bhlNRt] [-d dates] [-r revs] [-s state] 1318 [-w users] module ... 1319.Ed 1320.Pp 1321The 1322.Ic rlog 1323command takes the following options: 1324.Bl -tag -width Ds -offset 3n 1325.It Fl b 1326List revisions of the default branch only. 1327.It Fl d Ar dates 1328Specify revisions with dates matching the specification. 1329The specification might be as follows: 1330.Bl -tag -width Ds 1331.It date1<date2 or date2>date1 1332Select all revisions between 1333.Ar date1 1334and 1335.Ar date2 . 1336.It <date or date> 1337Select all revisions before 1338.Ar date . 1339.It >date or date< 1340Select all revisions after 1341.Ar date . 1342.It date 1343Select the latest revision before or equal to 1344.Ar date . 1345.El 1346.Pp 1347The 1348.Sq \*(Gt 1349and 1350.Sq \*(Lt 1351characters can be followed by the 1352.Sq = 1353character to imply an inclusive specification. 1354Several specifications can be used by separating them with the 1355.Sq \&; 1356character. 1357.It Fl h 1358Print header only. 1359.It Fl l 1360Limit the scope of the search to the local directory only. 1361.It Fl N 1362Do not list tags. 1363.It Fl R 1364Print name of RCS file only. 1365.It Fl r Ar revs 1366Specify revision(s) to list: 1367.Bl -tag -width Ds 1368.It rev1,rev2,... 1369A list of revisions is specified by separating names or numbers 1370of revisions by the 1371.Sq \&, 1372character. 1373.It rev1:rev2 1374List all revisions between 1375.Ar rev1 1376and 1377.Ar rev2 1378(they must be on the same branch). 1379.It :rev 1380List all revisions since the beginning of the branch until 1381.Ar rev 1382included. 1383.It rev: 1384List all revisions of the branch beginning with 1385.Ar rev . 1386.It branch 1387List all revisions of a branch. 1388.It branch. 1389List the latest revision of the branch 1390.Ar branch . 1391.It branch1:branch2 1392List all revisions of branches between 1393.Ar branch1 1394and 1395.Ar branch2 . 1396.El 1397.Pp 1398Without argument, the 1399.Fl r 1400option means the latest revision of the default branch. 1401.It Fl s Ar state 1402List revisions of the specified 1403.Ar state 1404only. 1405Several states can be listed by separating them with the 1406.Sq \&, 1407character. 1408.It Fl t 1409Print header and description only. 1410.It Fl w Ar users 1411Do not list revisions made by specified 1412.Ar users . 1413Usernames should be separated by the 1414.Sq \&, 1415character. 1416.El 1417.Pp 1418Aliases: 1419.Ic rlo . 1420.Ss rtag 1421The 1422.Ic rtag 1423command adds a symbolic tag to one or more modules. 1424It is often used to create a new branch using the 1425.Fl b 1426option. 1427.Bd -literal -offset indent 1428usage: cvs rtag [-abdFflnR] [-D date | -r rev] 1429 symbolic_tag module ... 1430.Ed 1431.Pp 1432The 1433.Ic rtag 1434command takes the following options: 1435.Bl -tag -width Ds -offset 3n 1436.It Fl a 1437Clear tag from files already removed with the 1438.Ic remove 1439command. 1440.It Fl b 1441Create a branch. 1442.It Fl D Ar date 1443Tag the most recent revision before 1444.Ar date . 1445.It Fl d 1446Delete tag. 1447.It Fl F 1448Move tag if it already exists. 1449If this option is not used and a tag is used a second time, 1450.Nm 1451will not execute the action. 1452.It Fl f 1453Force the use of the head revision if the specified 1454revision or date is not found. 1455.It Fl l 1456Limit the scope of the search to the local directory 1457only and disable recursive behaviour. 1458.It Fl n 1459Do not execute programs listed in the 1460.Pa CVSROOT/modules 1461file. 1462.It Fl R 1463Enable recursive behaviour. 1464This is the default. 1465.It Fl r Ar rev 1466Tag at revision 1467.Ar rev . 1468.El 1469.Pp 1470Aliases: 1471.Ic rt , 1472.Ic rfreeze . 1473.Ss server 1474Server mode. 1475.Ss status 1476The 1477.Ic status 1478command is used to display the state of checked out files. 1479.Bd -literal -offset indent 1480usage: cvs status [-lRv] [file ...] 1481.Ed 1482.Pp 1483The 1484.Ic status 1485command takes the following options: 1486.Bl -tag -width Ds -offset 3n 1487.It Fl l 1488Limit the scope of the search to the local directory 1489only and disable recursive behaviour. 1490.It Fl R 1491Enable recursive behaviour. 1492This is the default. 1493.It Fl v 1494Display symbolic tags for 1495.Ar file . 1496.Pp 1497The state may be one of the following: 1498.Bl -tag -width Ds 1499.It Cm Locally Added 1500The file has been added with the 1501.Ic add 1502command, but has not been committed to the repository with the 1503.Ic commit 1504command. 1505.It Cm Locally Modified 1506The file is up to date, but has been locally modified. 1507.It Cm Locally Removed 1508The file has been removed with the 1509.Ic remove 1510command, but has not been committed to the repository with the 1511.Ic commit 1512command. 1513.It Cm Needs Checkout 1514The file has not been modified; a new version is available. 1515.It Cm Needs Merge 1516The file has been modified and a newer version is available. 1517.It Cm Needs Patch 1518Same as 1519.Ic Needs Checkout 1520but, in client-server mode, only the differences are sent to save 1521network resources. 1522.It Cm Unresolved Conflict 1523A merge has been done, but unresolved conflicts still remain. 1524.It Cm Up-to-date 1525The file is up to date. 1526.El 1527.El 1528.Pp 1529Aliases: 1530.Ic st , 1531.Ic stat . 1532.Ss tag 1533The 1534.Ic tag 1535command adds a symbolic tag to a checked out version of one or more files. 1536.Bd -literal -offset indent 1537usage: cvs tag [-bcdFflR] [-D date | -r rev] [symbolic_tag] 1538 [file ...] 1539.Ed 1540.Pp 1541The 1542.Ic tag 1543command takes the following options: 1544.Bl -tag -width Ds -offset 3n 1545.It Fl b 1546Create a branch. 1547.It Fl c 1548Check that working files are not modified. 1549.It Fl D Ar date 1550Tag the most recent revision before 1551.Ar date . 1552.It Fl d 1553Delete tag. 1554.It Fl F 1555Move tag if it already exists. 1556If this option is not used and a tag is used a second time, 1557.Nm 1558will not execute the action. 1559.It Fl f 1560Force the use of the head revision if the specified 1561revision or date is not found. 1562.It Fl l 1563Limit the scope of the search to the local directory 1564only and disable recursive behaviour. 1565.It Fl R 1566Enable recursive behaviour. 1567This is the default. 1568.It Fl r Ar rev 1569Tag at revision 1570.Ar rev . 1571.El 1572.Pp 1573Aliases: 1574.Ic ta , 1575.Ic freeze . 1576.Ss unedit 1577The 1578.Ic unedit 1579command is used to give up an edition on a file and thus cancel 1580the wanted temporary notifications. 1581If the file has been modified since the 1582.Ic edit 1583command has been issued, 1584.Nm 1585will ask if it should go back to the previous version, and lose the 1586modifications done on the file, or stay in edition mode on it. 1587.Bd -literal -offset indent 1588usage: cvs unedit [-lR] [file ...] 1589.Ed 1590.Pp 1591The 1592.Ic unedit 1593command takes the following options: 1594.Bl -tag -width Ds -offset 3n 1595.It Fl l 1596Limit the scope of the search to the local directory 1597only and disable recursive behaviour. 1598.It Fl R 1599Enable recursive behaviour. 1600This is the default. 1601.El 1602.Ss update 1603The 1604.Ic update 1605command is used to merge any of the changes that have occurred on the remote 1606repository into the local one where the command was run. 1607.Bd -literal -offset indent 1608usage: cvs update [-ACdflPpR] [-D date | -r rev] [-I ign] 1609 [-j rev] [-k mode] [-W spec] [file ...] 1610.Ed 1611.Pp 1612The 1613.Ic update 1614command takes the following options: 1615.Bl -tag -width Ds -offset 3n 1616.It Fl A 1617Reset any sticky tags, dates, or keyword substitution modes that 1618have been set on the tree. 1619.It Fl C 1620Overwrite locally modified files with clean repository copies. 1621.It Fl D Ar date 1622Update as of the latest revision no later than 1623.Ar date 1624(is sticky). 1625.It Fl d 1626Create any new directories. 1627Without this option, 1628.Nm 1629does not create any new files sitting in these new directories 1630added in the base repository since the last update of the working 1631copy, or since the last update with the 1632.Fl d 1633option. 1634.It Fl f 1635Force the use of the head revision if the specified 1636tag or date is not found. 1637.It Fl I Ar ign 1638Ignore files specified by 1639.Ar ign . 1640This option can be used several times on the command line. 1641To see all files, use the 1642.Fl I Ar !\& 1643specification. 1644.It Fl j Ar rev 1645Merge in changes made between current revision and 1646.Ar rev . 1647If two 1648.Fl j 1649options are specified, only merge the differences between the two 1650revisions of the branch. 1651This allows successive merges without having to resolve 1652already resolved conflicts again. 1653.It Fl k Ar mode 1654Specify the keyword substitution mode (is sticky). 1655.It Fl l 1656Limit the scope of the search to the local directory 1657only and disable recursive behaviour. 1658.It Fl P 1659Prune any directories that have become empty as a result of the update. 1660.It Fl p 1661Send the result of the update to standard output (avoids stickiness). 1662.It Fl R 1663Enable recursive behaviour. 1664This is the default. 1665.It Fl r Ar rev 1666Update from a particular revision or branch (is sticky). 1667.It Fl W Ar spec 1668Wrappers specification line. 1669.El 1670.Pp 1671By default, the 1672.Ic update 1673command does not create new directories; the 1674.Fl d 1675option must be used for that. 1676.Pp 1677For each file updated, a single letter prefix is given to 1678specify the state of the file. 1679The possible prefixes are as follows: 1680.Bl -tag -width Ds 1681.It \&? 1682The file is unknown to 1683.Nm . 1684.It A 1685The file has been added with the 1686.Ic add 1687command, but has not been committed to the repository with the 1688.Ic commit 1689command. 1690.It C 1691A merge, with a more recent version of the file, has been done, 1692but unresolved conflicts still remain. 1693.It M 1694The file has been locally modified; if a more recent version 1695is available, the merge has been done without conflict. 1696.It P 1697The same as 1698.Sq U , 1699but, in client-server mode, only differences are sent to save network 1700resources. 1701.It R 1702The file has been removed with the 1703.Ic remove 1704command, but has not been committed to the repository with the 1705.Ic commit 1706command. 1707.It U 1708The file is up to date. 1709.El 1710.Pp 1711Aliases: 1712.Ic up , 1713.Ic upd . 1714.Ss version 1715Causes 1716.Nm 1717to print its version information. 1718If this command is issued within a local copy of a remote repository or 1719if either the 1720.Ev CVSROOT 1721environment variable or the 1722.Fl d 1723flag specify a remote repository, 1724.Nm 1725will also connect to the server and ask it to print its version information. 1726.Pp 1727Aliases: 1728.Ic ve , 1729.Ic ver . 1730.Ss watch 1731The 1732.Ic watch 1733command switches a file from normal mode to 1734pseudo-lock mode as well as handling the notifications associated 1735with it. 1736Pseudo-lock mode means knowing who is editing a file: 1737for that, 1738.Nm 1739extracts the file in read-only mode. 1740Users must use the 1741.Ic edit 1742command to get the editing rights on the file. 1743.Pp 1744One of the following arguments to the 1745.Ic watch 1746command is mandatory: on, off, add, or remove. 1747.Ar on 1748switches the file into pseudo-lock mode; 1749.Ar off 1750switches it back to normal mode; 1751.Ar add 1752adds notifications for specific actions on the file; 1753.Ar remove 1754removes those notifications. 1755.Pp 1756The notifications are permanent. 1757They remain in place until the 1758.Ic watch remove 1759command is issued while the temporary notifications are 1760made available with the 1761.Ic edit 1762command. 1763.Bd -literal -offset indent 1764usage: cvs watch on | off | add | remove [-lR] [-a action] 1765 [file ...] 1766.Ed 1767.Pp 1768The 1769.Ic watch 1770command takes the following options: 1771.Bl -tag -width Ds -offset 3n 1772.It Fl a Ar action 1773Specify the permanent notification wanted for 1774.Ar add | remove : 1775.Pp 1776.Bl -tag -width Ds -compact 1777.It Cm commit 1778Another user has committed changes to the file. 1779.It Cm edit 1780Another user is editing the file. 1781.It Cm unedit 1782Another user has finished editing the file. 1783.It Cm all 1784All of the above. 1785.It Cm none 1786No notification. 1787.El 1788.Pp 1789If no specification is requested using the 1790.Ar add 1791or 1792.Ar remove 1793arguments, it implies the 1794.Fl a Ar all 1795option. 1796.It Fl l 1797Limit the scope of the search to the local directory 1798only and disable recursive behaviour. 1799.It Fl R 1800Enable recursive behaviour. 1801This is the default. 1802.El 1803.Ss watchers 1804The 1805.Ic watchers 1806command lists the users who asked for notifications as well as the 1807notifications details. 1808The possible notifications are as follows: 1809.Bl -tag -width Ds 1810.It Cm commit 1811Permanent watch of a commit of a new version of a file. 1812.It Cm edit 1813Permanent watch of the start of file edition. 1814.It Cm tcommit 1815Temporary watch of a commit of new version of a file. 1816.It Cm tedit 1817Temporary watch of the start of file edition. 1818.It Cm tunedit 1819Temporary watch of the end of file edition. 1820.It Cm unedit 1821Permanent watch of the end of file edition. 1822.El 1823.Pp 1824The temporary watches are set using the 1825.Ic edit 1826command, until the 1827.Ic commit 1828or 1829.Ic unedit 1830command is issued on a file. 1831.Bd -literal -offset indent 1832usage: cvs watchers [-lR] [file ...] 1833.Ed 1834.Pp 1835The 1836.Ic watchers 1837command takes the following options: 1838.Bl -tag -width Ds -offset 3n 1839.It Fl l 1840Limit the scope of the search to the local directory 1841only and disable recursive behaviour. 1842.It Fl R 1843Enable recursive behaviour. 1844This is the default. 1845.El 1846.Sh ENVIRONMENT 1847.Bl -tag -width Ds 1848.It Ev CVS_CLIENT_LOG 1849This variable enables logging of all communications between the client and 1850server when running in non-local mode. 1851If set, this environment variable must contain a base path from which two 1852paths will be generated by appending ".in" to the value for the server's 1853input and ".out" for the server's output. 1854.Pp 1855The path can contain the following substitutes: 1856.Pp 1857.Bl -tag -width Ds -offset indent -compact 1858.It %c 1859the command being run 1860.It %d 1861the date 1862.It %p 1863the process ID 1864.It %u 1865the username of the person running it 1866.El 1867.Pp 1868The substitutes are only supported by OpenCVS. 1869.It Ev CVS_RSH 1870Name of the program to use when connecting to the server through a remote 1871shell. 1872The default is to use the 1873.Xr ssh 1 1874program. 1875.It Ev CVS_SERVER 1876If set, gives the name of the program to invoke as a 1877.Nm 1878server when using remote shell. 1879The default is to use `cvs'. 1880.It Ev CVSEDITOR 1881Name of the editor to use when editing commit messages. 1882Checked before 1883.Ev EDITOR 1884and 1885.Ev VISUAL . 1886.It Ev CVSREAD 1887If set, 1888.Nm 1889extracts files in read-only mode. 1890.It Ev CVSREADONLYFS 1891Permit checkout from a read-only repository. 1892Implies 1893.Fl l . 1894See also 1895.Fl R , 1896above. 1897.It Ev CVSROOT 1898When set, this variable should contain the string pointing to the root 1899directory of the CVS repository. 1900The contents of this variable are ignored when the 1901.Fl d 1902option is given or if `Root' files exist in the checked-out copy. 1903.It Ev EDITOR 1904Name of the editor to use when editing commit messages. 1905This is traditionally a line-oriented editor, 1906such as 1907.Xr ex 1 . 1908.It Ev HOME 1909Directory where the 1910.Pa .cvsignore 1911and 1912.Pa .cvsrc 1913files are searched for. 1914.It Ev TMPDIR 1915When set, this variable specifies the directory where temporary files 1916are to be created. 1917The default is set to 1918.Pa /tmp . 1919.It Ev VISUAL 1920Name of the editor to use when editing commit messages. 1921This is traditionally a screen-oriented editor, 1922such as 1923.Xr vi 1 . 1924.El 1925.Sh SEE ALSO 1926.Xr diff 1 , 1927.Xr gzip 1 , 1928.Xr patch 1 , 1929.Xr rcs 1 , 1930.Xr cvs 5 , 1931.Xr cvsintro 7 1932.Sh STANDARDS 1933The flag 1934.Op Fl x 1935has no effect and is provided 1936for compatibility only. 1937.Sh HISTORY 1938The OpenCVS project is a BSD-licensed rewrite of the original 1939Concurrent Versioning System written by Jean-Francois Brousseau. 1940The original CVS code was written in large parts by Dick Grune, 1941Brian Berliner and Jeff Polk. 1942.Sh AUTHORS 1943.An Jean-Francois Brousseau 1944.An Vincent Labrecque 1945.An Joris Vink 1946.An Xavier Santolaria 1947.Sh CAVEATS 1948This CVS implementation does not fully conform to the GNU CVS version. 1949In some cases, this was done explicitly because GNU CVS has inconsistencies 1950or ambiguous behaviour. 1951Some things have also been left out or modified to enhance the overall 1952security of the system. 1953.Pp 1954Among other things, support for the pserver connection mechanism has been 1955dropped because of security issues with the authentication mechanism. 1956