PageRenderTime 57ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/cvs/man/cvs.1

https://bitbucket.org/freebsd/freebsd-head/
Unknown | 2212 lines | 2211 code | 1 blank | 0 comment | 0 complexity | 4dd2ce683c24d5bd9a8ddaa95b146ef3 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, LGPL-2.0, LGPL-2.1, BSD-2-Clause, 0BSD, JSON, AGPL-1.0, GPL-2.0
  1. \fBimport\fR.
  2. .\" $FreeBSD$
  3. .de Id
  4. .ds Rv \\$3
  5. .ds Dt \\$4
  6. ..
  7. .TH CVS 1 "\*(Dt"
  8. .\" Full space in nroff; half space in troff
  9. .de SP
  10. .if n .sp
  11. .if t .sp .5
  12. ..
  13. .\" quoted command
  14. .de `
  15. .RB ` "\|\\$1\|" '\\$2
  16. ..
  17. .SH "NAME"
  18. cvs \- Concurrent Versions System
  19. .SH "SYNOPSIS"
  20. .TP
  21. \fBcvs\fP [ \fIcvs_options\fP ]
  22. .I cvs_command
  23. [
  24. .I command_options
  25. ] [
  26. .I command_args
  27. ]
  28. .SH "NOTE"
  29. This manpage is a summary of some of the features of
  30. .B cvs
  31. but it may no longer be kept up-to-date.
  32. For more current and in-depth documentation, please consult the
  33. Cederqvist manual (via the
  34. .B info cvs
  35. command or otherwise,
  36. as described in the SEE ALSO section of this manpage).
  37. .SH "DESCRIPTION"
  38. .IX "revision control system" "\fLcvs\fR"
  39. .IX cvs "" "\fLcvs\fP \- concurrent versions system"
  40. .IX "concurrent versions system \- \fLcvs\fP"
  41. .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
  42. .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
  43. .IX revisions "cvs command" "" "\fLcvs\fP \- source control"
  44. CVS is a version control system, which allows you to keep old versions
  45. of files (usually source code), keep a log of who, when, and why
  46. changes occurred, etc., like RCS or SCCS. Unlike the simpler systems,
  47. CVS does not just operate on one file at a time or one directory at a
  48. time, but operates on hierarchical collections of directories
  49. consisting of version controlled files. CVS helps to manage releases
  50. and to control the concurrent editing of source files among multiple
  51. authors. CVS allows triggers to enable/log/control various
  52. operations and works well over a wide area network.
  53. .SP
  54. .B cvs
  55. keeps a single copy of the master sources.
  56. This copy is called the source ``repository''; it contains all the
  57. information to permit extracting previous software releases at any
  58. time based on either a symbolic revision tag, or a date in the past.
  59. .SH "ESSENTIAL COMMANDS"
  60. .B cvs
  61. provides a rich variety of commands (\fIcvs_command\fP in the
  62. Synopsis), each of which often has a wealth of options, to satisfy the
  63. many needs of source management in distributed environments. However,
  64. you don't have to master every detail to do useful work with
  65. .BR cvs ;
  66. in fact, five commands are sufficient to use (and contribute to)
  67. the source repository.
  68. .TP
  69. \fBcvs checkout\fP \fImodules\fP\|.\|.\|.
  70. A necessary preliminary for most \fBcvs\fP work: creates your private
  71. copy of the source for \fImodules\fP (named collections of source; you
  72. can also use a path relative to the source repository here). You can
  73. work with this copy without interfering with others' work. At least
  74. one subdirectory level is always created.
  75. .TP
  76. .B cvs update
  77. Execute this command from \fIwithin\fP your private source
  78. directory when you wish to update your copies of source files from
  79. changes that other developers have made to the source in the
  80. repository.
  81. .TP
  82. \fBcvs add\fP \fIfile\fP\|.\|.\|.
  83. Use this command to enroll new files in \fBcvs\fP records of your
  84. working directory. The files will be added to the repository the next
  85. time you run
  86. .` "cvs commit".
  87. Note:
  88. You should use the
  89. .` "cvs import"
  90. command to bootstrap new sources into the source repository.
  91. .` "cvs add"
  92. is only used for new files to an already checked-out module.
  93. .TP
  94. \fBcvs remove\fP \fIfile\fP\|.\|.\|.
  95. Use this command (after erasing any files listed) to declare that you
  96. wish to eliminate files from the repository. The removal does not
  97. affect others until you run
  98. .` "cvs commit".
  99. .TP
  100. \fBcvs commit\fP \fIfile\fP\|.\|.\|.
  101. Use this command when you wish to ``publish'' your changes to other
  102. developers, by incorporating them in the source repository.
  103. .SH "OPTIONS"
  104. The
  105. .B cvs
  106. command line can include
  107. .IR cvs_options ,
  108. which apply to the overall
  109. .B cvs
  110. program; a
  111. .IR cvs_command ,
  112. which specifies a particular action on the source repository; and
  113. .I command_options
  114. and
  115. .I command_arguments
  116. to fully specify what the
  117. .I cvs_command
  118. will do.
  119. .SP
  120. .I Warning:
  121. you must be careful of precisely where you place options relative to the
  122. .IR cvs_command .
  123. The same option can mean different things depending on whether it
  124. is in the
  125. .I cvs_options
  126. position (to the left of a
  127. .B cvs
  128. command) or in the
  129. .I command_options
  130. position (to the right of a
  131. .B cvs
  132. command).
  133. .SP
  134. There are only two situations where you may omit
  135. .IR cvs_command :
  136. .` "cvs \-H"
  137. or
  138. .` "cvs --help"
  139. elicits a list of available commands, and
  140. .` "cvs \-v"
  141. or
  142. .` "cvs --version"
  143. displays version information on \fBcvs\fP itself.
  144. .SP
  145. .SH "CVS OPTIONS"
  146. As of release 1.6,
  147. .B cvs
  148. supports
  149. .SM GNU
  150. style long options as well as short options. Only
  151. a few long options are currently supported, these are listed in
  152. brackets after the short options whose functions they duplicate.
  153. .SP
  154. Use these options to control the overall
  155. .B cvs
  156. program:
  157. .TP
  158. .B \-H [ --help ]
  159. Display usage information about the specified
  160. .I cvs_command
  161. (but do not actually execute the command). If you don't specify a
  162. command name,
  163. .` "cvs \-H"
  164. displays a summary of all the commands available.
  165. .TP
  166. .B \-Q
  167. Causes the command to be
  168. .I really
  169. quiet; the command will generate output only for serious problems.
  170. .TP
  171. .B \-q
  172. Causes the command to be somewhat quiet; informational messages, such
  173. as reports of recursion through subdirectories, are suppressed.
  174. .TP
  175. \fB\-b\fP \fIbindir\fP
  176. Use
  177. .I bindir
  178. as the directory where
  179. .SM RCS
  180. programs are located (CVS 1.9 and older).
  181. Overrides the setting of the
  182. .SM RCSBIN
  183. environment variable.
  184. This value should be specified as an absolute pathname.
  185. .TP
  186. \fB\-d\fP \fICVS_root_directory\fP
  187. Use
  188. .I CVS_root_directory
  189. as the root directory pathname of the master
  190. source repository.
  191. Overrides the setting of the
  192. .SM CVSROOT
  193. environment variable.
  194. This value should be specified as an absolute pathname.
  195. .TP
  196. \fB\-e\fP \fIeditor\fP
  197. Use
  198. .I editor
  199. to enter revision log information.
  200. Overrides the setting of the
  201. .SM CVSEDITOR\c
  202. ,
  203. .SM VISUAL\c
  204. , and
  205. .SM EDITOR
  206. environment variables.
  207. .TP
  208. .B \-f
  209. Do not read the
  210. .B cvs
  211. startup file (\fI~/.cvsrc\fP).
  212. .TP
  213. .B \-n
  214. Do not change any files. Attempt to execute the
  215. .IR cvs_command ,
  216. but only to issue reports; do not remove, update, or merge any
  217. existing files, or create any new files.
  218. .TP
  219. .B \-t
  220. Trace program execution; display messages showing the steps of
  221. .B cvs
  222. activity. Particularly useful with
  223. .B \-n
  224. to explore the potential impact of an unfamiliar command.
  225. .TP
  226. .B \-r
  227. Makes new working files read-only.
  228. Same effect as if the
  229. .SM CVSREAD
  230. environment variable is set.
  231. .TP
  232. .B \-R
  233. Turns on read-only repository mode. This allows one to check out from a
  234. read-only repository, such as within an anoncvs server, or from a CDROM
  235. repository.
  236. Same effect as if the
  237. .SM CVSREADONLYFS
  238. environment variable is set. Using
  239. .B \-R
  240. can also considerably speed up checkout's over NFS.
  241. .TP
  242. .B \-v [ --version ]
  243. Displays version and copyright information for
  244. .BR cvs .
  245. .TP
  246. .B \-w
  247. Makes new working files read-write (default).
  248. Overrides the setting of the
  249. .SM CVSREAD
  250. environment variable.
  251. .TP
  252. .B \-g
  253. Forces group-write perms on working files. This option is typically
  254. used when you have multiple users sharing a single checked out source
  255. tree, allowing them to operate their shells with a less dangerous umask.
  256. To use this feature, create a directory to hold the checked-out source
  257. tree, set it to a private group, and set up the directory such that
  258. files created under it inherit the group id of the directory. This occurs
  259. automatically with FreeBSD. With SysV you must typically set the SGID bit
  260. on the directory. The users who are to share the checked out tree must
  261. be placed in that group. Note that the sharing of a single checked-out
  262. source tree is very different from giving several users access to a common
  263. CVS repository. Access to a common CVS repository already maintains shared
  264. group-write perms and does not require this option.
  265. To use the option transparently, simply place the line 'cvs -g' in your
  266. ~/.cvsrc file. Doing this is not recommended unless you firewall all your
  267. source checkouts within a private group or within a private mode 0700
  268. directory.
  269. .TP
  270. .B \-x
  271. Encrypt all communication between the client and the server. As of
  272. this writing, this is only implemented when using a Kerberos
  273. connection.
  274. .TP
  275. \fB\-z\fP \fIcompression\-level\fP
  276. When transferring files across the network use
  277. .B gzip
  278. with compression level \fIcompression\-level\fP to compress and
  279. de-compress data as it is transferred. Requires the presence of
  280. the
  281. .SM GNU
  282. .B gzip
  283. program in the current search path at both ends of the link.
  284. .SH "USAGE"
  285. Except when requesting general help with
  286. .` "cvs \-H",
  287. you must specify a
  288. .I cvs_command
  289. to
  290. .B cvs
  291. to select a specific release control function to perform.
  292. Each
  293. .B cvs
  294. command accepts its own collection of options and arguments.
  295. However, many options are available across several commands.
  296. You can display a usage summary for each command by specifying the
  297. .B \-H
  298. option with the command.
  299. .SH "CVS STARTUP FILE"
  300. Normally, when CVS starts up, it reads the
  301. .I .cvsrc
  302. file from the home directory of the user reading it. This startup
  303. procedure can be turned off with the
  304. .B \-f
  305. flag.
  306. .SP
  307. The
  308. .I .cvsrc
  309. file lists CVS commands with a list of arguments, one command per
  310. line. For example, the following line in \fI.cvsrc\fP:
  311. .SP
  312. diff \-c
  313. .SP
  314. will mean that the
  315. .` "cvs diff"
  316. command will always be passed the \-c option in addition to any
  317. other options that are specified in the command line (in this case
  318. it will have the effect of producing context sensitive diffs for
  319. all executions of
  320. .` "cvs diff"
  321. ).
  322. .SP
  323. Global options are specified using the \fBcvs\fP keyword. For example,
  324. the following:
  325. .SP
  326. cvs \-q
  327. .SP
  328. will mean that all
  329. .` "cvs"
  330. commands will behave as thought he \-q global option had been supplied.
  331. .SH "CVS COMMAND SUMMARY"
  332. Here are brief descriptions of all the
  333. .B cvs
  334. commands:
  335. .TP
  336. .B add
  337. Add a new file or directory to the repository, pending a
  338. .` "cvs commit"
  339. on the same file.
  340. Can only be done from within sources created by a previous
  341. .` "cvs checkout"
  342. invocation.
  343. Use
  344. .` "cvs import"
  345. to place whole new hierarchies of sources under
  346. .B cvs
  347. control.
  348. (Does not directly affect repository; changes
  349. working directory.)
  350. .TP
  351. .B admin
  352. Execute
  353. control functions on the source repository. (Changes
  354. repository directly; uses working directory without changing it.)
  355. .TP
  356. .B checkout
  357. Make a working directory of source files for editing. (Creates or changes
  358. working directory.)
  359. .TP
  360. .B commit
  361. Apply to the source repository changes, additions, and deletions from your
  362. working directory. (Changes repository.)
  363. .TP
  364. .B diff
  365. Show differences between files in working directory and source
  366. repository, or between two revisions in source repository.
  367. (Does not change either repository or working directory.)
  368. .TP
  369. .B export
  370. Prepare copies of a set of source files for shipment off site.
  371. Differs from
  372. .` "cvs checkout"
  373. in that no
  374. .B cvs
  375. administrative directories are created (and therefore
  376. .` "cvs commit"
  377. cannot be executed from a directory prepared with
  378. .` "cvs export"),
  379. and a symbolic tag must be specified.
  380. (Does not change repository; creates directory similar to working
  381. directories).
  382. .TP
  383. .B history
  384. Show reports on
  385. .B cvs
  386. commands that you or others have executed on a particular file or
  387. directory in the source repository. (Does not change repository or
  388. working directory.) History logs are kept only if enabled by creation
  389. of the
  390. .` "$CVSROOT/CVSROOT/history"
  391. file; see
  392. .BR cvs ( 5 ).
  393. .TP
  394. .B import
  395. Incorporate a set of updates from off-site into the source repository,
  396. as a ``vendor branch''. (Changes repository.)
  397. .TP
  398. .B init
  399. Initialize a repository by adding the CVSROOT subdirectory and some default
  400. control files. You must use this command or initialize the repository in
  401. some other way before you can use it.
  402. .TP
  403. .B log
  404. Display
  405. log information.
  406. (Does not change repository or working directory.)
  407. .TP
  408. .B rdiff
  409. Prepare a collection of diffs as a patch file between two releases in
  410. the repository. (Does not change repository or working directory.)
  411. .TP
  412. .B release
  413. Cancel a
  414. .` "cvs checkout",
  415. abandoning any changes.
  416. (Can delete working directory; no effect on repository.)
  417. .TP
  418. .B remove
  419. Remove files from the source repository, pending a
  420. .` "cvs commit"
  421. on the same files. (Does not directly affect repository;
  422. changes working directory.)
  423. .TP
  424. .B rtag
  425. Explicitly specify a symbolic tag for particular revisions of files in the
  426. source repository. See also
  427. .` "cvs tag".
  428. (Changes repository directly; does not require or affect
  429. working directory.)
  430. .TP
  431. .B status
  432. Show current status of files: latest version, version in working
  433. directory, whether working version has been edited and, optionally,
  434. symbolic tags in the
  435. .SM RCS
  436. file. (Does not change
  437. repository or working directory.)
  438. .TP
  439. .B tag
  440. Specify a symbolic tag for files in the repository. By default, tags
  441. the revisions
  442. that were last synchronized with your working directory. (Changes
  443. repository directly; uses working directory without changing it.)
  444. .TP
  445. .B update
  446. Bring your working directory up to date with changes from the
  447. repository. Merges are performed automatically when possible; a
  448. warning is issued if manual resolution is required for conflicting
  449. changes. (Changes working directory; does not change repository.)
  450. .SH "COMMON COMMAND OPTIONS"
  451. This section describes the
  452. .I command_options
  453. that are available across several
  454. .B cvs
  455. commands. Not all commands support all of these options; each option
  456. is only supported for commands where it makes sense. However, when
  457. a command has one of these options you can count on the same meaning
  458. for the option as in other commands. (Other command
  459. options, which are listed with the individual commands, may have
  460. different meanings from one
  461. .B cvs
  462. command to another.)
  463. .I "Warning:"
  464. the
  465. .B history
  466. command is an exception;
  467. it supports many options that conflict
  468. even with these standard options.
  469. .TP
  470. \fB\-D\fP \fIdate_spec\fP
  471. Use the most recent revision no later than \fIdate_spec\fP (a single
  472. argument, date description specifying a date in the
  473. past). A wide variety of date formats are supported, in particular
  474. ISO ("1972-09-24 20:05") or Internet ("24 Sep 1972 20:05").
  475. The \fIdate_spec\fP is interpreted as being in the local timezone, unless a
  476. specific timezone is specified.
  477. The specification is ``sticky'' when you use it to make a
  478. private copy of a source file; that is, when you get a working file
  479. using \fB\-D\fP, \fBcvs\fP records the date you
  480. specified, so that further updates in the same directory will use the
  481. same date (unless you explicitly override it; see the description of
  482. the \fBupdate\fP command).
  483. .B \-D
  484. is available with the
  485. .BR checkout ", " diff ", " history ", " export ", "
  486. .BR rdiff ", " rtag ", and "
  487. .B update
  488. commands.
  489. Examples of valid date specifications include:
  490. .in +1i
  491. .ft B
  492. .nf
  493. 1 month ago
  494. 2 hours ago
  495. 400000 seconds ago
  496. last year
  497. last Monday
  498. yesterday
  499. a fortnight ago
  500. 3/31/92 10:00:07 PST
  501. January 23, 1987 10:05pm
  502. 22:00 GMT
  503. .fi
  504. .ft P
  505. .in -1i
  506. .TP
  507. .B \-f
  508. When you specify a particular date or tag to \fBcvs\fP commands, they
  509. normally ignore files that do not contain the tag (or did not exist on
  510. the date) that you specified. Use the \fB\-f\fP option if you want
  511. files retrieved even when there is no match for the tag or date. (The
  512. most recent version is used in this situation.)
  513. .B \-f
  514. is available with these commands:
  515. .BR checkout ", " export ", "
  516. .BR rdiff ", " rtag ", and " update .
  517. .TP
  518. \fB\-k\fP \fIkflag\fP
  519. Alter the default
  520. processing of keywords.
  521. The \fB\-k\fP option is available with the
  522. .BR add ", " checkout ", " diff ", " rdiff ", " export ", and "
  523. BR update
  524. commands. Your \fIkflag\fP specification is ``sticky'' when you use
  525. it to create a private copy of a source file; that is, when you use
  526. this option with the \fBcheckout\fP or \fBupdate\fP commands,
  527. \fBcvs\fP associates your selected \fIkflag\fP with the file, and
  528. continues to use it with future \fBupdate\fP commands on the same file
  529. until you specify otherwise.
  530. .SP
  531. Some of the more useful \fIkflag\fPs are \-ko and \-kb (for binary files),
  532. and \-kv which is useful for an
  533. .B export
  534. where you wish to retain keyword information after an
  535. .B import
  536. at some other site.
  537. .TP
  538. .B \-l
  539. Local; run only in current working directory, rather than recurring through
  540. subdirectories. Available with the following commands:
  541. .BR checkout ", " commit ", " diff ", "
  542. .BR export ", " remove ", " rdiff ", " rtag ", "
  543. .BR status ", " tag ", and " update .
  544. .TP
  545. .B \-n
  546. Do
  547. .I not
  548. run any
  549. .BR checkout / commit / tag / update
  550. program. (A program can be specified to run on each of these
  551. activities, in the modules database; this option bypasses it.)
  552. Available with the
  553. .BR checkout ", " export ", and "
  554. .B rtag
  555. commands.
  556. .I Warning:
  557. this is not the same
  558. as the overall
  559. .` "cvs \-n"
  560. option, which you can specify to the
  561. .I left
  562. of a
  563. .B cvs
  564. command!
  565. .TP
  566. .B \-P
  567. Prune (remove) directories that are empty after being updated, on
  568. .BR checkout ", or " update .
  569. Normally, an empty directory (one that is void of revision-controlled
  570. files) is left alone.
  571. Specifying
  572. .B \-P
  573. will cause these directories to be silently removed from your checked-out
  574. sources.
  575. This does not remove the directory from the repository, only from your
  576. checked out copy.
  577. Note that this option is implied by the
  578. .B \-r
  579. or
  580. .B \-D
  581. options of
  582. .BR checkout " and " export .
  583. .TP
  584. .B \-T
  585. Create/Update CVS/Template by copying it from the (local) repository.
  586. This option is useful for developers maintaining a local cvs repository
  587. but committing to a remote repository. By maintaining CVS/Template the
  588. remote commits will still be able to bring up the proper template in the
  589. commit editor session.
  590. Available with the
  591. .BR checkout " and " update
  592. commands.
  593. .TP
  594. .B \-p
  595. Pipe the files retrieved from the repository to standard output,
  596. rather than writing them in the current directory. Available with the
  597. .BR checkout " and " update
  598. commands.
  599. .TP
  600. \fB\-r\fP \fItag\fP
  601. Use the revision specified by the
  602. .I tag
  603. argument instead of the default ``head'' revision. As well as
  604. arbitrary tags defined with the \fBtag\fP or \fBrtag\fP command, two
  605. special tags are always available:
  606. .` "HEAD"
  607. refers to the most
  608. recent version available in the repository, and
  609. .` "BASE"
  610. refers to the revision you last checked out into the current working
  611. directory.
  612. .SP
  613. The \fItag\fP specification is ``sticky'' when you use
  614. this option with
  615. .` "cvs checkout"
  616. or
  617. .` "cvs update"
  618. to
  619. make your own copy of a file: \fBcvs\fP remembers the \fItag\fP and
  620. continues to use it on future \fBupdate\fP commands, until you specify
  621. otherwise.
  622. .I tag
  623. can be either a symbolic or numeric tag.
  624. When a command expects a specific revision,
  625. the name of a branch is interpreted as the most recent
  626. revision on that branch.
  627. Specifying the
  628. .B \-q
  629. global option along with the
  630. .B \-r
  631. command option is often useful, to suppress the warning messages when the
  632. .SM RCS
  633. file does not contain the specified tag.
  634. .B \-r
  635. is available with the
  636. .BR annotate ", " checkout ", "
  637. .BR commit ", " diff ", " history ", " export ", " rdiff ", "
  638. .BR rtag ", and " update
  639. commands.
  640. .I Warning:
  641. this is not the same
  642. as the overall
  643. .` "cvs \-r"
  644. option, which you can specify to the
  645. .I left
  646. of a
  647. .B cvs
  648. command!
  649. .SH "CVS COMMANDS"
  650. Here (finally) are details on all the
  651. .B cvs
  652. commands and the options each accepts. The summary lines at the top
  653. of each command's description highlight three kinds of things:
  654. .TP 1i
  655. \ \ \ \ Command Options and Arguments
  656. Special options are described in detail below; common command options
  657. may appear only in the summary line.
  658. .TP 1i
  659. \ \ \ \ Working Directory, or Repository?
  660. Some \fBcvs\fP commands require a working directory to operate; some
  661. require a repository. Also, some commands \fIchange\fP the
  662. repository, some change the working directory, and some change
  663. nothing.
  664. .TP 1i
  665. \ \ \ \ Synonyms
  666. Many commands have synonyms, which you may find easier to
  667. remember (or type) than the principal name.
  668. .PP
  669. .TP
  670. \fBadd\fP [\fB\-k\fP \fIkflag\fP] [\fB\-m '\fP\fImessage\fP\fB'\fP] \fIfiles.\|.\|.\fP
  671. .I Requires:
  672. repository, working directory.
  673. .br
  674. .I Changes:
  675. working directory.
  676. .br
  677. .I Synonym:
  678. .B new
  679. .br
  680. Use the
  681. .B add
  682. command to create a new file or directory in the
  683. source repository.
  684. The files or directories specified with
  685. .B add
  686. must already exist in the current directory (which must have been created
  687. with the
  688. .B checkout
  689. command).
  690. To add a whole new directory hierarchy to the source repository
  691. (for example, files received from a third-party vendor), use the
  692. .` "cvs import"
  693. command instead.
  694. .SP
  695. If the argument to
  696. .` "cvs add"
  697. refers to an immediate sub-directory, the directory is
  698. created at the correct place in the
  699. source repository, and the necessary
  700. .B cvs
  701. administration files are created in your working directory.
  702. If the directory already exists in the source repository,
  703. .` "cvs add"
  704. still creates the administration files in your version of the directory.
  705. This allows you to use
  706. .` "cvs add"
  707. to add a particular directory to your private sources even if
  708. someone else created that directory after your
  709. .B checkout
  710. of the sources. You can do the following:
  711. .SP
  712. .in +1i
  713. .ft B
  714. .nf
  715. example% mkdir new_directory
  716. example% cvs add new_directory
  717. example% cvs update new_directory
  718. .fi
  719. .ft P
  720. .in -1i
  721. .SP
  722. An alternate approach using
  723. .` "cvs update"
  724. might be:
  725. .SP
  726. .in +1i
  727. .ft B
  728. .nf
  729. example% cvs update -d new_directory
  730. .fi
  731. .ft P
  732. .in -1i
  733. .SP
  734. (To add \fIany available\fP new directories to your working directory, it's
  735. probably simpler to use
  736. .` "cvs checkout"
  737. or
  738. .` "cvs update -d".)
  739. .SP
  740. The added files are not placed in the
  741. source repository until you use
  742. .` "cvs commit"
  743. to make the change permanent.
  744. Doing a
  745. .` "cvs add"
  746. on a file that was removed with the
  747. .` "cvs remove"
  748. command will resurrect the file, if no
  749. .` "cvs commit"
  750. command intervened.
  751. .SP
  752. You will have the opportunity to specify a logging message, as usual,
  753. when you use
  754. .` "cvs commit"
  755. to make the new file permanent. If you'd like to have another
  756. logging message associated with just
  757. .I creation
  758. of the file (for example, to describe the file's purpose), you can
  759. specify it with the
  760. .` "\-m \fImessage\fP"
  761. option to the
  762. .B add
  763. command.
  764. .SP
  765. The
  766. .` "-k kflag"
  767. option specifies the default way that this
  768. file will be checked out.
  769. The
  770. .` "kflag"
  771. argument is stored in the
  772. .SM RCS
  773. file and can be changed with
  774. .` "cvs admin".
  775. Specifying
  776. .` "-ko"
  777. is useful for checking in binaries that
  778. shouldn't have
  779. keywords expanded.
  780. .TP
  781. \fBadmin\fP [\fIrcs-options\fP] \fIfiles.\|.\|.\fP
  782. .I Requires:
  783. repository, working directory.
  784. .br
  785. .I Changes:
  786. repository.
  787. .br
  788. .I Synonym:
  789. .B rcs
  790. .br
  791. This is the
  792. .B cvs
  793. interface to assorted administrative
  794. facilities, similar to
  795. .BR rcs ( 1 ).
  796. This command works recursively, so extreme care should be
  797. used.
  798. .TP
  799. \fBcheckout\fP [\fBoptions\fP] \fImodules\fP.\|.\|.
  800. .I Requires:
  801. repository.
  802. .br
  803. .I Changes:
  804. working directory.
  805. .br
  806. .I Synonyms:
  807. .BR co ", " get
  808. .br
  809. Make a working directory containing copies of the source files specified by
  810. .IR modules .
  811. You must execute
  812. .` "cvs checkout"
  813. before using most of the other
  814. .B cvs
  815. commands, since most of them operate on your working directory.
  816. .SP
  817. \fImodules\fP are either symbolic names (themselves defined as the
  818. module
  819. .` "modules"
  820. in the source repository; see
  821. .BR cvs ( 5 ))
  822. for some collection of source directories and files, or paths to
  823. directories or files in the repository.
  824. .SP
  825. Depending on the
  826. .I modules
  827. you specify,
  828. .B checkout
  829. may recursively create directories and populate them with the appropriate
  830. source files.
  831. You can then edit these source files at any time (regardless of whether
  832. other software developers are editing their own copies of the sources);
  833. update them to include new changes applied by others to the source
  834. repository; or commit your work as a permanent change to the
  835. repository.
  836. .SP
  837. Note that
  838. .B checkout
  839. is used to create directories.
  840. The top-level directory created is always added to the directory
  841. where
  842. .B checkout
  843. is invoked, and usually has the same name as the specified
  844. .IR module .
  845. In the case of a
  846. .I module
  847. alias, the created sub-directory may have a different name, but you can be
  848. sure that it will be a sub-directory, and that
  849. .B checkout
  850. will show the relative path leading to each file as it is extracted into
  851. your private work area (unless you specify the
  852. .B \-Q
  853. global option).
  854. .SP
  855. Running
  856. .` "cvs checkout"
  857. on a directory that was already built by a prior
  858. .B checkout
  859. is also permitted, and
  860. has the same effect as specifying the
  861. .B \-d
  862. option to the
  863. .B update
  864. command described below.
  865. .SP
  866. The
  867. .I options
  868. permitted with
  869. .` "cvs checkout"
  870. include the standard command options
  871. .BR \-P ", " \-f ", "
  872. .BI \-k " kflag"
  873. \&,
  874. .BR \-l ", " \-n ", " \-p ", "
  875. .BR \-r
  876. .IR tag ", and"
  877. .BI \-D " date"\c
  878. \&.
  879. .SP
  880. In addition to those, you can use these special command options
  881. with
  882. .BR checkout :
  883. .SP
  884. Use the
  885. .B \-A
  886. option to reset any sticky tags, dates, or
  887. .B \-k
  888. options. (If you get a working file using one of the
  889. \fB\-r\fP, \fB\-D\fP, or \fB\-k\fP options, \fBcvs\fP remembers the
  890. corresponding tag, date, or \fIkflag\fP and continues using it on
  891. future updates; use the \fB\-A\fP option to make \fBcvs\fP forget these
  892. specifications, and retrieve the ``head'' version of the file).
  893. Does not reset sticky
  894. .B \-k
  895. options on modified files.
  896. .SP
  897. The
  898. .BI \-j " branch"
  899. option merges the changes made between the
  900. resulting revision and the revision that it is based on (e.g., if
  901. the tag refers to a branch,
  902. .B cvs
  903. will merge all changes made in that branch into your working file).
  904. .SP
  905. With two \fB-j\fP options,
  906. .B cvs
  907. will merge in the changes between the two respective revisions.
  908. This can be used to ``remove'' a certain delta from your working file.
  909. .SP
  910. In addition, each \fB-j\fP option can contain on optional date
  911. specification which, when used with branches, can limit the chosen
  912. revision to one within a specific date.
  913. An optional date is specified by adding a colon (:) to the tag.
  914. An example might be what
  915. .` "cvs import"
  916. tells you to do when you have
  917. just imported sources that have conflicts with local changes:
  918. .SP
  919. .in +1i
  920. .ft B
  921. .nf
  922. example% cvs checkout -jTAG:yesterday -jTAG module
  923. .fi
  924. .ft P
  925. .in -1i
  926. .SP
  927. Use the
  928. .B \-N
  929. option with
  930. .` "\-d \fIdir\fP"
  931. to avoid shortening module paths in your working directory. (Normally, \fBcvs\fP shortens paths as much as possible when you specify an explicit target directory.)
  932. .SP
  933. Use the
  934. .B \-c
  935. option to copy the module file, sorted, to the standard output,
  936. instead of creating or modifying any files or directories in your
  937. working directory.
  938. .SP
  939. Use the
  940. .BI \-d " dir"
  941. option to create a directory called
  942. .I dir
  943. for the working files, instead of using the module name. Unless you
  944. also use \fB\-N\fP, the paths created under \fIdir\fP will be as short
  945. as possible.
  946. .SP
  947. Use the
  948. .B \-s
  949. option to display per-module status information stored with
  950. the
  951. .B \-s
  952. option within the modules file.
  953. .TP
  954. \fBcommit\fP [\fB\-lR\fP] [\fB\-m\fP '\fIlog_message\fP' | \fB\-F\fP \fIfile\fP] [\fB\-r\fP \fIrevision\fP] [\fIfiles.\|.\|.\fP]
  955. .I Requires:
  956. working directory, repository.
  957. .br
  958. .I Changes:
  959. repository.
  960. .br
  961. .I Synonym:
  962. .B ci
  963. .br
  964. Use
  965. .` "cvs commit"
  966. when you want to incorporate changes from your working source
  967. files into the general source repository.
  968. .SP
  969. If you don't specify particular \fIfiles\fP to commit, all
  970. of the files in your working current directory are examined.
  971. .B commit
  972. is careful to change in the repository only those files that you have
  973. really changed. By default (or if you explicitly specify the
  974. .B \-R
  975. option), files
  976. in subdirectories are also examined and committed if they have
  977. changed; you can use the
  978. .B \-l
  979. option to limit
  980. .B commit
  981. to the current directory only.
  982. Sometimes you may want to force a file to be committed even though it
  983. is unchanged; this is achieved with the
  984. .B \-f
  985. flag, which also has the effect of disabling recursion (you can turn
  986. it back on with
  987. .B \-R
  988. of course).
  989. .SP
  990. .B commit
  991. verifies that the selected files are up to date with the current revisions
  992. in the source repository; it will notify you, and exit without
  993. committing, if any of the specified files must be made current first
  994. with
  995. .` "cvs update".
  996. .B commit
  997. does not call the
  998. .B update
  999. command for you, but rather leaves that for you to do when
  1000. the time is right.
  1001. .SP
  1002. When all is well, an editor is invoked to allow you to enter a log
  1003. message that will be written to one or more logging programs and placed in the
  1004. source repository file.
  1005. You can instead specify the log message on the command line with the
  1006. .B \-m
  1007. option, thus suppressing the editor invocation, or use the
  1008. .B \-F
  1009. option to specify that the argument \fIfile\fP contains the log message.
  1010. .SP
  1011. The
  1012. .B \-r
  1013. option can be used to commit to a particular symbolic or numeric revision.
  1014. For example, to bring all your files up to the
  1015. revision ``3.0'' (including those that haven't changed), you might do:
  1016. .SP
  1017. .in +1i
  1018. .ft B
  1019. .nf
  1020. example% cvs commit -r3.0
  1021. .fi
  1022. .ft P
  1023. .in -1i
  1024. .SP
  1025. .B cvs
  1026. will only allow you to commit to a revision that is on the main trunk (a
  1027. revision with a single dot).
  1028. However, you can also commit to a branch revision (one that has an even
  1029. number of dots) with the
  1030. .B \-r
  1031. option.
  1032. To create a branch revision, one typically use the
  1033. .B \-b
  1034. option of the
  1035. .BR rtag " or " tag
  1036. commands.
  1037. Then, either
  1038. .BR checkout " or " update
  1039. can be used to base your sources on the newly created branch.
  1040. From that point on, all
  1041. .B commit
  1042. changes made within these working sources will be automatically added
  1043. to a branch revision, thereby not perturbing main-line development in any
  1044. way.
  1045. For example, if you had to create a patch to the 1.2 version of the
  1046. product, even though the 2.0 version is already under development, you
  1047. might do:
  1048. .SP
  1049. .in +1i
  1050. .ft B
  1051. .nf
  1052. example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module
  1053. example% cvs checkout -rFCS1_2_Patch product_module
  1054. example% cd product_module
  1055. [[ hack away ]]
  1056. example% cvs commit
  1057. .fi
  1058. .ft P
  1059. .in -1i
  1060. .SP
  1061. Say you have been working on some extremely experimental software, based on
  1062. whatever revision you happened to checkout last week.
  1063. If others in your group would like to work on this software with you, but
  1064. without disturbing main-line development, you could commit your change to a
  1065. new branch.
  1066. Others can then checkout your experimental stuff and utilize the full
  1067. benefit of
  1068. .B cvs
  1069. conflict resolution.
  1070. The scenario might look like:
  1071. .SP
  1072. .in +1i
  1073. .ft B
  1074. .nf
  1075. example% cvs tag -b EXPR1
  1076. example% cvs update -rEXPR1
  1077. [[ hack away ]]
  1078. example% cvs commit
  1079. .fi
  1080. .ft P
  1081. .in -1i
  1082. .SP
  1083. Others would simply do
  1084. .` "cvs checkout -rEXPR1 whatever_module"
  1085. to work with you on the experimental change.
  1086. .TP
  1087. \fBdiff\fP [\fB\-kl\fP] [\fIformat_options\fP] [[\fB\-r\fP \fIrev1\fP | \fB\-D\fP \fIdate1\fP | \fB\-j\fP \fIrev1:date1\fP] [\fB\-r\fP \fIrev2\fP | \fB\-D\fP \fIdate2\fP | \fB\-j\fP \fIrev2:date2\fP]] [\fIfiles.\|.\|.\fP]
  1088. .I Requires:
  1089. working directory, repository.
  1090. .br
  1091. .I Changes:
  1092. nothing.
  1093. .br
  1094. You can compare your working files with revisions in the source
  1095. repository, with the
  1096. .` "cvs diff"
  1097. command. If you don't specify a particular revision, your files
  1098. are compared with the revisions they were based on. You can also use
  1099. the standard
  1100. .B cvs
  1101. command option
  1102. .B \-r
  1103. to specify a particular revision to compare your files with. Finally,
  1104. if you use
  1105. .B \-r
  1106. twice, you can see differences between two revisions in the
  1107. repository.
  1108. You can also specify
  1109. .B \-D
  1110. options to diff against a revision (on the head branch) in the past, and
  1111. you can also specify
  1112. .B \-j
  1113. options to diff against a revision relative to a branch tag in the past.
  1114. The
  1115. .B \-r
  1116. and
  1117. .B \-D
  1118. and
  1119. .B \-j
  1120. options can be mixed together with at most two options ever specified.
  1121. .SP
  1122. See
  1123. .` "cvs --help diff"
  1124. for a list of supported
  1125. .IR format_options .
  1126. .SP
  1127. If you don't specify any files,
  1128. .B diff
  1129. will display differences for all those files in the current directory
  1130. (and its subdirectories, unless you use the standard option
  1131. .BR \-l )
  1132. that
  1133. differ from the corresponding revision in the source repository
  1134. (i.e. files that
  1135. .I you
  1136. have changed), or that differ from the revision specified.
  1137. .TP
  1138. \fBexport\fP [\-\fBf\|lNnQq\fP] \fB\-r\fP \fIrev\fP\||\|\fB\-D\fP \fIdate\fP [\fB\-d\fP \fIdir\fP] [\fB\-k\fP \fIkflag\fP] \fImodule\fP.\|.\|.
  1139. .I Requires:
  1140. repository.
  1141. .br
  1142. .I Changes:
  1143. current directory.
  1144. .br
  1145. This command is a variant of
  1146. .` "cvs checkout";
  1147. use it when you want a copy of the source for \fImodule\fP
  1148. without the \fBcvs\fP administrative directories. For example, you
  1149. might use
  1150. .` "cvs export"
  1151. to prepare source for shipment
  1152. off-site. This command \fIrequires\fP that you specify a date or tag
  1153. (with \fB\-D\fP or \fB\-r\fP), so that you can count on reproducing
  1154. the source you ship to others.
  1155. .SP
  1156. The only non-standard options are
  1157. .` "\-d \fIdir\fP"
  1158. (write the
  1159. source into directory \fIdir\fP) and
  1160. .` "\-N"
  1161. (don't shorten
  1162. module paths).
  1163. These have the same meanings as the same options in
  1164. .` "cvs checkout".
  1165. .SP
  1166. The
  1167. .B \-kv
  1168. option is useful when
  1169. .B export
  1170. is used.
  1171. This causes any
  1172. keywords to be expanded such that an
  1173. .B import
  1174. done at some other site will not lose the keyword revision information.
  1175. Other \fIkflag\fPs may be used with
  1176. .` "cvs export"
  1177. and are described in
  1178. .BR co ( 1 ).
  1179. .TP
  1180. \fBhistory\fP [\fB\-\fP\fIreport\fP] [\fB\-\fP\fIflags\fP] [\fB\-\fP\fIoptions args\fP] [\fIfiles\fP.\|.\|.]
  1181. .I Requires:
  1182. the file
  1183. .` "$CVSROOT/CVSROOT/history"
  1184. .br
  1185. .I Changes:
  1186. nothing.
  1187. .br
  1188. \fBcvs\fP keeps a history file that tracks each use of the
  1189. \fBcheckout\fP, \fBcommit\fP, \fBrtag\fP, \fBupdate\fP, and \fBrelease\fP
  1190. commands. You can use
  1191. .` "cvs history"
  1192. to display this
  1193. information in various formats.
  1194. .SP
  1195. .I Warning:
  1196. .` "cvs history"
  1197. uses
  1198. .` "\-f",
  1199. .` "\-l",
  1200. .` "\-n",
  1201. and
  1202. .` "\-p"
  1203. in ways that conflict with the
  1204. descriptions in
  1205. .SM
  1206. COMMON COMMAND OPTIONS\c
  1207. \&.
  1208. .SP
  1209. Several options (shown above as \fB\-\fP\fIreport\fP) control what
  1210. kind of report is generated:
  1211. .TP 1i
  1212. .B \ \ \ \ \ \ \-c
  1213. Report on each time \fBcommit\fP was used (i.e., each time the
  1214. repository was modified).
  1215. .TP 1i
  1216. \fB\ \ \ \ \ \ \-m\fP \fImodule\fP
  1217. Report on a particular \fImodule\fP. (You can meaningfully use
  1218. \fB\-m\fP more than once on the command line.)
  1219. .TP 1i
  1220. .B \ \ \ \ \ \ \-o
  1221. Report on checked-out modules.
  1222. .TP 1i
  1223. .B \ \ \ \ \ \ \-T
  1224. Report on all tags.
  1225. .TP 1i
  1226. \fB\ \ \ \ \ \ \-x\fP \fItype\fP
  1227. Extract a particular set of record types \fIX\fP from the \fBcvs\fP
  1228. history. The types are indicated by single letters, which you may
  1229. specify in combination.
  1230. Certain commands have a single record type: \fBcheckout\fP (type `O'),
  1231. \fBrelease\fP (type `F'), and \fBrtag\fP (type `T'). One of four
  1232. record types may result from an \fBupdate\fP: `W', when the working copy
  1233. of a file is deleted during update (because it was gone from the
  1234. repository); `U', when a working file was copied from the
  1235. repository; `G', when a merge was necessary and it succeeded; and 'C',
  1236. when a merge was necessary but collisions were detected (requiring
  1237. manual merging). Finally, one of three record types results from
  1238. \fBcommit\fP: `M', when a file was modified; `A', when a file is first
  1239. added; and `R', when a file is removed.
  1240. .TP 1i
  1241. .B \ \ \ \ \ \ \-e
  1242. Everything (all record types); equivalent to specifying
  1243. .` "\-xMACFROGWUT".
  1244. .TP 1i
  1245. \fB\ \ \ \ \ \ \-z\fP \fIzone\fP
  1246. Use time zone
  1247. .I zone
  1248. when outputting history records.
  1249. The zone name
  1250. .B LT
  1251. stands for local time;
  1252. numeric offsets stand for hours and minutes ahead of UTC.
  1253. For example,
  1254. .B +0530
  1255. stands for 5 hours and 30 minutes ahead of (i.e. east of) UTC.
  1256. .PP
  1257. .RS .5i
  1258. The options shown as \fB\-\fP\fIflags\fP constrain the report without
  1259. requiring option arguments:
  1260. .RE
  1261. .TP 1i
  1262. .B \ \ \ \ \ \ \-a
  1263. Show data for all users (the default is to show data only for the user
  1264. executing
  1265. .` "cvs history").
  1266. .TP 1i
  1267. .B \ \ \ \ \ \ \-l
  1268. Show last modification only.
  1269. .TP 1i
  1270. .B \ \ \ \ \ \ \-w
  1271. Show only the records for modifications done from the same working
  1272. directory where
  1273. .` "cvs history"
  1274. is executing.
  1275. .PP
  1276. .RS .5i
  1277. The options shown as \fB\-\fP\fIoptions args\fP constrain the report
  1278. based on an argument:
  1279. .RE
  1280. .TP 1i
  1281. \fB\ \ \ \ \ \ \-b\fP \fIstr\fP
  1282. Show data back to a record containing the string \fIstr\fP in either
  1283. the module name, the file name, or the repository path.
  1284. .TP 1i
  1285. \fB\ \ \ \ \ \ \-D\fP \fIdate\fP
  1286. Show data since \fIdate\fP.
  1287. .TP 1i
  1288. \fB\ \ \ \ \ \ \-p\fP \fIrepository\fP
  1289. Show data for a particular source repository (you can specify several
  1290. \fB\-p\fP options on the same command line).
  1291. .TP 1i
  1292. \fB\ \ \ \ \ \ \-r\fP \fIrev\fP
  1293. Show records referring to revisions since the revision or tag
  1294. named \fIrev\fP appears in individual RCS files.
  1295. Each
  1296. .SM RCS
  1297. file is searched for the revision or tag.
  1298. .TP 1i
  1299. \fB\ \ \ \ \ \ \-t\fP \fItag\fP
  1300. Show records since tag \fItag\fP was last added to the history file.
  1301. This differs from the \fB-r\fP flag above in that it reads
  1302. only the history file, not the
  1303. .SM RCS
  1304. files, and is much faster.
  1305. .TP 1i
  1306. \fB\ \ \ \ \ \ \-u\fP \fIname\fP
  1307. Show records for user \fIname\fP.
  1308. .PP
  1309. .TP
  1310. \fBimport\fP [\fB\-\fP\fIoptions\fP] \fIrepository vendortag releasetag\fP.\|.\|.
  1311. .I Requires:
  1312. Repository, source distribution directory.
  1313. .br
  1314. .I Changes:
  1315. repository.
  1316. .br
  1317. Use
  1318. .` "cvs import"
  1319. to incorporate an entire source
  1320. distribution from an outside source (e.g., a source vendor) into your
  1321. source repository directory. You can use this command both for
  1322. initial creation of a repository, and for wholesale updates to the
  1323. module form the outside source.
  1324. .SP
  1325. The \fIrepository\fP argument gives a directory name (or a path to a
  1326. directory) under the CVS root directory for repositories; if the
  1327. directory did not exist, \fBimport\fP creates it.
  1328. .SP
  1329. When you use \fBimport\fP for updates to source that has been modified in your
  1330. source repository (since a prior \fBimport\fP), it
  1331. will notify you of any files that conflict in the two branches of
  1332. development; use
  1333. .` "cvs checkout -j"
  1334. to reconcile the differences, as \fBimport\fP instructs you to do.
  1335. .SP
  1336. By default, certain file names are ignored during
  1337. .` "cvs import":
  1338. names associated with
  1339. .SM CVS
  1340. administration, or with other common source control systems; common
  1341. names for patch files, object files, archive files, and editor backup
  1342. files; and other names that are usually artifacts of assorted utilities.
  1343. For an up to date list of ignored file names, see the Cederqvist manual (as
  1344. described in the SEE ALSO section of this manpage).
  1345. .SP
  1346. The outside source is saved in a first-level
  1347. branch, by default
  1348. .` "1.1.1".
  1349. Updates are leaves of this
  1350. branch; for example, files from the first imported collection of
  1351. source will be revision
  1352. .` "1.1.1.1",
  1353. then files from the first
  1354. imported update will be revision
  1355. .` "1.1.1.2",
  1356. and so on.
  1357. .SP
  1358. At least three arguments are required. \fIrepository\fP is needed to
  1359. identify the collection of source. \fIvendortag\fP is a tag for the
  1360. entire branch (e.g., for
  1361. .` "1.1.1").
  1362. You must also specify at
  1363. least one \fIreleasetag\fR to uniquely identify the files at
  1364. the leaves created each time you execute
  1365. .` "cvs import".
  1366. The
  1367. \fIreleasetag\fR should be new, not previously existing in the
  1368. repository file, and uniquely identify the imported release.
  1369. .SP
  1370. One of the standard
  1371. .B cvs
  1372. command options is available: \fB\-m\fP
  1373. \fImessage\fP. If you do not specify a logging message with
  1374. \fB\-m\fP, your editor is invoked (as with \fBcommit\fP) to allow you
  1375. to enter one.
  1376. .SP
  1377. There are three additional special options.
  1378. .SP
  1379. Use
  1380. .` "\-d"
  1381. to specify that each file's time of last modification should be used
  1382. for the checkin date and time.
  1383. .SP
  1384. Use
  1385. .` "\-b \fIbranch\fP"
  1386. to specify a first-level branch other
  1387. than
  1388. .` "1.1.1".
  1389. .SP
  1390. Use
  1391. .` "\-I \fIname\fP"
  1392. to specify file names that should be
  1393. ignored during \fBimport\fP. You can use this option repeatedly.
  1394. To avoid ignoring any files at all (even those ignored by default),
  1395. specify
  1396. .` "\-I !".
  1397. .TP
  1398. \fBlog\fP [\fB\-l\fP] \fIrlog-options [files\fP\|.\|.\|.]
  1399. .I Requires:
  1400. repository, working directory.
  1401. .br
  1402. .I Changes:
  1403. nothing.
  1404. .br
  1405. .I Synonym:
  1406. .B rlog
  1407. .br
  1408. Display log information for \fIfiles\fP.
  1409. Among the more useful options are \fB\-h\fP
  1410. to display only the header (including tag definitions, but omitting
  1411. most of the full log); \fB\-r\fP to select logs on particular
  1412. revisions or ranges of revisions; and \fB\-d\fP to select particular
  1413. dates or date ranges. See
  1414. .BR rlog ( 1 )
  1415. for full explanations.
  1416. This command is recursive by default, unless the
  1417. .B \-l
  1418. option is specified.
  1419. .TP
  1420. \fBrdiff\fP [\fB\-\fP\fIflags\fP] [\fB\-V\fP \fIvn\fP] [\fB\-r\fP \fIt\fP|\fB\-D\fP \fId\fP [\fB\-r\fP \fIt2\fP|\fB\-D\fP \fId2\fP]] \fImodules\|.\|.\|.\fP
  1421. .I Requires:
  1422. repository.
  1423. .br
  1424. .I Changes:
  1425. nothing.
  1426. .br
  1427. .I Synonym:
  1428. .B patch
  1429. .br
  1430. Builds a Larry Wall format
  1431. .BR patch ( 1 )
  1432. file between two releases, that can be fed directly into the
  1433. .B patch
  1434. program to bring an old release up-to-date with the new release.
  1435. (This is one of the few \fBcvs\fP commands that operates directly from
  1436. the repository, and doesn't require a prior
  1437. .BR checkout .)
  1438. The diff output is sent to the standard output device.
  1439. You can specify (using the standard \fB\-r\fP and \fB\-D\fP options)
  1440. any combination of one or two revisions or dates.
  1441. If only one revision or date is specified, the
  1442. patch file reflects differences between that revision or date and the
  1443. current ``head'' revisions in the
  1444. .SM RCS
  1445. file.
  1446. .SP
  1447. Note that if the software release affected
  1448. is contained in more than one directory, then it may be necessary to
  1449. specify the
  1450. .B \-p
  1451. option to the
  1452. .B patch
  1453. command when patching the old sources, so that
  1454. .B patch
  1455. is able to find the files that are located in other directories.
  1456. .SP
  1457. The standard option \fIflags\fP \fB\-f\fP, and \fB\-l\fP
  1458. are available with this command. There are also several
  1459. special option flags:
  1460. .SP
  1461. If you use the
  1462. .B \-s
  1463. option, no patch output is produced.
  1464. Instead, a summary of the changed or added files between the two
  1465. releases is sent to the standard output device.
  1466. This is useful for finding out, for example, which files have changed
  1467. between two dates or revisions.
  1468. .SP
  1469. If you use the
  1470. .B \-t
  1471. option, a diff of the top two revisions is sent to the standard output device.
  1472. This is most useful for seeing what the last change to a file was.
  1473. .SP
  1474. If you use the
  1475. .B \-u
  1476. option, the patch output uses the newer ``unidiff'' format for context
  1477. diffs.
  1478. .SP
  1479. You can use
  1480. .B \-c
  1481. to explicitly specify the
  1482. .` "diff \-c"
  1483. form of context diffs
  1484. (which is the default), if you like.
  1485. .TP
  1486. \fBrelease\fP [\fB\-dQq\fP] \fImodules\fP\|.\|.\|.
  1487. .I Requires:
  1488. Working directory.
  1489. .br
  1490. .I Changes:
  1491. Working directory, history log.
  1492. .br
  1493. This command is meant to safely cancel the effect of
  1494. .` "cvs checkout".
  1495. Since
  1496. .B cvs
  1497. doesn't lock files, it isn't strictly necessary to use this command.
  1498. You can always simply delete your working directory, if you
  1499. like; but you risk losing changes you may have forgotten, and you
  1500. leave no trace in the
  1501. .B cvs
  1502. history file that you've abandoned your checkout.
  1503. .SP
  1504. Use
  1505. .` "cvs release"
  1506. to avoid these problems. This command
  1507. checks that no un-committed changes are present; that you are
  1508. executing it from immediately above, or inside, a \fBcvs\fP working
  1509. directory; and that the repository recorded for your files is the same
  1510. as the repository defined in the module database.
  1511. .SP
  1512. If all these conditions are true,
  1513. .` "cvs release"
  1514. leaves a
  1515. record of its execution (attesting to your intentionally abandoning
  1516. your checkout) in the
  1517. .B cvs
  1518. history log.
  1519. .SP
  1520. You can use the \fB\-d\fP flag to request that your working copies of
  1521. the source files be deleted if the \fBrelease\fP succeeds.
  1522. .TP
  1523. \fBremove\fP [\fB\-lR\fP] [\fIfiles\|.\|.\|.\fP]
  1524. .I Requires:
  1525. Working directory.
  1526. .br
  1527. .I Changes:
  1528. Working directory.
  1529. .br
  1530. .I Synonyms:
  1531. .BR rm ", " delete
  1532. .br
  1533. Use this command to declare that you wish to remove \fIfiles\fP from
  1534. the source repository. Like most
  1535. .B cvs
  1536. commands,
  1537. .` "cvs remove"
  1538. works on files in your working
  1539. directory, not directly on the repository. As a safeguard, it also
  1540. requires that you first erase the specified files from your working
  1541. directory.
  1542. .SP
  1543. The files are not actually removed until you apply your changes to the
  1544. repository with
  1545. .BR commit ;
  1546. at that point, the corresponding
  1547. .SM RCS
  1548. files in the source repository are
  1549. .I moved
  1550. into the
  1551. .` "Attic"
  1552. directory (also within the source repository).
  1553. .SP
  1554. This command is recursive by default, scheduling all physically removed
  1555. files that it finds for removal by the next
  1556. .BR commit .
  1557. Use the
  1558. .B \-l
  1559. option to avoid this recursion, or just specify that actual files that you
  1560. wish remove to consider.
  1561. .TP
  1562. \fBrtag\fP [\fB\-f\|alnRQq\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] \fIsymbolic_tag\fP \fImodules\|.\|.\|.\fP
  1563. .I Requires:
  1564. repository.
  1565. .br
  1566. .I Changes:
  1567. repository.
  1568. .br
  1569. .I Synonym:
  1570. .B rfreeze
  1571. .br
  1572. You can use this command to assign symbolic tags to particular,
  1573. explicitly specified source versions in the repository.
  1574. .` "cvs rtag"
  1575. works directly on the repository contents (and requires no
  1576. prior
  1577. .BR checkout ).
  1578. Use
  1579. .` "cvs tag"
  1580. instead, to base the selection of
  1581. versions to tag on the contents of your working directory.
  1582. .SP
  1583. In general, tags (often the symbolic names of software distributions)
  1584. should not be removed, but the
  1585. .B \-d
  1586. option is available as a means to remove completely obsolete symbolic names
  1587. if necessary (as might be the case for an Alpha release, say).
  1588. .SP
  1589. .` "cvs rtag"
  1590. will not move a tag that already exists. With the \fB\-F\fP option,
  1591. however,
  1592. .` "cvs rtag"
  1593. will re-locate any instance of \fIsymbolic_tag\fP that already exists
  1594. on that file to the new repository versions. Without the \fB\-F\fP
  1595. option, attempting to use
  1596. .` "cvs rtag"
  1597. to apply a tag that already exists on that file will produce an error
  1598. message.
  1599. .SP
  1600. The \fB-b\fP option makes the tag a ``branch'' tag, allowing
  1601. concurrent, isolated development.
  1602. This is most useful for creating a patch to a previously released software
  1603. distribution.
  1604. .SP
  1605. You can use the standard \fB\-r\fP and \fB\-D\fP options to tag only those
  1606. files that already contain a certain tag. This method would be used
  1607. to rename a tag: tag only the files identified by the old tag, then delete the
  1608. old tag, leaving the new tag on exactly the same files as the old tag.
  1609. .SP
  1610. .B rtag
  1611. executes recursively by default, tagging all subdirectories of
  1612. \fImodules\fP you specify in the argument. You can restrict its
  1613. operation to top-level directories with the standard \fB\-l\fP option;
  1614. or you can explicitly request recursion with \fB\-R\fP.
  1615. .SP
  1616. The modules database can specify a program to execute whenever a tag
  1617. is specified; a typical use is to send electronic mail to a group of
  1618. interested parties. If you want to bypass that program, use the
  1619. standard \fB\-n\fP option.
  1620. .SP
  1621. Use the
  1622. .B \-a
  1623. option to have
  1624. .B rtag
  1625. look in the
  1626. .` "Attic"
  1627. for removed files that contain the specified tag.
  1628. The tag is removed from these files, which makes it convenient to re-use a
  1629. symbolic tag as development continues (and files get removed from the
  1630. up-coming distribution).
  1631. .TP
  1632. \fBstatus\fP [\fB\-lRqQ\fP] [\fB\-v\fP] [\fIfiles\fP\|.\|.\|.]
  1633. .I Requires:
  1634. working directory, repository.
  1635. .br
  1636. .I Changes:
  1637. nothing.
  1638. .br
  1639. Display a brief report on the current status of \fIfiles\fP with
  1640. respect to the source repository, including any ``sticky'' tags,
  1641. dates, or \fB\-k\fP options. (``Sticky'' options will restrict how
  1642. .` "cvs update"
  1643. operates until you reset them; see the
  1644. description of
  1645. .` "cvs update \-A\|.\|.\|.".)
  1646. .SP
  1647. You can also use this command to anticipate the potential impact of a
  1648. .` "cvs update"
  1649. on your working source directory. If you do
  1650. not specify any \fIfiles\fP explicitly, reports are shown for all
  1651. files that \fBcvs\fP has placed in your working directory. You can
  1652. limit the scope of this search to the current directory itself (not
  1653. its subdirectories) with the standard \fB\-l\fP option flag; or you
  1654. can explicitly request recursive status reports with the \fB\-R\fP
  1655. option.
  1656. .SP
  1657. The
  1658. .B \-v
  1659. option causes the symbolic tags for the
  1660. .SM RCS
  1661. file to be displayed as well.
  1662. .TP
  1663. \fBtag\fP [\fB\-lQqR\fP] [\fB\-F\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] [\fB\-f\fP] \fIsymbolic_tag\fP [\fIfiles\fP\|.\|.\|.\|]
  1664. .I Requires:
  1665. working directory, repository.
  1666. .br
  1667. .I Changes:
  1668. repository.
  1669. .br
  1670. .I Synonym:
  1671. .B freeze
  1672. .br
  1673. Use this command to assign symbolic tags to the nearest repository
  1674. versions to your working sources. The tags are applied immediately to
  1675. the repository, as with \fBrtag\fP.
  1676. .SP
  1677. One potentially surprising aspect of the fact that \fBcvs tag\fP
  1678. operates on the repository is that you are tagging the checked-in
  1679. revisions, which may differ from locally modified files in your working
  1680. directory. If you want to avoid doing this by mistake, specify the
  1681. \fB-c\fP option to \fBcvs tag\fP. If there are any locally modified files, CVS
  1682. will abort with an error before it tags any files.
  1683. .SP
  1684. One use for tags is to record a ``snapshot'' of the current sources
  1685. when the software freeze date of a project arrives. As bugs are fixed
  1686. after the freeze date, only those changed sources that are to be part
  1687. of the release need be re-tagged.
  1688. .SP
  1689. The symbolic tags are meant to permanently record which revisions of which
  1690. files were used in creating a software distribution.
  1691. The
  1692. .BR checkout ,
  1693. .B export
  1694. and
  1695. .B update
  1696. commands allow you to extract an exact copy of a tagged release at any time in
  1697. the future, regardless of whether files have been changed, added, or removed
  1698. since the release was tagged.
  1699. .SP
  1700. You can use the standard \fB\-r\fP and \fB\-D\fP options to tag only those
  1701. files that already contain a certain tag. This method would be used
  1702. to rename a tag: tag only the files identified by the old tag, then delete the
  1703. old tag, leaving the new tag on exactly the same files as the old tag.
  1704. .SP
  1705. Specifying the \fB\-f\fP flag in addition to the \fB\-r\fP or \fB\-D\fP
  1706. flags will tag those files named on the command line even if they do not
  1707. contain the old tag or did not exist on the specified date.
  1708. .SP
  1709. By default (without a \fB\-r\fP or \fB\-D\fP flag)
  1710. the versions to be tagged are supplied
  1711. implicitly by the \fBcvs\fP records of your working files' history
  1712. rather than applied explicitly.
  1713. .SP
  1714. If you use
  1715. .` "cvs tag \-d \fIsymbolic_tag\fP\|.\|.\|.",
  1716. the
  1717. symbolic tag you specify is
  1718. .I deleted
  1719. instead of being added. \fIWarning\fP: Be very certain of your ground
  1720. before you delete a tag; doing this effectively discards some
  1721. historical information, which may later turn out to have been valuable.
  1722. .SP
  1723. .` "cvs tag"
  1724. will not move a tag that already exists. With the \fB\-F\fP option,
  1725. however,
  1726. .` "cvs tag"
  1727. will re-locate any instance of \fIsymbolic_tag\fP that already exists
  1728. on that file to the new repository versions. Without the \fB\-F\fP
  1729. option, attempting to use
  1730. .` "cvs tag"
  1731. to apply a tag that already exists on that file will produce an error
  1732. message.
  1733. .SP
  1734. The \fB-b\fP option makes the tag a ``branch'' tag, allowing
  1735. concurrent, isolated development.
  1736. This is most useful for creating a patch to a previously released software
  1737. distribution.
  1738. .SP
  1739. Normally,
  1740. .B tag
  1741. executes recursively through subdirectories; you can prevent this by
  1742. using the standard \fB\-l\fP option, or specify the recursion
  1743. explicitly by using \fB\-R\fP.
  1744. .TP
  1745. \fBupdate\fP [\fB\-ACdf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP
  1746. .I Requires:
  1747. repository, working directory.
  1748. .br
  1749. .I Changes:
  1750. working directory.
  1751. .br
  1752. After you've run
  1753. .B checkout
  1754. to create your private copy of source from the common repository,
  1755. other developers will continue changing the central source. From time
  1756. to time, when it is convenient in your development process, you can
  1757. use the
  1758. .B update
  1759. command
  1760. from within your working directory to reconcile your work with any
  1761. revisions applied to the source repository since your last
  1762. .B checkout
  1763. or
  1764. .BR update .
  1765. .SP
  1766. .B update
  1767. keeps you informed of its progress by printing a line for each file,
  1768. prefaced with one of the characters
  1769. .` "U P A R M C ?"
  1770. to indicate the status of the file:
  1771. .TP 1i
  1772. \fBU\fP \fIfile\fP
  1773. The file was brought \fIup to date\fP with respect to the repository.
  1774. This is done for any file that exists in the repository but not in your
  1775. working directory, and for files that you haven't changed but are not the most
  1776. recent versions available in the repository.
  1777. .TP 1i
  1778. \fBP\fP \fIfile\fP
  1779. Like \fBU\fP, but the CVS server sends a patch instead of an entire file.
  1780. This accomplishes the same thing as \fBU\fP using less bandwidth.
  1781. .TP 1i
  1782. \fBA\fP \fIfile\fP
  1783. The file has been \fIadded\fP to your private copy of the sources, and
  1784. will be added to the
  1785. source repository when you run
  1786. .` "cvs commit"
  1787. on the file.
  1788. This is a reminder to you that the file needs to be committed.
  1789. .TP 1i
  1790. \fBR\fP \fIfile\fP
  1791. The file has been \fIremoved\fP from your private copy of the sources, and
  1792. will be removed from the
  1793. source repository when you run
  1794. .` "cvs commit"
  1795. on the file.
  1796. This is a reminder to you that the file needs to be committed.
  1797. .TP 1i
  1798. \fBM\fP \fIfile\fP
  1799. The file is \fImodified\fP in your working directory.
  1800. .` "M"
  1801. can indicate one of two states for a file you're working on: either
  1802. there were no modifications to the same file in the repository, so
  1803. that your file remains as you last saw it; or there were modifications
  1804. in the repository as well as in your copy, but they were
  1805. \fImerged\fP successfully, without conflict, in your working
  1806. directory.
  1807. .TP 1i
  1808. \fBC\fP \fIfile\fP
  1809. A \fIconflict\fP was detected while trying to merge your changes to
  1810. \fIfile\fP with changes from the source repository. \fIfile\fP (the
  1811. copy in your working directory) is now the result of merging
  1812. the two versions; an unmodified copy of your file is also
  1813. in your working directory, with the name `\fB.#\fP\fIfile\fP\fB.\fP\fIversion\fP',
  1814. where
  1815. .I version
  1816. is the
  1817. revision that your modified file started from.
  1818. (Note that some systems automatically purge files that begin with
  1819. \&
  1820. .` ".#"
  1821. if they have not been accessed for a few days.
  1822. If you intend to keep a copy of your original file, it is a very good
  1823. idea to rename it.)
  1824. .TP 1i
  1825. \fB?\fP \fIfile\fP
  1826. \fIfile\fP is in your working directory, but does not correspond to
  1827. anything in the source repository, and is not in the list of files
  1828. for \fBcvs\fP to ignore (see the description of the \fB\-I\fP option).
  1829. .PP
  1830. .RS .5i
  1831. .SP
  1832. Use the
  1833. .B \-A
  1834. option to reset any sticky tags, dates, or
  1835. .B \-k
  1836. options. (If you get a working copy of a file by using one of the
  1837. \fB\-r\fP, \fB\-D\fP, or \fB\-k\fP options, \fBcvs\fP remembers the
  1838. corresponding tag, date, or \fIkflag\fP and continues using it on
  1839. future updates; use the \fB\-A\fP option to make \fBcvs\fP forget these
  1840. specifications, and retrieve the ``head'' version of the file).
  1841. .SP
  1842. The \fB\-j\fP\fIbranch\fP option
  1843. merges the changes made between the
  1844. resulting revision and the revision that it is based on (e.g., if
  1845. the tag refers to a branch,
  1846. .B cvs
  1847. will merge all changes made in
  1848. that branch into your working file).
  1849. .SP
  1850. With two \fB-j\fP options,
  1851. .B cvs
  1852. will merge in the changes between the two respective revisions.
  1853. This can be used to ``remove'' a certain delta from your working file.
  1854. E.g., If the file foo.c is based on
  1855. revision 1.6 and I want to remove the changes made between 1.3 and
  1856. 1.5, I might do:
  1857. .SP
  1858. .in +1i
  1859. .ft B
  1860. .nf
  1861. example% cvs update -j1.5 -j1.3 foo.c # note the order...
  1862. .fi
  1863. .ft P
  1864. .in -1i
  1865. .SP
  1866. In addition, each \fB-j\fP option can contain on optional date
  1867. specification which, when used with branches, can limit the chosen
  1868. revision to one within a specific date.
  1869. An optional date is specified by adding a colon (:) to the tag.
  1870. .SP
  1871. .in +1i
  1872. .ft B
  1873. .nf
  1874. -jSymbolic_Tag:Date_Specifier
  1875. .fi
  1876. .ft P
  1877. .in -1i
  1878. .SP
  1879. Use the
  1880. .B \-d
  1881. option to create any directories that exist in the repository if they're
  1882. missing from the working directory. (Normally, update acts only on
  1883. directories and files that were already enrolled in your
  1884. working directory.) This is useful for updating directories
  1885. that were created in the repository since the initial
  1886. \fBcheckout\fP; but it has an unfortunate side effect. If you
  1887. deliberately avoided certain directories in the repository when you
  1888. created your working directory (either through use of a module name or by
  1889. listing explicitly the files and directories you wanted on the
  1890. command line), then updating with
  1891. .B \-d
  1892. will create those directories, which may not be what you want.
  1893. .SP
  1894. Use \fB\-I\fP \fIname\fP to ignore files whose names match \fIname\fP
  1895. (in your working directory) during the update. You can specify
  1896. \fB\-I\fP more than once on the command line to specify several files
  1897. to ignore. By default,
  1898. \fBupdate\fP ignores files whose names match certain patterns; for
  1899. an up to date list of ignored file names, see the Cederqvist manual (as
  1900. described in the SEE ALSO section of this manpage).
  1901. .SP
  1902. Use
  1903. .` "\-I !"
  1904. to avoid ignoring any files at all.
  1905. .SP
  1906. Use the
  1907. .` "\-C"
  1908. option to overwrite locally modified files with clean copies from
  1909. the repository (the modified file is saved in
  1910. `\fB.#\fP\fIfile\fP\fB.\fP\fIrevision\fP', however).
  1911. .SP
  1912. The standard \fBcvs\fP command options \fB\-f\fP, \fB\-k\fP,
  1913. \fB\-l\fP, \fB\-P\fP, \fB\-p\fP, and \fB\-r\fP
  1914. are also available with \fBupdate\fP.
  1915. .RE
  1916. .SH "FILES"
  1917. For more detailed information on
  1918. .B cvs
  1919. supporting files, see
  1920. .BR cvs ( 5 ).
  1921. .LP
  1922. .I
  1923. Files in home directories:
  1924. .TP
  1925. \&.cvsrc
  1926. The
  1927. .B cvs
  1928. initialization file. Lines in this file can be used to specify default
  1929. options for each
  1930. .B cvs
  1931. command. For example the line
  1932. .` "diff \-c"
  1933. will ensure that
  1934. .` "cvs diff"
  1935. is always passed the
  1936. .B \-c
  1937. option in addition to any other options passed on the command line.
  1938. .TP
  1939. \&.cvswrappers
  1940. Specifies wrappers to be used in addition to those specified in the
  1941. CVSROOT/cvswrappers file in the repository.
  1942. .LP
  1943. .I
  1944. Files in working directories:
  1945. .TP
  1946. CVS
  1947. A directory of \fBcvs\fP administrative files.
  1948. .I
  1949. Do not delete.
  1950. .TP
  1951. CVS/Entries
  1952. List and status of files in your working directory.
  1953. .TP
  1954. CVS/Entries.Backup
  1955. A backup of
  1956. .` "CVS/Entries".
  1957. .TP
  1958. CVS/Entries.Static
  1959. Flag: do not add more entries on
  1960. .` "cvs update".
  1961. .TP
  1962. CVS/Root
  1963. Pathname to the repository (
  1964. .SM CVSROOT
  1965. ) location at the time of checkout. This file is used instead
  1966. of the
  1967. .SM CVSROOT
  1968. environment variable if the environment variable is not
  1969. set. A warning message will be issued when the contents of this
  1970. file and the
  1971. .SM CVSROOT
  1972. environment variable differ. The file may be over-ridden by the
  1973. presence of the
  1974. .SM CVS_IGNORE_REMOTE_ROOT
  1975. environment variable.
  1976. .TP
  1977. CVS/Repository
  1978. Pathname to the corresponding directory in the source repository.
  1979. .TP
  1980. CVS/Tag
  1981. Contains the per-directory ``sticky'' tag or date information.
  1982. This file is created/updated when you specify
  1983. .B \-r
  1984. or
  1985. .B \-D
  1986. to the
  1987. .B checkout
  1988. or
  1989. .B update
  1990. commands, and no files are specified.
  1991. .TP
  1992. CVS/Checkin.prog
  1993. Name of program to run on
  1994. .` "cvs commit".
  1995. .TP
  1996. CVS/Update.prog
  1997. Name of program to run on
  1998. .` "cvs update".
  1999. .LP
  2000. .I
  2001. Files in source repositories:
  2002. .TP
  2003. $CVSROOT/CVSROOT
  2004. Directory of global administrative files for repository.
  2005. .TP
  2006. CVSROOT/commitinfo,v
  2007. Records programs for filtering
  2008. .` "cvs commit"
  2009. requests.
  2010. .TP
  2011. CVSROOT/cvswrappers,v
  2012. Records
  2013. .B cvs
  2014. wrapper commands to be used when checking files into and out of the
  2015. repository. Wrappers allow the file or directory to be processed
  2016. on the way in and out of CVS. The intended uses are many, one
  2017. possible use would be to reformat a C file before the file is checked
  2018. in, so all of the code in the repository looks the same.
  2019. .TP
  2020. CVSROOT/editinfo,v
  2021. Records programs for editing/validating
  2022. .` "cvs commit"
  2023. log entries.
  2024. .TP
  2025. CVSROOT/history
  2026. Log file of \fBcvs\fP transactions.
  2027. .TP
  2028. CVSROOT/loginfo,v
  2029. Records programs for piping
  2030. .` "cvs commit"
  2031. log entries.
  2032. .TP
  2033. CVSROOT/modules,v
  2034. Definitions for modules in this repository.
  2035. .TP
  2036. CVSROOT/rcsinfo,v
  2037. Records pathnames to templates used during a
  2038. .` "cvs commit"
  2039. operation.
  2040. .TP
  2041. CVSROOT/taginfo,v
  2042. Records programs for validating/logging
  2043. .` "cvs tag"
  2044. and
  2045. .` "cvs rtag"
  2046. operations.
  2047. .TP
  2048. MODULE/Attic
  2049. Directory for removed source files.
  2050. .TP
  2051. #cvs.lock
  2052. A lock directory created by
  2053. .B cvs
  2054. when doing sensitive changes to the
  2055. source repository.
  2056. .TP
  2057. #cvs.tfl.\fIpid\fP
  2058. Temporary lock file for repository.
  2059. .TP
  2060. #cvs.rfl.\fIpid\fP
  2061. A read lock.
  2062. .TP
  2063. #cvs.wfl.\fIpid\fP
  2064. A write lock.
  2065. .SH "ENVIRONMENT"
  2066. .TP
  2067. .SM CVSROOT
  2068. Should contain the full pathname to the root of the
  2069. .B cvs
  2070. source repository (where the
  2071. .SM RCS
  2072. files are kept). This information must be available to \fBcvs\fP for
  2073. most commands to execute; if
  2074. .SM CVSROOT
  2075. is not set, or if you wish to override it for one invocation, you can
  2076. supply it on the command line:
  2077. .` "cvs \-d \fIcvsroot cvs_command\fP\|.\|.\|."
  2078. You may not need to set
  2079. .SM CVSROOT
  2080. if your \fBcvs\fP binary has the right path compiled in.
  2081. .TP
  2082. .SM CVSREAD
  2083. If this is set,
  2084. .B checkout
  2085. and
  2086. .B update
  2087. will try hard to make the files in your working directory read-only.
  2088. When this is not set, the default behavior is to permit modification
  2089. of your working files.
  2090. .TP
  2091. .SM CVSREADONLYFS
  2092. If this is set, the
  2093. .B \-R
  2094. option is assumed, and
  2095. .B cvs
  2096. operates in read-only repository mode.
  2097. .TP
  2098. .SM RCSBIN
  2099. Specifies the full pathname where to find
  2100. .SM RCS
  2101. programs, such as
  2102. .BR co ( 1 )
  2103. and
  2104. .BR ci ( 1 )
  2105. (CVS 1.9 and older).
  2106. .TP
  2107. .SM CVSEDITOR
  2108. Specifies the program to use for recording log messages during
  2109. .BR commit .
  2110. If not set, the
  2111. .SM VISUAL
  2112. and
  2113. .SM EDITOR
  2114. environment variables are tried (in that order).
  2115. If neither is set, a system-dependent default editor (e.g.,
  2116. .BR vi )
  2117. is used.
  2118. .TP
  2119. .SM CVS_CLIENT_PORT
  2120. If this variable is set then
  2121. .B cvs
  2122. will use this port in
  2123. \fIpserver mode\fP
  2124. rather than the default port (cvspserver 2401).
  2125. .TP
  2126. .SM CVS_IGNORE_REMOTE_ROOT
  2127. If this variable is set then
  2128. .B cvs
  2129. will ignore all references to remote repositories in the CVS/Root file.
  2130. .TP
  2131. .SM CVS_OPTIONS
  2132. Specifies a set of default options for
  2133. .B cvs.
  2134. These options are interpreted before the startup file (\fI~/.cvsrc\fP) is read
  2135. and can be overridden by explicit command line parameters.
  2136. .TP
  2137. .SM CVS_RSH
  2138. .B cvs
  2139. uses the contents of this variable to determine the name of the
  2140. remote shell command to use when starting a
  2141. .B cvs
  2142. server. If this variable is not set then
  2143. .` "ssh"
  2144. is used.
  2145. .TP
  2146. .SM CVS_SERVER
  2147. .B cvs
  2148. uses the contents of this variable to determine the name of the
  2149. .B cvs
  2150. server command. If this variable is not set then
  2151. .` "cvs"
  2152. is used.
  2153. .TP
  2154. .SM CVSWRAPPERS
  2155. This variable is used by the
  2156. .` "cvswrappers"
  2157. script to determine the name of the wrapper file, in addition to the
  2158. wrappers defaults contained in the repository
  2159. .SM (CVSROOT/cvswrappers)
  2160. and the user's home directory (~/.cvswrappers).
  2161. .SH "AUTHORS"
  2162. .TP
  2163. Dick Grune
  2164. Original author of the
  2165. .B cvs
  2166. shell script version posted to
  2167. .B comp.sources.unix
  2168. in the volume6 release of December, 1986.
  2169. Credited with much of the
  2170. .B cvs
  2171. conflict resolution algorithms.
  2172. .TP
  2173. Brian Berliner
  2174. Coder and designer of the
  2175. .B cvs
  2176. program itself in April, 1989, based on the original work done by Dick.
  2177. .TP
  2178. Jeff Polk
  2179. Helped Brian with the design of the
  2180. .B cvs
  2181. module and vendor branch support and author of the
  2182. .BR checkin ( 1 )
  2183. shell script (the ancestor of
  2184. .` "cvs import").
  2185. .TP
  2186. And many others too numerous to mention here.
  2187. .SH "SEE ALSO"
  2188. The most comprehensive manual for CVS is
  2189. Version Management with CVS by Per Cederqvist et al. Depending on
  2190. your system, you may be able to get it with the
  2191. .B info cvs
  2192. command or it may be available as cvs.ps (postscript), cvs.texinfo
  2193. (texinfo source), or cvs.html.
  2194. .SP
  2195. For CVS updates, more information on documentation, software related
  2196. to CVS, development of CVS, and more, see:
  2197. .in +1i
  2198. .B http://cvs.nongnu.org
  2199. .in -1i
  2200. .SP
  2201. .BR ci ( 1 ),
  2202. .BR co ( 1 ),
  2203. .BR cvs ( 5 ),
  2204. .BR cvsbug ( 8 ),
  2205. .BR diff ( 1 ),
  2206. .BR grep ( 1 ),
  2207. .BR patch ( 1 ),
  2208. .BR rcs ( 1 ),
  2209. .BR rcsdiff ( 1 ),
  2210. .BR rcsmerge ( 1 ),
  2211. .BR rlog ( 1 ).