1CVS(1)                      General Commands Manual                     CVS(1)
2
3
4

NAME

6       cvs - Concurrent Versions System
7

SYNOPSIS

9       cvs [ cvs_options ]
10              cvs_command [ command_options ] [ command_args ]
11

NOTE

13       This  manpage is a summary of some of the features of cvs.  It is auto-
14       generated from an appendix of the CVS manual.  For more in-depth  docu‐
15       mentation,  please consult the Cederqvist manual (via the info CVS com‐
16       mand or otherwise, as described in the SEE ALSO section  of  this  man‐
17       page).  Cross-references in this man page refer to nodes in the same.
18

CVS commands

20   Guide to CVS commands
21       This  appendix  describes  the  overall  structure of cvs commands, and
22       describes some commands in detail (others are described elsewhere;  for
23       a  quick  reference to cvs commands, see node `Invoking CVS' in the CVS
24       manual).
25
26

Structure

28   Overall structure of CVS commands
29       The overall format of all cvs commands is:
30
31
32         cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ]
33
34
35
36
37
38
39       cvs
40
41         The name of the cvs program.
42
43
44
45       cvs_options
46
47         Some  options  that  affect  all  sub-commands  of  cvs.   These  are
48         described below.
49
50
51
52       cvs_command
53
54         One  of  several  different  sub-commands.  Some of the commands have
55         aliases that can be used instead; those aliases are noted in the ref‐
56         erence  manual for that command.  There are only two situations where
57         you may omit cvs_command: cvs -H elicits a  list  of  available  com‐
58         mands, and cvs -v displays version information on cvs itself.
59
60
61
62       command_options
63
64         Options that are specific for the command.
65
66
67
68       command_args
69
70         Arguments to the commands.
71
72         There  is  unfortunately  some confusion between cvs_options and com‐
73         mand_options.  When given as a cvs_option, some options  only  affect
74         some  of  the commands.  When given as a command_option it may have a
75         different meaning, and be accepted by more commands.  In other words,
76         do not take the above categorization too seriously.  Look at the doc‐
77         umentation instead.
78
79

Exit status

81   CVS's exit status
82       cvs can indicate to the calling environment  whether  it  succeeded  or
83       failed  by  setting its exit status.  The exact way of testing the exit
84       status will vary from one operating system to another.  For example  in
85       a  unix  shell  script  the  $?  variable will be 0 if the last command
86       returned a successful exit status, or greater than 0 if the exit status
87       indicated failure.
88
89       If  cvs  is  successful, it returns a successful status; if there is an
90       error, it prints an error message and returns a  failure  status.   The
91       one  exception  to this is the cvs diff command.  It will return a suc‐
92       cessful status if it found no differences, or a failure status if there
93       were  differences or if there was an error.  Because this behavior pro‐
94       vides no good way to detect errors, in the future it is  possible  that
95       cvs diff will be changed to behave like the other cvs commands.
96
97

~/.cvsrc

99   Default options and the ~/.cvsrc file
100       There  are  some  command_options that are used so often that you might
101       have set up an alias or some other means to make sure you always  spec‐
102       ify that option.  One example (the one that drove the implementation of
103       the .cvsrc support, actually) is that many people find the default out‐
104       put  of  the diff command to be very hard to read, and that either con‐
105       text diffs or unidiffs are much easier to understand.
106
107       The ~/.cvsrc file is a way that you can add default options to cvs_com‐
108       mands within cvs, instead of relying on aliases or other shell scripts.
109
110       The  format of the ~/.cvsrc file is simple.  The file is searched for a
111       line that begins with the same name as the cvs_command being  executed.
112       If  a  match  is  found, then the remainder of the line is split up (at
113       whitespace characters) into separate options and added to  the  command
114       arguments before any options from the command line.
115
116       If  a command has two names (e.g., checkout and co), the official name,
117       not necessarily the one used on the command line, will be used to match
118       against  the  file.   So if this is the contents of the user's ~/.cvsrc
119       file:
120
121
122         log -N
123         diff -uN
124         rdiff -u
125         update -Pd
126         checkout -P
127         release -d
128
129
130
131
132       the command cvs checkout foo would have the  -P  option  added  to  the
133       arguments, as well as cvs co foo.
134
135       With the example file above, the output from cvs diff foobar will be in
136       unidiff format.  cvs diff -c foobar  will  provide  context  diffs,  as
137       usual.   Getting "old" format diffs would be slightly more complicated,
138       because diff doesn't have an option to specify use of the "old" format,
139       so you would need cvs -f diff foobar.
140
141       In  place of the command name you can use cvs to specify global options
142       (see node `Global options' in the CVS manual).  For example the follow‐
143       ing line in .cvsrc
144
145
146         cvs -z6
147
148
149
150
151       causes cvs to use compression level 6.
152
153

Global options

155       The  available  cvs_options (that are given to the left of cvs_command)
156       are:
157
158
159
160       --allow-root=rootdir
161
162         Specify  legal  cvsroot  directory.   See  `Password   authentication
163         server' in the CVS manual.
164
165
166
167       -a
168
169         Authenticate  all  communication  between  the client and the server.
170         Only has an effect on the cvs client.  As of this  writing,  this  is
171         only  implemented  when  using  a GSSAPI connection (see node `GSSAPI
172         authenticated' in the CVS manual).  Authentication  prevents  certain
173         sorts  of  attacks  involving  hijacking  the  active tcp connection.
174         Enabling authentication does not enable encryption.
175
176
177
178       -b bindir
179
180         In cvs 1.9.18 and older, this specified that rcs programs are in  the
181         bindir  directory.   Current versions of cvs do not run rcs programs;
182         for compatibility this option is accepted, but it does nothing.
183
184
185
186       -T tempdir
187
188         Use tempdir as the  directory  where  temporary  files  are  located.
189         Overrides  the  setting  of  the $TMPDIR environment variable and any
190         precompiled directory.  This parameter  should  be  specified  as  an
191         absolute  pathname.  (When running client/server, -T affects only the
192         local process; specifying -T for the client  has  no  effect  on  the
193         server and vice versa.)
194
195
196
197       -d cvs_root_directory
198
199         Use  cvs_root_directory as the root directory pathname of the reposi‐
200         tory.  Overrides the setting of the  $CVSROOT  environment  variable.
201         See `Repository' in the CVS manual.
202
203
204
205       -e editor
206
207         Use  editor to enter revision log information.  Overrides the setting
208         of the $CVSEDITOR and $EDITOR environment variables.  For more infor‐
209         mation, see `Committing your changes' in the CVS manual.
210
211
212
213       -f
214
215         Do  not  read  the  ~/.cvsrc  file.   This  option is most often used
216         because of the non-orthogonality of the cvs option set.  For example,
217         the cvs log option -N (turn off display of tag names) does not have a
218         corresponding option to turn the display on.  So if you  have  -N  in
219         the  ~/.cvsrc  entry  for log, you may need to use -f to show the tag
220         names.
221
222
223
224       -H
225
226
227
228
229       --help
230
231         Display usage information about the specified cvs_command (but do not
232         actually  execute the command).  If you don't specify a command name,
233         cvs -H displays overall help for cvs, including a list of other  help
234         options.
235
236
237
238       -n
239
240         Do  not  change  any  files.  Attempt to execute the cvs_command, but
241         only to issue reports; do not remove, update, or merge  any  existing
242         files, or create any new files.
243
244         Note that cvs will not necessarily produce exactly the same output as
245         without -n.  In some cases the output will be the same, but in  other
246         cases  cvs  will  skip  some  of  the processing that would have been
247         required to produce the exact same output.
248
249
250
251       -Q
252
253         Cause the command to be really quiet; the command will only  generate
254         output for serious problems.
255
256
257
258       -q
259
260         Cause  the command to be somewhat quiet; informational messages, such
261         as reports of recursion through subdirectories, are suppressed.
262
263
264
265       -r
266
267         Make new working files read-only.  Same effect  as  if  the  $CVSREAD
268         environment  variable is set (see node `Environment variables' in the
269         CVS manual).  The default is to make working files  writable,  unless
270         watches are on (see node `Watches' in the CVS manual).
271
272
273
274       -s variable=value
275
276         Set a user variable (see node `Variables' in the CVS manual).
277
278
279
280       -t
281
282         Trace  program  execution;  display messages showing the steps of cvs
283         activity.  Particularly useful  with  -n  to  explore  the  potential
284         impact of an unfamiliar command.
285
286
287
288       -v
289
290
291
292
293       --version
294
295         Display version and copyright information for cvs.
296
297
298
299       -w
300
301         Make  new  working  files  read-write.   Overrides the setting of the
302         $CVSREAD environment  variable.   Files  are  created  read-write  by
303         default, unless $CVSREAD is set or -r is given.
304
305
306
307       -x
308
309         Encrypt  all  communication  between the client and the server.  Only
310         has an effect on the cvs client.  As of this writing,  this  is  only
311         implemented  when using a GSSAPI connection (see node `GSSAPI authen‐
312         ticated' in the CVS manual) or a Kerberos connection (see node  `Ker‐
313         beros authenticated' in the CVS manual).  Enabling encryption implies
314         that message traffic is also authenticated.   Encryption  support  is
315         not  available by default; it must be enabled using a special config‐
316         ure option, --enable-encryption, when you build cvs.
317
318
319
320       -z gzip-level
321
322         Set the compression level.  Valid levels are 1 (high speed, low  com‐
323         pression)  to  9  (low speed, high compression), or 0 to disable com‐
324         pression (the default).  Only has an effect on the cvs client.
325
326
327

Common options

329   Common command options
330       This section describes the command_options that  are  available  across
331       several  cvs  commands.  These options are always given to the right of
332       cvs_command. Not all commands support all of these options; each option
333       is  only  supported for commands where it makes sense.  However, when a
334       command has one of these options you can almost  always  count  on  the
335       same  behavior  of  the  option  as  in other commands.  (Other command
336       options, which are listed with the individual commands, may  have  dif‐
337       ferent behavior from one cvs command to the other).
338
339       The history command is an exception; it supports many options that con‐
340       flict even with these standard options.
341
342
343
344       -D date_spec
345
346         Use the most recent revision no later than date_spec.  date_spec is a
347         single argument, a date description specifying a date in the past.
348
349         The specification is sticky when you use it to make a private copy of
350         a source file; that is, when you get a working  file  using  -D,  cvs
351         records  the  date you specified, so that further updates in the same
352         directory will use the same date  (for  more  information  on  sticky
353         tags/dates, see node `Sticky tags' in the CVS manual).
354
355         -D  is  available with the annotate, checkout, diff, export, history,
356         rdiff, rtag, and update commands.  (The  history  command  uses  this
357         option in a slightly different way; see node `history options' in the
358         CVS manual).
359
360         A wide variety of date formats are supported by cvs.  The most  stan‐
361         dard ones are ISO8601 (from the International Standards Organization)
362         and the Internet e-mail standard (specified in RFC822 as  amended  by
363         RFC1123).
364
365         ISO8601 dates have many variants but a few examples are:
366
367
368           1972-09-24
369           1972-09-24 20:05
370
371
372
373
374         There  are  a  lot more ISO8601 date formats, and cvs accepts many of
375         them, but you probably don't want to hear the whole long story :-).
376
377         In addition to the dates allowed in Internet e-mail itself, cvs  also
378         allows some of the fields to be omitted.  For example:
379
380
381           24 Sep 1972 20:05
382           24 Sep
383
384
385
386
387         The date is interpreted as being in the local timezone, unless a spe‐
388         cific timezone is specified.
389
390         These two date formats are preferred.  However, cvs currently accepts
391         a  wide  variety  of  other date formats.  They are intentionally not
392         documented here in any detail, and future versions of cvs  might  not
393         accept all of them.
394
395         One  such  format is month/day/year.  This may confuse people who are
396         accustomed to having the month and day in the other order; 1/4/96  is
397         January 4, not April 1.
398
399         Remember  to  quote  the  argument  to the -D flag so that your shell
400         doesn't interpret spaces as argument separators.  A command using the
401         -D flag can look like this:
402
403
404           $ cvs diff -D "1 hour ago" cvs.texinfo
405
406
407
408
409
410
411       -f
412
413         When  you specify a particular date or tag to cvs commands, they nor‐
414         mally ignore files that do not contain the  tag  (or  did  not  exist
415         prior to the date) that you specified.  Use the -f option if you want
416         files retrieved even when there is no match  for  the  tag  or  date.
417         (The most recent revision of the file will be used).
418
419         Note  that  even with -f, a tag that you specify must exist (that is,
420         in some file, not necessary in every file).  This is so that cvs will
421         continue to give an error if you mistype a tag name.
422
423         -f  is  available  with  these  commands: annotate, checkout, export,
424         rdiff, rtag, and update.
425
426         WARNING:  The commit and remove commands also have a -f  option,  but
427         it has a different behavior for those commands.  See `commit options'
428         in the CVS manual, and `Removing files' in the CVS manual.
429
430
431
432       -k kflag
433
434         Alter the default processing of keywords.  See `Keyword substitution'
435         in  the  CVS manual, for the meaning of kflag.  Your kflag specifica‐
436         tion is sticky when you use it to create a private copy of  a  source
437         file;  that  is, when you use this option with the checkout or update
438         commands, cvs associates your selected kflag with the file, and  con‐
439         tinues  to  use it with future update commands on the same file until
440         you specify otherwise.
441
442         The -k option is available  with  the  add,  checkout,  diff,  rdiff,
443         import and update commands.
444
445
446
447       -l
448
449         Local;  run  only in current working directory, rather than recursing
450         through subdirectories.
451
452         Available with the following commands:  annotate,  checkout,  commit,
453         diff,  edit,  editors, export, log, rdiff, remove, rtag, status, tag,
454         unedit, update, watch, and watchers.
455
456
457
458       -m message
459
460         Use message as log information, instead of invoking an editor.
461
462         Available with the following commands: add, commit and import.
463
464
465
466       -n
467
468         Do not run any tag program.  (A program can be specified  to  run  in
469         the  modules  database  (see  node `modules' in the CVS manual); this
470         option bypasses it).
471
472         This is not the same as the cvs -n  program  option,  which  you  can
473         specify to the left of a cvs command!
474
475         Available with the checkout, export, and rtag commands.
476
477
478
479       -P
480
481         Prune  empty directories.  See `Removing directories' in the CVS man‐
482         ual.
483
484
485
486       -p
487
488         Pipe the files retrieved from  the  repository  to  standard  output,
489         rather  than  writing  them in the current directory.  Available with
490         the checkout and update commands.
491
492
493
494       -R
495
496         Process directories recursively.  This is on by default.
497
498         Available with the following commands:  annotate,  checkout,  commit,
499         diff,  edit,  editors,  export,  rdiff,  remove,  rtag,  status, tag,
500         unedit, update, watch, and watchers.
501
502
503
504       -r tag
505
506         Use the revision specified by the tag argument instead of the default
507         head  revision.   As  well  as arbitrary tags defined with the tag or
508         rtag command, two special tags are always available: HEAD  refers  to
509         the  most recent version available in the repository, and BASE refers
510         to the revision you last checked out into the current working  direc‐
511         tory.
512
513         The  tag  specification  is sticky when you use this with checkout or
514         update to make your own copy of a file: cvs  remembers  the  tag  and
515         continues to use it on future update commands, until you specify oth‐
516         erwise (for more information on sticky tags/dates, see  node  `Sticky
517         tags' in the CVS manual).
518
519         The  tag  can  be  either  a symbolic or numeric tag, as described in
520         `Tags' in the CVS manual, or the name of a branch,  as  described  in
521         `Branching  and merging' in the CVS manual.  When a command expects a
522         specific revision, the name of a branch is interpreted  as  the  most
523         recent revision on that branch.
524
525         Specifying  the  -q global option along with the -r command option is
526         often useful, to suppress the warning messages when the rcs file does
527         not contain the specified tag.
528
529         This  is  not  the  same  as the overall cvs -r option, which you can
530         specify to the left of a cvs command!
531
532         -r is available with the annotate, checkout, commit,  diff,  history,
533         export, rdiff, rtag, and update commands.
534
535
536
537       -W
538
539         Specify  file names that should be filtered.  You can use this option
540         repeatedly.  The spec can be a file name pattern  of  the  same  type
541         that  you  can  specify in the .cvswrappers file.  Available with the
542         following commands: import, and update.
543
544
545

add

547   Add files and directories to the repository
548       · Synopsis: add [-k rcs-kflag] [-m message] files...
549
550       · Requires: repository, working directory.
551
552       · Changes: repository, working directory.
553
554         The add command is used to present  new  files  and  directories  for
555         addition into the cvs repository.  When add is used on a directory, a
556         new directory is created in the repository immediately.  When used on
557         a file, only the working directory is updated.  Changes to the repos‐
558         itory are not made until the commit command  is  used  on  the  newly
559         added file.
560
561         The  add  command  also  resurrects  files  that have been previously
562         removed.  This can be done before or after the commit command is used
563         to  finalize  the  removal  of files.  Resurrected files are restored
564         into the working directory at the time the add command is executed.
565
566

add options

568       These standard options are supported by add (see node `Common  options'
569       in the CVS manual, for a complete description of them):
570
571
572
573       -k kflag
574
575         Process  keywords  according to kflag.  See `Keyword substitution' in
576         the CVS manual.  This option is sticky; future updates of  this  file
577         in  this  working directory will use the same kflag.  The status com‐
578         mand can be viewed to see the sticky options.  For  more  information
579         on the status command, see node `Invoking CVS' in the CVS manual.
580
581
582
583       -m message
584
585         Use message as the log message, instead of invoking an editor.
586
587

add examples

589   Adding a directory
590         $ mkdir doc
591         $ cvs add doc
592         Directory /path/to/repository/doc added to the repository
593
594
595
596
597
598   Adding a file
599         $ >TODO
600         $ cvs add TODO
601         cvs add: scheduling file `TODO' for addition
602         cvs add: use 'cvs commit' to add this file permanently
603
604
605
606
607
608   Undoing a remove command
609         $ rm -f makefile
610         $ cvs remove makefile
611         cvs remove: scheduling `makefile' for removal
612         cvs remove: use 'cvs commit' to remove this file permanently
613         $ cvs add makefile
614         U makefile
615         cvs add: makefile, version 1.2, resurrected
616
617
618
619
620

admin

622   Administration
623       · Requires: repository, working directory.
624
625       · Changes: repository.
626
627       · Synonym: rcs
628
629         This  is  the  cvs  interface  to assorted administrative facilities.
630         Some of them have questionable usefulness for cvs but exist for  his‐
631         torical  purposes.   Some  of  the questionable options are likely to
632         disappear in the future.  This  command  does  work  recursively,  so
633         extreme care should be used.
634
635         On  unix,  if  there  is a group named cvsadmin, only members of that
636         group can run cvs admin (except for the cvs admin -k  command,  which
637         can  be  run  by anybody).  This group should exist on the server, or
638         any system running the non-client/server cvs.  To disallow cvs  admin
639         for all users, create a group with no users in it.  On NT, the cvsad‐
640         min feature does not exist and all users can run cvs admin.
641
642

admin options

644       Some of these options have questionable usefulness for  cvs  but  exist
645       for historical purposes.  Some even make it impossible to use cvs until
646       you undo the effect!
647
648
649
650       -Aoldfile
651
652         Might not work together with cvs.  Append the access list of  oldfile
653         to the access list of the rcs file.
654
655
656
657       -alogins
658
659         Might  not  work together with cvs.  Append the login names appearing
660         in the comma-separated list logins to the  access  list  of  the  rcs
661         file.
662
663
664
665       -b[rev]
666
667         Set  the  default branch to rev.  In cvs, you normally do not manipu‐
668         late default branches; sticky tags (see node `Sticky tags' in the CVS
669         manual)  are a better way to decide which branch you want to work on.
670         There is one reason to run cvs admin -b: to revert  to  the  vendor's
671         version  when  using  vendor  branches  (see  node  `Reverting  local
672         changes' in the CVS manual).  There can be no space  between  -b  and
673         its argument.
674
675
676
677       -cstring
678
679         Sets the comment leader to string.  The comment leader is not used by
680         current versions of cvs or rcs 5.7.  Therefore, you can almost surely
681         not worry about it.  See `Keyword substitution' in the CVS manual.
682
683
684
685       -e[logins]
686
687         Might not work together with cvs.  Erase the login names appearing in
688         the comma-separated list logins from the access list of the RCS file.
689         If  logins is omitted, erase the entire access list.  There can be no
690         space between -e and its argument.
691
692
693
694       -I
695
696         Run interactively, even if the standard  input  is  not  a  terminal.
697         This option does not work with the client/server cvs and is likely to
698         disappear in a future release of cvs.
699
700
701
702       -i
703
704         Useless with cvs.  This creates and initializes a new rcs file, with‐
705         out depositing a revision.  With cvs, add files with the cvs add com‐
706         mand (see node `Adding files' in the CVS manual).
707
708
709
710       -ksubst
711
712         Set the default keyword substitution to subst.  See `Keyword  substi‐
713         tution'  in  the  CVS  manual.   Giving  an explicit -k option to cvs
714         update, cvs export, or cvs checkout overrides this default.
715
716
717
718       -l[rev]
719
720         Lock the revision with number rev.  If a branch is  given,  lock  the
721         latest  revision  on that branch.  If rev is omitted, lock the latest
722         revision on the default branch.  There can be no space between -l and
723         its argument.
724
725         This  can  be  used  in conjunction with the rcslock.pl script in the
726         contrib directory of the cvs source distribution to provide  reserved
727         checkouts  (where  only  one  user  can  be editing a given file at a
728         time).  See the comments in that file for details (and see the README
729         file  in  that directory for disclaimers about the unsupported nature
730         of contrib).  According to comments in that file, locking must set to
731         strict (which is the default).
732
733
734
735       -L
736
737         Set locking to strict.  Strict locking means that the owner of an RCS
738         file is not exempt from locking  for  checkin.   For  use  with  cvs,
739         strict  locking  must  be set; see the discussion under the -l option
740         above.
741
742
743
744       -mrev:msg
745
746         Replace the log message of revision rev with msg.
747
748
749
750       -Nname[:[rev]]
751
752         Act like -n, except override any previous assignment  of  name.   For
753         use  with  magic branches, see `Magic branch numbers' in the CVS man‐
754         ual.
755
756
757
758       -nname[:[rev]]
759
760         Associate the symbolic name name with the branch or revision rev.  It
761         is  normally  better  to use cvs tag or cvs rtag instead.  Delete the
762         symbolic name if both : and rev  are  omitted;  otherwise,  print  an
763         error  message if name is already associated with another number.  If
764         rev is symbolic, it is expanded before association.  A rev consisting
765         of  a  branch  number  followed  by a . stands for the current latest
766         revision in the branch.  A : with an empty rev stands for the current
767         latest revision on the default branch, normally the trunk.  For exam‐
768         ple, cvs admin -nname: associates name with the current latest  revi‐
769         sion  of  all  the  RCS files; this contrasts with cvs admin -nname:$
770         which associates name with the revision numbers extracted  from  key‐
771         word strings in the corresponding working files.
772
773
774
775       -orange
776
777         Deletes (outdates) the revisions given by range.
778
779         Note that this command can be quite dangerous unless you know exactly
780         what you are doing (for example see the warnings below about how  the
781         rev1:rev2 syntax is confusing).
782
783         If you are short on disc this option might help you.  But think twice
784         before using it—there is no way short of restoring the latest  backup
785         to  undo  this  command!   If you delete different revisions than you
786         planned, either due to carelessness or (heaven  forbid)  a  cvs  bug,
787         there is no opportunity to correct the error before the revisions are
788         deleted.  It probably would be a good idea to experiment on a copy of
789         the repository first.
790
791         Specify range in one of the following ways:
792
793
794         rev1::rev2
795
796           Collapse  all  revisions  between  rev1  and rev2, so that cvs only
797           stores the differences associated with going from rev1 to rev2, not
798           intermediate  steps.   For  example,  after  -o  1.3::1.5  one  can
799           retrieve revision 1.3, revision 1.5, or the differences to get from
800           1.3  to  1.5,  but not the revision 1.4, or the differences between
801           1.3 and 1.4.  Other examples: -o 1.3::1.4 and -o 1.3::1.3  have  no
802           effect, because there are no intermediate revisions to remove.
803
804
805         ::rev
806
807           Collapse  revisions  between the beginning of the branch containing
808           rev and rev itself.  The branchpoint and rev are left intact.   For
809           example,  -o  ::1.3.2.6 deletes revision 1.3.2.1, revision 1.3.2.5,
810           and everything in between, but leaves 1.3 and 1.3.2.6 intact.
811
812
813         rev::
814
815           Collapse revisions between rev and the end of the branch containing
816           rev.  Revision rev is left intact but the head revision is deleted.
817
818
819         rev
820
821           Delete  the  revision rev.  For example, -o 1.3 is equivalent to -o
822           1.2::1.4.
823
824
825         rev1:rev2
826
827           Delete the revisions from rev1 to  rev2,  inclusive,  on  the  same
828           branch.   One  will  not be able to retrieve rev1 or rev2 or any of
829           the revisions in between.   For  example,  the  command  cvs  admin
830           -oR_1_01:R_1_02  .  is rarely useful.  It means to delete revisions
831           up to, and including, the tag R_1_02.  But beware!   If  there  are
832           files that have not changed between R_1_02 and R_1_03 the file will
833           have the same numerical revision number assigned to the tags R_1_02
834           and  R_1_03.  So not only will it be impossible to retrieve R_1_02;
835           R_1_03 will also have to be restored from the tapes!  In most cases
836           you want to specify rev1::rev2 instead.
837
838
839         :rev
840
841           Delete revisions from the beginning of the branch containing rev up
842           to and including rev.
843
844
845         rev:
846
847           Delete revisions from revision rev, including rev  itself,  to  the
848           end of the branch containing rev.
849
850           None of the revisions to be deleted may have branches or locks.
851
852           If  any of the revisions to be deleted have symbolic names, and one
853           specifies one of the :: syntaxes, then cvs will give an  error  and
854           not  delete  any  revisions.  If you really want to delete both the
855           symbolic names and the revisions, first delete the  symbolic  names
856           with  cvs  tag  -d,  then  run  cvs admin -o.  If one specifies the
857           non-:: syntaxes, then cvs will delete the revisions but  leave  the
858           symbolic names pointing to nonexistent revisions.  This behavior is
859           preserved for compatibility with  previous  versions  of  cvs,  but
860           because  it  isn't  very  useful, in the future it may change to be
861           like the :: case.
862
863           Due to the way cvs handles branches rev cannot be specified symbol‐
864           ically  if  it  is a branch.  See `Magic branch numbers' in the CVS
865           manual for an explanation.
866
867           Make sure that no-one has checked out a copy of  the  revision  you
868           outdate.   Strange  things  will happen if he starts to edit it and
869           tries to check it back in.  For this reason, this option is  not  a
870           good way to take back a bogus commit; commit a new revision undoing
871           the bogus change instead (see node `Merging two revisions'  in  the
872           CVS manual).
873
874
875
876       -q
877
878         Run quietly; do not print diagnostics.
879
880
881
882       -sstate[:rev]
883
884         Useful  with  cvs.   Set  the  state attribute of the revision rev to
885         state.  If rev is a branch number, assume the latest revision on that
886         branch.  If rev is omitted, assume the latest revision on the default
887         branch.  Any identifier is acceptable for state.   A  useful  set  of
888         states  is  Exp  (for  experimental), Stab (for stable), and Rel (for
889         released).  By default, the state of a new revision  is  set  to  Exp
890         when  it is created.  The state is visible in the output from cvs log
891         (see node `log' in the CVS manual), and in the $Log$ and $State$ key‐
892         words (see node `Keyword substitution' in the CVS manual).  Note that
893         cvs uses the dead state for its own purposes (see node `Attic' in the
894         CVS  manual);  to  take a file to or from the dead state use commands
895         like cvs remove and cvs add (see node `Adding and  removing'  in  the
896         CVS manual), not cvs admin -s.
897
898
899
900       -t[file]
901
902         Useful  with  cvs.   Write  descriptive text from the contents of the
903         named file into the RCS file, deleting the existing text.   The  file
904         pathname  may  not begin with -.  The descriptive text can be seen in
905         the output from cvs log (see node `log' in the  CVS  manual).   There
906         can be no space between -t and its argument.
907
908         If  file  is omitted, obtain the text from standard input, terminated
909         by end-of-file or by a line containing . by itself.  Prompt  for  the
910         text if interaction is possible; see -I.
911
912
913
914       -t-string
915
916         Similar  to  -tfile.  Write descriptive text from the string into the
917         rcs file, deleting the existing text.  There can be no space  between
918         -t and its argument.
919
920
921
922       -U
923
924         Set  locking  to non-strict.  Non-strict locking means that the owner
925         of a file need not lock a revision for checkin.  For  use  with  cvs,
926         strict  locking  must  be set; see the discussion under the -l option
927         above.
928
929
930
931       -u[rev]
932
933         See the option -l above, for a discussion of using this  option  with
934         cvs.   Unlock  the  revision  with number rev.  If a branch is given,
935         unlock the latest revision on that branch.  If rev is omitted, remove
936         the  latest  lock held by the caller.  Normally, only the locker of a
937         revision may unlock it; somebody else unlocking a revision breaks the
938         lock.   This causes the original locker to be sent a commit notifica‐
939         tion (see node `Getting Notified' in the CVS manual).  There  can  be
940         no space between -u and its argument.
941
942
943
944       -Vn
945
946         In  previous  versions of cvs, this option meant to write an rcs file
947         which would be acceptable to rcs version n, but it  is  now  obsolete
948         and specifying it will produce an error.
949
950
951
952       -xsuffixes
953
954         In previous versions of cvs, this was documented as a way of specify‐
955         ing the names of the rcs files.  However,  cvs  has  always  required
956         that  the  rcs  files used by cvs end in ,v, so this option has never
957         done anything useful.
958
959
960

annotate

962   What revision modified each line of a file?
963       · Synopsis: annotate [options] files...
964
965       · Requires: repository.
966
967       · Synonym: blame
968
969       · Changes: nothing.
970
971         For each file in  files,  print  the  head  revision  of  the  trunk,
972         together with information on the last modification for each line.
973
974

annotate options

976       These  standard  options  are  supported  by annotate (see node `Common
977       options' in the CVS manual for a complete description of them):
978
979
980
981       -l
982
983         Local directory only, no recursion.
984
985
986
987       -R
988
989         Process directories recursively.
990
991
992
993       -f
994
995         Use head revision if tag/date not found.
996
997
998
999       -F
1000
1001         Annotate binary files.
1002
1003
1004
1005       -r revision
1006
1007         Annotate file as of specified revision/tag.
1008
1009
1010
1011       -D date
1012
1013         Annotate file as of specified date.
1014
1015

annotate example

1017       For example:
1018
1019
1020         $ cvs annotate ssfile
1021         Annotations for ssfile
1022         ***************
1023         1.1          (mary     27-Mar-96): ssfile line 1
1024         1.2          (joe      28-Mar-96): ssfile line 2
1025
1026
1027
1028
1029       The file ssfile currently contains two lines.  The ssfile line  1  line
1030       was  checked  in  by  mary on March 27.  Then, on March 28, joe added a
1031       line ssfile line 2, without modifying the ssfile  line  1  line.   This
1032       report doesn't tell you anything about lines which have been deleted or
1033       replaced; you need to use cvs diff for that (see node `diff' in the CVS
1034       manual).
1035
1036       The  options  to  cvs  annotate are listed in `Invoking CVS' in the CVS
1037       manual, and can be used to select the files and revisions to  annotate.
1038       The  options are described in more detail there and in `Common options'
1039       in the CVS manual.
1040
1041

checkout

1043   Check out sources for editing
1044       · Synopsis: checkout [options] modules...
1045
1046       · Requires: repository.
1047
1048       · Changes: working directory.
1049
1050       · Synonyms: co, get
1051
1052         Create or update a working directory containing copies of the  source
1053         files  specified  by modules.  You must execute checkout before using
1054         most of the other cvs commands, since most of them  operate  on  your
1055         working directory.
1056
1057         The  modules  are either symbolic names for some collection of source
1058         directories and files, or paths to directories or files in the repos‐
1059         itory.   The  symbolic  names  are  defined in the modules file.  See
1060         `modules' in the CVS manual.
1061
1062         Depending on the modules you specify, checkout may recursively create
1063         directories and populate them with the appropriate source files.  You
1064         can then edit these source files at any time (regardless  of  whether
1065         other  software  developers  are  editing  their  own  copies  of the
1066         sources); update them to include new changes applied by others to the
1067         source  repository;  or commit your work as a permanent change to the
1068         source repository.
1069
1070         Note that checkout is used  to  create  directories.   The  top-level
1071         directory  created is always added to the directory where checkout is
1072         invoked, and usually has the same name as the specified  module.   In
1073         the case of a module alias, the created sub-directory may have a dif‐
1074         ferent name, but you can be sure that it will be a sub-directory, and
1075         that  checkout will show the relative path leading to each file as it
1076         is extracted into your private work area (unless you specify  the  -Q
1077         global option).
1078
1079         The  files  created by checkout are created read-write, unless the -r
1080         option to cvs (see node `Global options' in the CVS manual) is speci‐
1081         fied,  the CVSREAD environment variable is specified (see node `Envi‐
1082         ronment variables' in the CVS manual), or a watch is  in  effect  for
1083         that file (see node `Watches' in the CVS manual).
1084
1085         Note that running checkout on a directory that was already built by a
1086         prior checkout is also permitted.  This is similar to specifying  the
1087         -d  option  to  the  update command in the sense that new directories
1088         that have been created in the repository will  appear  in  your  work
1089         area.   However,  checkout takes a module name whereas update takes a
1090         directory name.  Also to use checkout this way it must  be  run  from
1091         the  top level directory (where you originally ran checkout from), so
1092         before you run checkout to update an existing directory, don't forget
1093         to change your directory to the top level directory.
1094
1095         For  the  output  produced  by the checkout command, see node `update
1096         output' in the CVS manual.
1097
1098

checkout options

1100       These standard options are supported  by  checkout  (see  node  `Common
1101       options' in the CVS manual for a complete description of them):
1102
1103
1104
1105       -D date
1106
1107         Use  the  most  recent  revision  no later than date.  This option is
1108         sticky, and implies -P.  See `Sticky tags' in the CVS manual for more
1109         information on sticky tags/dates.
1110
1111
1112
1113       -f
1114
1115         Only  useful  with the -D date or -r tag flags.  If no matching revi‐
1116         sion is found, retrieve the most recent revision (instead of ignoring
1117         the file).
1118
1119
1120
1121       -k kflag
1122
1123         Process  keywords  according to kflag.  See `Keyword substitution' in
1124         the CVS manual.  This option is sticky; future updates of  this  file
1125         in  this  working directory will use the same kflag.  The status com‐
1126         mand can be viewed to see the sticky options.  See `Invoking CVS'  in
1127         the CVS manual for more information on the status command.
1128
1129
1130
1131       -l
1132
1133         Local; run only in current working directory.
1134
1135
1136
1137       -n
1138
1139         Do  not  run any checkout program (as specified with the -o option in
1140         the modules file; see node `modules' in the CVS manual).
1141
1142
1143
1144       -P
1145
1146         Prune empty directories.  See `Moving directories' in the CVS manual.
1147
1148
1149
1150       -p
1151
1152         Pipe files to the standard output.
1153
1154
1155
1156       -R
1157
1158         Checkout directories recursively.  This option is on by default.
1159
1160
1161
1162       -r tag
1163
1164         Use revision tag.  This  option  is  sticky,  and  implies  -P.   See
1165         `Sticky  tags'  in  the  CVS  manual,  for more information on sticky
1166         tags/dates.
1167
1168         In addition to those, you can use these special command options  with
1169         checkout:
1170
1171
1172
1173       -A
1174
1175         Reset  any  sticky tags, dates, or -k options.  Does not reset sticky
1176         -k options on modified files.  See `Sticky tags' in  the  CVS  manual
1177         for more information on sticky tags/dates.
1178
1179
1180
1181       -c
1182
1183         Copy the module file, sorted, to the standard output, instead of cre‐
1184         ating or modifying any files or directories in  your  working  direc‐
1185         tory.
1186
1187
1188
1189       -d dir
1190
1191         Create a directory called dir for the working files, instead of using
1192         the module name.  In general, using this flag is equivalent to  using
1193         mkdir  dir;  cd  dir  followed by the checkout command without the -d
1194         flag.
1195
1196         There is an important exception, however.  It is very convenient when
1197         checking  out  a single item to have the output appear in a directory
1198         that doesn't contain empty intermediate directories.   In  this  case
1199         only,  cvs tries to ``shorten'' pathnames to avoid those empty direc‐
1200         tories.
1201
1202         For example, given a module foo that contains  the  file  bar.c,  the
1203         command  cvs  co -d dir foo will create directory dir and place bar.c
1204         inside.  Similarly, given a module bar  which  has  subdirectory  baz
1205         wherein  there  is  a  file quux.c, the command cvs co -d dir bar/baz
1206         will create directory dir and place quux.c inside.
1207
1208         Using the -N flag will defeat this behavior.  Given the  same  module
1209         definitions  above,  cvs  co  -N  -d  dir foo will create directories
1210         dir/foo and place bar.c inside, while cvs co -N -d dir  bar/baz  will
1211         create directories dir/bar/baz and place quux.c inside.
1212
1213
1214
1215       -j tag
1216
1217         With  two  -j options, merge changes from the revision specified with
1218         the first -j option to the  revision  specified  with  the  second  j
1219         option, into the working directory.
1220
1221         With  one  -j option, merge changes from the ancestor revision to the
1222         revision specified with the -j option, into  the  working  directory.
1223         The  ancestor  revision  is the common ancestor of the revision which
1224         the working directory is based on, and the revision specified in  the
1225         -j option.
1226
1227         In  addition,  each -j option can contain an optional date specifica‐
1228         tion which, when used with branches, can limit the chosen revision to
1229         one  within a specific date.  An optional date is specified by adding
1230         a colon (:) to the tag: -jSymbolic_Tag:Date_Specifier.
1231
1232         See `Branching and merging' in the CVS manual.
1233
1234
1235
1236       -N
1237
1238         Only useful together with -d dir.  With this  option,  cvs  will  not
1239         ``shorten'' module paths in your working directory when you check out
1240         a single module.  See the -d flag for examples and a discussion.
1241
1242
1243
1244       -s
1245
1246         Like -c, but include the status of all modules, and sort  it  by  the
1247         status  string.   See `modules' in the CVS manual, for info about the
1248         -s option that is used inside the modules file to set the module sta‐
1249         tus.
1250
1251

checkout examples

1253       Get a copy of the module tc:
1254
1255
1256         $ cvs checkout tc
1257
1258
1259
1260
1261       Get a copy of the module tc as it looked one day ago:
1262
1263
1264         $ cvs checkout -D yesterday tc
1265
1266
1267
1268
1269

commit

1271   Check files into the repository
1272       · Synopsis:  commit  [-lRf]  [-m 'log_message' | -F file] [-r revision]
1273         [files...]
1274
1275       · Requires: working directory, repository.
1276
1277       · Changes: repository.
1278
1279       · Synonym: ci
1280
1281         Use commit when you want to incorporate  changes  from  your  working
1282         source files into the source repository.
1283
1284         If  you don't specify particular files to commit, all of the files in
1285         your working current directory are examined.  commit  is  careful  to
1286         change  in  the  repository  only  those  files  that you have really
1287         changed.  By default (or if you explicitly specify  the  -R  option),
1288         files  in subdirectories are also examined and committed if they have
1289         changed; you can use the -l option to limit  commit  to  the  current
1290         directory only.
1291
1292         commit  verifies that the selected files are up to date with the cur‐
1293         rent revisions in the source repository; it will notify you, and exit
1294         without  committing,  if any of the specified files must be made cur‐
1295         rent first with update (see node `update' in the CVS manual).  commit
1296         does  not call the update command for you, but rather leaves that for
1297         you to do when the time is right.
1298
1299         When all is well, an editor is invoked to allow you to  enter  a  log
1300         message  that  will  be  written to one or more logging programs (see
1301         node `modules' in the CVS manual, and see node `loginfo' in  the  CVS
1302         manual)  and  placed in the rcs file inside the repository.  This log
1303         message can be retrieved with the log command; see node `log' in  the
1304         CVS manual.  You can specify the log message on the command line with
1305         the -m message option, and thus avoid the editor invocation,  or  use
1306         the -F file option to specify that the argument file contains the log
1307         message.
1308
1309

commit options

1311       These standard options  are  supported  by  commit  (see  node  `Common
1312       options' in the CVS manual for a complete description of them):
1313
1314
1315
1316       -l
1317
1318         Local; run only in current working directory.
1319
1320
1321
1322       -R
1323
1324         Commit directories recursively.  This is on by default.
1325
1326
1327
1328       -r revision
1329
1330         Commit  to revision.  revision must be either a branch, or a revision
1331         on the main trunk that is higher than any  existing  revision  number
1332         (see  node `Assigning revisions' in the CVS manual).  You cannot com‐
1333         mit to a specific revision on a branch.
1334
1335         commit also supports these options:
1336
1337
1338
1339       -F file
1340
1341         Read the log message from file, instead of invoking an editor.
1342
1343
1344
1345       -f
1346
1347         Note that this is not the standard  behavior  of  the  -f  option  as
1348         defined in `Common options' in the CVS manual.
1349
1350         Force  cvs  to  commit  a  new  revision even if you haven't made any
1351         changes to the file.  If the current revision of file  is  1.7,  then
1352         the following two commands are equivalent:
1353
1354
1355           $ cvs commit -f file
1356           $ cvs commit -r 1.8 file
1357
1358
1359
1360
1361         The -f option disables recursion (i.e., it implies -l).  To force cvs
1362         to commit a new revision for all files  in  all  subdirectories,  you
1363         must use -f -R.
1364
1365
1366
1367       -m message
1368
1369         Use message as the log message, instead of invoking an editor.
1370
1371

commit examples

1373   Committing to a branch
1374       You  can  commit  to  a branch revision (one that has an even number of
1375       dots) with the -r option.  To create a  branch  revision,  use  the  -b
1376       option of the rtag or tag commands (see node `Branching and merging' in
1377       the CVS manual).  Then, either checkout or update can be used  to  base
1378       your sources on the newly created branch.  From that point on, all com‐
1379       mit changes made within these working  sources  will  be  automatically
1380       added  to  a branch revision, thereby not disturbing main-line develop‐
1381       ment in any way.  For example, if you had to create a patch to the  1.2
1382       version  of  the  product, even though the 2.0 version is already under
1383       development, you might do:
1384
1385
1386         $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
1387         $ cvs checkout -r FCS1_2_Patch product_module
1388         $ cd product_module
1389         [[ hack away ]]
1390         $ cvs commit
1391
1392
1393
1394
1395       This works automatically since the -r option is sticky.
1396
1397
1398   Creating the branch after editing
1399       Say you have been working  on  some  extremely  experimental  software,
1400       based on whatever revision you happened to checkout last week.  If oth‐
1401       ers in your group would like to work on this  software  with  you,  but
1402       without  disturbing main-line development, you could commit your change
1403       to a new branch.  Others can then checkout your experimental stuff  and
1404       utilize  the  full  benefit  of  cvs conflict resolution.  The scenario
1405       might look like:
1406
1407
1408         [[ hacked sources are present ]]
1409         $ cvs tag -b EXPR1
1410         $ cvs update -r EXPR1
1411         $ cvs commit
1412
1413
1414
1415
1416       The update command will make the -r EXPR1 option sticky on  all  files.
1417       Note that your changes to the files will never be removed by the update
1418       command.  The commit will automatically commit to the  correct  branch,
1419       because the -r is sticky.  You could also do like this:
1420
1421
1422         [[ hacked sources are present ]]
1423         $ cvs tag -b EXPR1
1424         $ cvs commit -r EXPR1
1425
1426
1427
1428
1429       but  then,  only  those files that were changed by you will have the -r
1430       EXPR1 sticky flag.  If you hack away, and commit without specifying the
1431       -r EXPR1 flag, some files may accidentally end up on the main trunk.
1432
1433       To work with you on the experimental change, others would simply do
1434
1435
1436         $ cvs checkout -r EXPR1 whatever_module
1437
1438
1439
1440
1441

diff

1443   Show differences between revisions
1444       · Synopsis:  diff  [-lR]  [-k  kflag]  [format_options]  [[-r rev1 | -D
1445         date1] [-r rev2 |  -D date2]] [files...]
1446
1447       · Requires: working directory, repository.
1448
1449       · Changes: nothing.
1450
1451         The diff command is used to compare  different  revisions  of  files.
1452         The  default  action  is to compare your working files with the revi‐
1453         sions they were based on, and report any differences that are found.
1454
1455         If any file names are given, only those files are compared.   If  any
1456         directories are given, all files under them will be compared.
1457
1458         The  exit  status  for diff is different than for other cvs commands;
1459         for details see node `Exit status' in the CVS manual.
1460
1461

diff options

1463       These standard options are supported by diff (see node `Common options'
1464       in the CVS manual for a complete description of them):
1465
1466
1467
1468       -D date
1469
1470         Use the most recent revision no later than date.  See -r for how this
1471         affects the comparison.
1472
1473
1474
1475       -k kflag
1476
1477         Process keywords according to kflag.  See `Keyword  substitution'  in
1478         the CVS manual.
1479
1480
1481
1482       -l
1483
1484         Local; run only in current working directory.
1485
1486
1487
1488       -R
1489
1490         Examine directories recursively.  This option is on by default.
1491
1492
1493
1494       -r tag
1495
1496         Compare  with  revision  tag.   Zero,  one  or  two -r options can be
1497         present.  With no -r option, the working file will be  compared  with
1498         the  revision  it  was  based on.  With one -r, that revision will be
1499         compared to your current working file.  With two -r options those two
1500         revisions will be compared (and your working file will not affect the
1501         outcome in any way).
1502
1503         One or both -r options can be replaced by a -D date option, described
1504         above.
1505
1506         The  following  options  specify the format of the output.  They have
1507         the same meaning as in GNU diff.  Most options  have  two  equivalent
1508         names,  one  of which is a single letter preceded by -, and the other
1509         of which is a long name preceded by --.
1510
1511
1512
1513       -lines
1514
1515         Show lines (an integer) lines of context.  This option does not spec‐
1516         ify  an  output  format by itself; it has no effect unless it is com‐
1517         bined with -c or -u.  This option is obsolete.  For proper operation,
1518         patch typically needs at least two lines of context.
1519
1520
1521
1522       -a
1523
1524         Treat  all  files as text and compare them line-by-line, even if they
1525         do not seem to be text.
1526
1527
1528
1529       -b
1530
1531         Ignore trailing white space and consider all other sequences  of  one
1532         or more white space characters to be equivalent.
1533
1534
1535
1536       -B
1537
1538         Ignore changes that just insert or delete blank lines.
1539
1540
1541
1542       --binary
1543
1544         Read and write data in binary mode.
1545
1546
1547
1548       --brief
1549
1550         Report  only whether the files differ, not the details of the differ‐
1551         ences.
1552
1553
1554
1555       -c
1556
1557         Use the context output format.
1558
1559
1560
1561       -C lines
1562
1563
1564
1565
1566       --context[=lines]
1567
1568         Use the context output format, showing lines (an  integer)  lines  of
1569         context, or three if lines is not given.  For proper operation, patch
1570         typically needs at least two lines of context.
1571
1572
1573
1574       --changed-group-format=format
1575
1576         Use format to output a line group  containing  differing  lines  from
1577         both  files  in if-then-else format.  See `Line group formats' in the
1578         CVS manual.
1579
1580
1581
1582       -d
1583
1584         Change the algorithm to perhaps find a smaller set of changes.   This
1585         makes diff slower (sometimes much slower).
1586
1587
1588
1589       -e
1590
1591
1592
1593
1594       --ed
1595
1596         Make output that is a valid ed script.
1597
1598
1599
1600       --expand-tabs
1601
1602         Expand  tabs  to  spaces  in the output, to preserve the alignment of
1603         tabs in the input files.
1604
1605
1606
1607       -f
1608
1609         Make output that looks vaguely like an ed script but has  changes  in
1610         the order they appear in the file.
1611
1612
1613
1614       -F regexp
1615
1616         In  context  and  unified  format, for each hunk of differences, show
1617         some of the last preceding line that matches regexp.
1618
1619
1620
1621       --forward-ed
1622
1623         Make output that looks vaguely like an ed script but has  changes  in
1624         the order they appear in the file.
1625
1626
1627
1628       -H
1629
1630         Use  heuristics  to  speed handling of large files that have numerous
1631         scattered small changes.
1632
1633
1634
1635       --horizon-lines=lines
1636
1637         Do not discard the last lines lines of  the  common  prefix  and  the
1638         first lines lines of the common suffix.
1639
1640
1641
1642       -i
1643
1644         Ignore changes in case; consider upper- and lower-case letters equiv‐
1645         alent.
1646
1647
1648
1649       -I regexp
1650
1651         Ignore changes that just insert or delete lines that match regexp.
1652
1653
1654
1655       --ifdef=name
1656
1657         Make merged if-then-else output using name.
1658
1659
1660
1661       --ignore-all-space
1662
1663         Ignore white space when comparing lines.
1664
1665
1666
1667       --ignore-blank-lines
1668
1669         Ignore changes that just insert or delete blank lines.
1670
1671
1672
1673       --ignore-case
1674
1675         Ignore changes in case; consider upper-  and  lower-case  to  be  the
1676         same.
1677
1678
1679
1680       --ignore-matching-lines=regexp
1681
1682         Ignore changes that just insert or delete lines that match regexp.
1683
1684
1685
1686       --ignore-space-change
1687
1688         Ignore  trailing  white space and consider all other sequences of one
1689         or more white space characters to be equivalent.
1690
1691
1692
1693       --initial-tab
1694
1695         Output a tab rather than a space before the text of a line in  normal
1696         or  context format.  This causes the alignment of tabs in the line to
1697         look normal.
1698
1699
1700
1701       -L label
1702
1703         Use label instead of the file name in the context format and  unified
1704         format headers.
1705
1706
1707
1708       --label=label
1709
1710         Use  label instead of the file name in the context format and unified
1711         format headers.
1712
1713
1714
1715       --left-column
1716
1717         Print only the left column of two common lines in side by  side  for‐
1718         mat.
1719
1720
1721
1722       --line-format=format
1723
1724         Use  format  to  output  all input lines in if-then-else format.  See
1725         `Line formats' in the CVS manual.
1726
1727
1728
1729       --minimal
1730
1731         Change the algorithm to perhaps find a smaller set of changes.   This
1732         makes diff slower (sometimes much slower).
1733
1734
1735
1736       -n
1737
1738         Output  RCS-format  diffs; like -f except that each command specifies
1739         the number of lines affected.
1740
1741
1742
1743       -N
1744
1745
1746
1747
1748       --new-file
1749
1750         In directory comparison, if a file is found in  only  one  directory,
1751         treat it as present but empty in the other directory.
1752
1753
1754
1755       --new-group-format=format
1756
1757         Use format to output a group of lines taken from just the second file
1758         in if-then-else format.  See `Line group formats' in the CVS manual.
1759
1760
1761
1762       --new-line-format=format
1763
1764         Use format to output a line taken from just the second  file  in  if-
1765         then-else format.  See `Line formats' in the CVS manual.
1766
1767
1768
1769       --old-group-format=format
1770
1771         Use  format to output a group of lines taken from just the first file
1772         in if-then-else format.  See `Line group formats' in the CVS manual.
1773
1774
1775
1776       --old-line-format=format
1777
1778         Use format to output a line taken from just the  first  file  in  if-
1779         then-else format.  See `Line formats' in the CVS manual.
1780
1781
1782
1783       -p
1784
1785         Show which C function each change is in.
1786
1787
1788
1789       --rcs
1790
1791         Output  RCS-format  diffs; like -f except that each command specifies
1792         the number of lines affected.
1793
1794
1795
1796       --report-identical-files
1797
1798
1799
1800
1801       -s
1802
1803         Report when two files are the same.
1804
1805
1806
1807       --show-c-function
1808
1809         Show which C function each change is in.
1810
1811
1812
1813       --show-function-line=regexp
1814
1815         In context and unified format, for each  hunk  of  differences,  show
1816         some of the last preceding line that matches regexp.
1817
1818
1819
1820       --side-by-side
1821
1822         Use the side by side output format.
1823
1824
1825
1826       --speed-large-files
1827
1828         Use  heuristics  to  speed handling of large files that have numerous
1829         scattered small changes.
1830
1831
1832
1833       --suppress-common-lines
1834
1835         Do not print common lines in side by side format.
1836
1837
1838
1839       -t
1840
1841         Expand tabs to spaces in the output, to  preserve  the  alignment  of
1842         tabs in the input files.
1843
1844
1845
1846       -T
1847
1848         Output  a tab rather than a space before the text of a line in normal
1849         or context format.  This causes the alignment of tabs in the line  to
1850         look normal.
1851
1852
1853
1854       --text
1855
1856         Treat  all  files as text and compare them line-by-line, even if they
1857         do not appear to be text.
1858
1859
1860
1861       -u
1862
1863         Use the unified output format.
1864
1865
1866
1867       --unchanged-group-format=format
1868
1869         Use format to output a group of common lines taken from both files in
1870         if-then-else  format.   see node `Line group formats' in the CVS man‐
1871         ual.
1872
1873
1874
1875       --unchanged-line-format=format
1876
1877         Use format to output a line common to both files in if-then-else for‐
1878         mat.  see node `Line formats' in the CVS manual.
1879
1880
1881
1882       -U lines
1883
1884
1885
1886
1887       --unified[=lines]
1888
1889         Use  the  unified  output format, showing lines (an integer) lines of
1890         context, or three if lines is not given.  For proper operation, patch
1891         typically needs at least two lines of context.
1892
1893
1894
1895       -w
1896
1897         Ignore white space when comparing lines.
1898
1899
1900
1901       -W columns
1902
1903
1904
1905
1906       --width=columns
1907
1908         Use an output width of columns in side by side format.
1909
1910
1911
1912       -y
1913
1914         Use the side by side output format.
1915
1916

Line group formats

1918       Line  group  formats let you specify formats suitable for many applica‐
1919       tions that allow if-then-else input,  including  programming  languages
1920       and  text formatting languages.  A line group format specifies the out‐
1921       put format for a contiguous group of similar lines.
1922
1923       For example, the following command compares the TeX  file  myfile  with
1924       the  original version from the repository, and outputs a merged file in
1925       which old regions are surrounded by \begin{em}-\end{em} lines, and  new
1926       regions are surrounded by \begin{bf}-\end{bf} lines.
1927
1928
1929         cvs diff \
1930
1931            --old-group-format='\begin{em}
1932         %<\end{em}
1933         ' \
1934
1935            --new-group-format='\begin{bf}
1936         %>\end{bf}
1937         ' \
1938
1939            myfile
1940
1941
1942
1943
1944       The  following  command is equivalent to the above example, but it is a
1945       little more verbose, because it spells out the default line group  for‐
1946       mats.
1947
1948
1949         cvs diff \
1950
1951            --old-group-format='\begin{em}
1952         %<\end{em}
1953         ' \
1954
1955            --new-group-format='\begin{bf}
1956         %>\end{bf}
1957         ' \
1958
1959            --unchanged-group-format='%=' \
1960
1961            --changed-group-format='\begin{em}
1962         %<\end{em}
1963         \begin{bf}
1964         %>\end{bf}
1965         ' \
1966
1967            myfile
1968
1969
1970
1971
1972       Here  is  a  more  advanced  example, which outputs a diff listing with
1973       headers containing line numbers in a ``plain English'' style.
1974
1975
1976         cvs diff \
1977
1978            --unchanged-group-format='' \
1979
1980            --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
1981         %<' \
1982
1983            --new-group-format='-------- %dN line%(N=1?:s) added after %de:
1984         %>' \
1985
1986            --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
1987         %<-------- to:
1988         %>' \
1989
1990            myfile
1991
1992
1993
1994
1995       To specify a line group format, use one of the  options  listed  below.
1996       You  can  specify  up  to four line group formats, one for each kind of
1997       line group.  You should quote format,  because  it  typically  contains
1998       shell metacharacters.
1999
2000
2001
2002       --old-group-format=format
2003
2004         These  line  groups  are  hunks  containing only lines from the first
2005         file.  The default old group format is the same as the changed  group
2006         format  if it is specified; otherwise it is a format that outputs the
2007         line group as-is.
2008
2009
2010
2011       --new-group-format=format
2012
2013         These line groups are hunks containing only  lines  from  the  second
2014         file.  The default new group format is same as the changed group for‐
2015         mat if it is specified; otherwise it is a  format  that  outputs  the
2016         line group as-is.
2017
2018
2019
2020       --changed-group-format=format
2021
2022         These  line  groups  are hunks containing lines from both files.  The
2023         default changed group format is the concatenation of the old and  new
2024         group formats.
2025
2026
2027
2028       --unchanged-group-format=format
2029
2030         These  line  groups  contain lines common to both files.  The default
2031         unchanged group format is a format that outputs the line group as-is.
2032
2033         In a line group format,  ordinary  characters  represent  themselves;
2034         conversion  specifications start with % and have one of the following
2035         forms.
2036
2037
2038
2039       %<
2040
2041         stands for the lines from the first file, including the trailing new‐
2042         line.   Each  line is formatted according to the old line format (see
2043         node `Line formats' in the CVS manual).
2044
2045
2046
2047       %>
2048
2049         stands for the lines from the second  file,  including  the  trailing
2050         newline.  Each line is formatted according to the new line format.
2051
2052
2053
2054       %=
2055
2056         stands  for  the  lines  common to both files, including the trailing
2057         newline.  Each line is formatted according to the unchanged line for‐
2058         mat.
2059
2060
2061
2062       %%
2063
2064         stands for %.
2065
2066
2067
2068       %c'C'
2069
2070         where  C  is  a single character, stands for C.  C may not be a back‐
2071         slash or an apostrophe.  For example, %c':' stands for a colon,  even
2072         inside  the  then-part of an if-then-else format, which a colon would
2073         normally terminate.
2074
2075
2076
2077       %c'\O'
2078
2079         where O is a string of 1, 2, or 3 octal digits, stands for the  char‐
2080         acter with octal code O.  For example, %c'\0' stands for a null char‐
2081         acter.
2082
2083
2084
2085       Fn
2086
2087         where F is a printf conversion specification and n is one of the fol‐
2088         lowing letters, stands for n's value formatted with F.
2089
2090
2091         e
2092
2093           The line number of the line just before the group in the old file.
2094
2095
2096         f
2097
2098           The  line  number  of  the first line in the group in the old file;
2099           equals e + 1.
2100
2101
2102         l
2103
2104           The line number of the last line in the group in the old file.
2105
2106
2107         m
2108
2109           The line number of the line just after the group in the  old  file;
2110           equals l + 1.
2111
2112
2113         n
2114
2115           The number of lines in the group in the old file; equals l - f + 1.
2116
2117
2118         E, F, L, M, N
2119
2120           Likewise, for lines in the new file.
2121
2122
2123           The printf conversion specification can be %d, %o, %x, or %X, spec‐
2124           ifying decimal, octal, lower case hexadecimal, or upper case  hexa‐
2125           decimal output respectively.  After the % the following options can
2126           appear in sequence: a - specifying left-justification;  an  integer
2127           specifying  the  minimum  field  width; and a period followed by an
2128           optional integer specifying the  minimum  number  of  digits.   For
2129           example,  %5dN  prints  the  number  of new lines in the group in a
2130           field of width 5 characters, using the printf format "%5d".
2131
2132
2133
2134       (A=B?T:E)
2135
2136         If A equals B then T else E.  A and B are each either a decimal  con‐
2137         stant  or  a single letter interpreted as above.  This format spec is
2138         equivalent to T if A's value equals B's; otherwise it  is  equivalent
2139         to E.
2140
2141         For example, %(N=0?no:%dN) line%(N=1?:s) is equivalent to no lines if
2142         N (the number of lines in the group in the new file) is 0, to 1  line
2143         if N is 1, and to %dN lines otherwise.
2144
2145

Line formats

2147       Line  formats  control how each line taken from an input file is output
2148       as part of a line group in if-then-else format.
2149
2150       For example, the following  command  outputs  text  with  a  one-column
2151       change  indicator  to the left of the text.  The first column of output
2152       is - for deleted lines, | for added lines, and a  space  for  unchanged
2153       lines.   The  formats  contain  newline  characters  where newlines are
2154       desired on output.
2155
2156
2157         cvs diff \
2158
2159            --old-line-format='-%l
2160         ' \
2161
2162            --new-line-format='|%l
2163         ' \
2164
2165            --unchanged-line-format=' %l
2166         ' \
2167
2168            myfile
2169
2170
2171
2172
2173       To specify a line format, use one of the following options.  You should
2174       quote format, since it often contains shell metacharacters.
2175
2176
2177
2178       --old-line-format=format
2179
2180         formats lines just from the first file.
2181
2182
2183
2184       --new-line-format=format
2185
2186         formats lines just from the second file.
2187
2188
2189
2190       --unchanged-line-format=format
2191
2192         formats lines common to both files.
2193
2194
2195
2196       --line-format=format
2197
2198         formats  all lines; in effect, it sets all three above options simul‐
2199         taneously.
2200
2201         In a line format, ordinary characters represent  themselves;  conver‐
2202         sion specifications start with % and have one of the following forms.
2203
2204
2205
2206       %l
2207
2208         stands  for  the contents of the line, not counting its trailing new‐
2209         line (if any).  This format ignores whether the line is incomplete.
2210
2211
2212
2213       %L
2214
2215         stands for the contents of the line, including its  trailing  newline
2216         (if  any).  If a line is incomplete, this format preserves its incom‐
2217         pleteness.
2218
2219
2220
2221       %%
2222
2223         stands for %.
2224
2225
2226
2227       %c'C'
2228
2229         where C is a single character, stands for C.  C may not  be  a  back‐
2230         slash or an apostrophe.  For example, %c':' stands for a colon.
2231
2232
2233
2234       %c'\O'
2235
2236         where  O is a string of 1, 2, or 3 octal digits, stands for the char‐
2237         acter with octal code O.  For example, %c'\0' stands for a null char‐
2238         acter.
2239
2240
2241
2242       Fn
2243
2244         where  F  is  a  printf conversion specification, stands for the line
2245         number formatted with F.  For example, %.5dn prints the  line  number
2246         using the printf format "%.5d".  see node `Line group formats' in the
2247         CVS manual, for more about printf conversion specifications.
2248
2249
2250         The default line format is %l followed by a newline character.
2251
2252         If the input contains tab characters and it is  important  that  they
2253         line  up  on output, you should ensure that %l or %L in a line format
2254         is just after a tab stop (e.g. by preceding %l or %L with a tab char‐
2255         acter), or you should use the -t or --expand-tabs option.
2256
2257         Taken  together, the line and line group formats let you specify many
2258         different formats.  For example, the following command uses a  format
2259         similar  to diff's normal format.  You can tailor this command to get
2260         fine control over diff's output.
2261
2262
2263         cvs diff \
2264
2265            --old-line-format='< %l
2266         ' \
2267
2268            --new-line-format='> %l
2269         ' \
2270
2271            --old-group-format='%df%(f=l?:,%dl)d%dE
2272         %<' \
2273
2274            --new-group-format='%dea%dF%(F=L?:,%dL)
2275         %>' \
2276
2277            --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
2278         %<—
2279         %>' \
2280
2281            --unchanged-group-format='' \
2282
2283            myfile
2284
2285
2286
2287
2288

diff examples

2290       The following line produces a Unidiff (-u flag) between  revision  1.14
2291       and  1.19  of  backend.c.   Due to the -kk flag no keywords are substi‐
2292       tuted, so differences that only  depend  on  keyword  substitution  are
2293       ignored.
2294
2295
2296         $ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
2297
2298
2299
2300
2301       Suppose  the  experimental  branch  EXPR1  was  based on a set of files
2302       tagged RELEASE_1_0.  To see what has happened on that branch, the  fol‐
2303       lowing can be used:
2304
2305
2306         $ cvs diff -r RELEASE_1_0 -r EXPR1
2307
2308
2309
2310
2311       A  command  like this can be used to produce a context diff between two
2312       releases:
2313
2314
2315         $ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
2316
2317
2318
2319
2320       If you are maintaining ChangeLogs, a command like  the  following  just
2321       before  you commit your changes may help you write the ChangeLog entry.
2322       All local modifications that  have  not  yet  been  committed  will  be
2323       printed.
2324
2325
2326         $ cvs diff -u | less
2327
2328
2329
2330
2331

export

2333   Export sources from CVS, similar to checkout
2334       · Synopsis:  export  [-flNnR] [-r rev|-D date] [-k subst] [-d dir] mod‐
2335         ule...
2336
2337       · Requires: repository.
2338
2339       · Changes: current directory.
2340
2341         This command is a variant of checkout; use it when you want a copy of
2342         the  source  for  module  without the cvs administrative directories.
2343         For example, you might use export to prepare source for shipment off-
2344         site.   This command requires that you specify a date or tag (with -D
2345         or -r), so that you can count on reproducing the source you  ship  to
2346         others (and thus it always prunes empty directories).
2347
2348         One  often  would  like  to use -kv with cvs export.  This causes any
2349         keywords to be expanded such that an import done at some  other  site
2350         will  not  lose  the keyword revision information.  But be aware that
2351         doesn't handle an export containing binary files correctly.  Also  be
2352         aware  that  after  having  used -kv, one can no longer use the ident
2353         command (which is part of the rcs suite—see ident(1)) which looks for
2354         keyword  strings.   If  you want to be able to use ident you must not
2355         use -kv.
2356
2357

export options

2359       These standard options  are  supported  by  export  (see  node  `Common
2360       options' in the CVS manual, for a complete description of them):
2361
2362
2363
2364       -D date
2365
2366         Use the most recent revision no later than date.
2367
2368
2369
2370       -f
2371
2372         If  no  matching revision is found, retrieve the most recent revision
2373         (instead of ignoring the file).
2374
2375
2376
2377       -l
2378
2379         Local; run only in current working directory.
2380
2381
2382
2383       -n
2384
2385         Do not run any checkout program.
2386
2387
2388
2389       -R
2390
2391         Export directories recursively.  This is on by default.
2392
2393
2394
2395       -r tag
2396
2397         Use revision tag.
2398
2399         In addition, these options (that are common to checkout  and  export)
2400         are also supported:
2401
2402
2403
2404       -d dir
2405
2406         Create a directory called dir for the working files, instead of using
2407         the module name.  See `checkout options' in the CVS manual  for  com‐
2408         plete details on how cvs handles this flag.
2409
2410
2411
2412       -k subst
2413
2414         Set  keyword expansion mode (see node `Substitution modes' in the CVS
2415         manual).
2416
2417
2418
2419       -N
2420
2421         Only useful together with -d dir.  See `checkout options' in the  CVS
2422         manual for complete details on how cvs handles this flag.
2423
2424

history

2426   Show status of files and users
2427       · Synopsis:     history [-report] [-flags] [-options args] [files...]
2428
2429       · Requires: the file $CVSROOT/CVSROOT/history
2430
2431       · Changes: nothing.
2432
2433         cvs  can  keep  a  history file that tracks each use of the checkout,
2434         commit, rtag, update, and release commands.  You can use  history  to
2435         display this information in various formats.
2436
2437         Logging  must  be  enabled by creating the file $CVSROOT/CVSROOT/his‐
2438         tory.
2439
2440         history uses -f, -l, -n, and -p in ways that conflict with the normal
2441         use inside cvs (see node `Common options' in the CVS manual).
2442
2443

history options

2445       Several  options (shown above as -report)  control  what kind of report
2446       is generated:
2447
2448
2449
2450       -c
2451
2452         Report on each time commit was used (i.e., each time  the  repository
2453         was modified).
2454
2455
2456
2457       -e
2458
2459         Everything  (all record types).  Equivalent to specifying -x with all
2460         record types.  Of course, -e will also include record types which are
2461         added  in  a future version of cvs; if you are writing a script which
2462         can only handle certain record types, you'll want to specify -x.
2463
2464
2465
2466       -m module
2467
2468         Report on a particular module.  (You can  meaningfully  use  -m  more
2469         than once on the command line.)
2470
2471
2472
2473       -o
2474
2475         Report on checked-out modules.  This is the default report type.
2476
2477
2478
2479       -T
2480
2481         Report on all tags.
2482
2483
2484
2485       -x type
2486
2487         Extract  a  particular set of record types type from the cvs history.
2488         The types are indicated by single letters, which you may  specify  in
2489         combination.
2490
2491         Certain commands have a single record type:
2492
2493
2494         F
2495
2496           release
2497
2498         O
2499
2500           checkout
2501
2502         E
2503
2504           export
2505
2506         T
2507
2508           rtag
2509
2510           One of five record types may result from an update:
2511
2512
2513         C
2514
2515           A  merge was necessary but collisions were detected (requiring man‐
2516           ual merging).
2517
2518         G
2519
2520           A merge was necessary and it succeeded.
2521
2522         U
2523
2524           A working file was copied from the repository.
2525
2526         P
2527
2528           A working file was patched to match the repository.
2529
2530         W
2531
2532           The working copy of a file was deleted during  update  (because  it
2533           was gone from the repository).
2534
2535           One of three record types results from commit:
2536
2537
2538         A
2539
2540           A file was added for the first time.
2541
2542         M
2543
2544           A file was modified.
2545
2546         R
2547
2548           A file was removed.
2549
2550           The  options shown as -flags constrain or expand the report without
2551           requiring option arguments:
2552
2553
2554
2555       -a
2556
2557         Show data for all users (the default is to show  data  only  for  the
2558         user executing history).
2559
2560
2561
2562       -l
2563
2564         Show last modification only.
2565
2566
2567
2568       -w
2569
2570         Show  only  the  records for modifications done from the same working
2571         directory where history is executing.
2572
2573         The options shown as -options args constrain the report based  on  an
2574         argument:
2575
2576
2577
2578       -b str
2579
2580         Show  data  back  to a record containing  the  string str  in  either
2581         the module name, the file name, or the repository path.
2582
2583
2584
2585       -D date
2586
2587         Show data since date.  This is slightly different from the normal use
2588         of -D date, which selects the newest revision older than date.
2589
2590
2591
2592       -f file
2593
2594         Show  data  for a particular file (you can specify several -f options
2595         on the same command line).  This is equivalent to specifying the file
2596         on the command line.
2597
2598
2599
2600       -n module
2601
2602         Show data for a particular module (you can specify several -n options
2603         on the same command line).
2604
2605
2606
2607       -p repository
2608
2609         Show data for a particular source repository  (you can  specify  sev‐
2610         eral -p options on the same command line).
2611
2612
2613
2614       -r rev
2615
2616         Show  records  referring to revisions since the revision or tag named
2617         rev appears in individual rcs files.  Each rcs file is  searched  for
2618         the revision or tag.
2619
2620
2621
2622       -t tag
2623
2624         Show  records since tag tag was last added to the history file.  This
2625         differs from the -r flag above in that  it  reads  only  the  history
2626         file, not the rcs files, and is much faster.
2627
2628
2629
2630       -u name
2631
2632         Show records for user name.
2633
2634
2635
2636       -z timezone
2637
2638         Show  times  in  the  selected  records using the specified time zone
2639         instead of UTC.
2640
2641

import

2643   Import sources into CVS, using vendor branches
2644       · Synopsis: import [-options] repository vendortag releasetag...
2645
2646       · Requires: Repository, source distribution directory.
2647
2648       · Changes: repository.
2649
2650         Use import to incorporate an entire source distribution from an  out‐
2651         side  source  (e.g.,  a  source  vendor)  into your source repository
2652         directory.  You can use this command both for initial creation  of  a
2653         repository,  and for wholesale updates to the module from the outside
2654         source.  See `Tracking sources' in the CVS manual for a discussion on
2655         this subject.
2656
2657         The repository argument gives a directory name (or a path to a direc‐
2658         tory) under the cvs root directory for repositories; if the directory
2659         did not exist, import creates it.
2660
2661         When  you  use import for updates to source that has been modified in
2662         your source repository (since a prior import), it will notify you  of
2663         any  files  that  conflict  in  the  two branches of development; use
2664         checkout -j to reconcile the differences, as import instructs you  to
2665         do.
2666
2667         If  cvs decides a file should be ignored (see node `cvsignore' in the
2668         CVS manual), it does not import it and  prints  I   followed  by  the
2669         filename  (see  node `import output' in the CVS manual for a complete
2670         description of the output).
2671
2672         If the file $CVSROOT/CVSROOT/cvswrappers exists, any file whose names
2673         match the specifications in that file will be treated as packages and
2674         the appropriate filtering will be  performed  on  the  file/directory
2675         before being imported.  See `Wrappers' in the CVS manual.
2676
2677         The  outside  source  is  saved  in  a first-level branch, by default
2678         1.1.1.  Updates are leaves of this branch; for  example,  files  from
2679         the  first  imported  collection  of source will be revision 1.1.1.1,
2680         then files from the first imported update will be  revision  1.1.1.2,
2681         and so on.
2682
2683         At least three arguments are required.  repository is needed to iden‐
2684         tify the collection of source.  vendortag is a  tag  for  the  entire
2685         branch  (e.g.,  for  1.1.1).   You  must  also  specify  at least one
2686         releasetag to uniquely identify the files at the leaves created  each
2687         time  you  execute  import.  The releasetag should be new, not previ‐
2688         ously existing in the repository  file,  and  uniquely  identify  the
2689         imported release,
2690
2691         Note  that  import  does not change the directory in which you invoke
2692         it.  In particular, it does not set up that directory as a cvs  work‐
2693         ing directory; if you want to work with the sources import them first
2694         and then check them out into a different directory (see node `Getting
2695         the source' in the CVS manual).
2696
2697

import options

2699       This  standard option is supported by import (see node `Common options'
2700       in the CVS manual for a complete description):
2701
2702
2703
2704       -m message
2705
2706         Use message as log information, instead of invoking an editor.
2707
2708         There are the following additional special options.
2709
2710
2711
2712       -b branch
2713
2714         See `Multiple vendor branches' in the CVS manual.
2715
2716
2717
2718       -d
2719
2720         Use each file's modification time as the time of import  rather  than
2721         the current time.
2722
2723
2724
2725       -k subst
2726
2727         Indicate the keyword expansion mode desired.  This setting will apply
2728         to all files created during the import, but not  to  any  files  that
2729         previously  existed  in  the repository.  See `Substitution modes' in
2730         the CVS manual for a list of valid -k settings.
2731
2732
2733
2734       -I name
2735
2736         Specify file names that should be ignored during import.  You can use
2737         this  option  repeatedly.   To  avoid ignoring any files at all (even
2738         those ignored by default), specify `-I !'.
2739
2740         name can be a file name pattern of the same type that you can specify
2741         in the .cvsignore file.  See `cvsignore' in the CVS manual.
2742
2743
2744
2745       -W spec
2746
2747         Specify  file  names  that should be filtered during import.  You can
2748         use this option repeatedly.
2749
2750         spec can be a file name pattern of the same type that you can specify
2751         in the .cvswrappers file. see node `Wrappers' in the CVS manual.
2752
2753

import output

2755       import  keeps  you informed of its progress by printing a line for each
2756       file, preceded by one character indicating the status of the file:
2757
2758
2759
2760       U file
2761
2762         The file already exists in the repository and has  not  been  locally
2763         modified; a new revision has been created (if necessary).
2764
2765
2766
2767       N file
2768
2769         The file is a new file which has been added to the repository.
2770
2771
2772
2773       C file
2774
2775         The  file already exists in the repository but has been locally modi‐
2776         fied; you will have to merge the changes.
2777
2778
2779
2780       I file
2781
2782         The file is being ignored (see node `cvsignore' in the CVS manual).
2783
2784
2785
2786       L file
2787
2788         The file is a symbolic link; cvs import ignores symbolic links.  Peo‐
2789         ple periodically suggest that this behavior should be changed, but if
2790         there is a consensus on what it should be changed to, it doesn't seem
2791         to  be apparent.  (Various options in the modules file can be used to
2792         recreate symbolic links on checkout, update, etc.; see node `modules'
2793         in the CVS manual.)
2794
2795

import examples

2797       See  `Tracking  sources' in the CVS manual, and `From files' in the CVS
2798       manual.
2799
2800

log

2802   Print out log information for files
2803       · Synopsis: log [options] [files...]
2804
2805       · Requires: repository, working directory.
2806
2807       · Changes: nothing.
2808
2809         Display log information for files.  log used to call the rcs  utility
2810         rlog.   Although  this is no longer true in the current sources, this
2811         history determines the format of the output and  the  options,  which
2812         are not quite in the style of the other cvs commands.
2813
2814         The  output  includes the location of the rcs file, the head revision
2815         (the latest revision on the trunk), all  symbolic  names  (tags)  and
2816         some  other  things.   For  each  revision,  the revision number, the
2817         author, the number of lines added/deleted and  the  log  message  are
2818         printed.   All  times  are  displayed  in  Coordinated Universal Time
2819         (UTC).  (Other parts of cvs print times in the local timezone).
2820
2821         log uses -R in a way that conflicts with the normal  use  inside  cvs
2822         (see node `Common options' in the CVS manual).
2823
2824

log options

2826       By  default,  log  prints all information that is available.  All other
2827       options restrict the output.  Note that the revision selection  options
2828       (-b,  -d, -r, -s, and -w) have no effect, other than possibly causing a
2829       search for files in Attic directories, when used  in  conjunction  with
2830       the options that restrict the output to only log header fields (-h, -R,
2831       and -t) unless the -S option is also specified.
2832
2833
2834
2835       -b
2836
2837         Print information about the revisions on the default branch, normally
2838         the highest branch on the trunk.
2839
2840
2841
2842       -d dates
2843
2844         Print  information  about  revisions  with a checkin date/time in the
2845         range given by the semicolon-separated list of dates.  The date  for‐
2846         mats  accepted  are those accepted by the -D option to many other cvs
2847         commands (see node `Common options' in the CVS manual).  Dates can be
2848         combined into ranges as follows:
2849
2850
2851         d1<d2
2852
2853
2854
2855         d2>d1
2856
2857           Select the revisions that were deposited between d1 and d2.
2858
2859
2860         <d
2861
2862
2863
2864         d>
2865
2866           Select all revisions dated d or earlier.
2867
2868
2869         d<
2870
2871
2872
2873         >d
2874
2875           Select all revisions dated d or later.
2876
2877
2878         d
2879
2880           Select the single, latest revision dated d or earlier.
2881
2882           The > or < characters may be followed by = to indicate an inclusive
2883           range rather than an exclusive one.
2884
2885           Note that the separator is a semicolon (;).
2886
2887
2888
2889       -h
2890
2891         Print only the name of the rcs file, name of the file in the  working
2892         directory,  head, default branch, access list, locks, symbolic names,
2893         and suffix.
2894
2895
2896
2897       -l
2898
2899         Local; run only in current working directory.   (Default  is  to  run
2900         recursively).
2901
2902
2903
2904       -N
2905
2906         Do not print the list of tags for this file.  This option can be very
2907         useful when your site uses a lot of tags, so rather  than  "more"'ing
2908         over  3  pages  of  tag information, the log information is presented
2909         without tags at all.
2910
2911
2912
2913       -n
2914
2915         Print the list of tags for this file. This option can be very  useful
2916         when  your .cvsrc file has a log -N entry as a way to get a full list
2917         of all of the tags.
2918
2919
2920
2921       -R
2922
2923         Print only the name of the rcs file.
2924
2925
2926
2927       -rrevisions
2928
2929         Print information about revisions given in the  comma-separated  list
2930         revisions  of revisions and ranges.  The following table explains the
2931         available range formats:
2932
2933
2934         rev1:rev2
2935
2936           Revisions rev1 to rev2 (which must be on the same branch).
2937
2938
2939         rev1::rev2
2940
2941           The same, but excluding rev1.
2942
2943
2944         :rev
2945
2946
2947
2948         ::rev
2949
2950           Revisions from the beginning of the branch up to and including rev.
2951
2952
2953         rev:
2954
2955           Revisions starting with rev to the end  of  the  branch  containing
2956           rev.
2957
2958
2959         rev::
2960
2961           Revisions starting just after rev to the end of the branch contain‐
2962           ing rev.
2963
2964
2965         branch
2966
2967           An argument that is a branch means all revisions on that branch.
2968
2969
2970         branch1:branch2
2971
2972
2973
2974         branch1::branch2
2975
2976           A range of branches means all revisions on  the  branches  in  that
2977           range.
2978
2979
2980         branch.
2981
2982           The latest revision in branch.
2983
2984           A  bare  -r  with  no  revisions  means  the latest revision on the
2985           default branch, normally the trunk.  There can be no space  between
2986           the -r option and its argument.
2987
2988
2989
2990       -S
2991
2992         Suppress the header if no revisions are selected.
2993
2994
2995
2996       -s states
2997
2998         Print information about revisions whose state attributes match one of
2999         the states given in  the  comma-separated  list  states.   Individual
3000         states  may  be  any  text  string, though cvs commonly only uses two
3001         states, Exp and dead.  See `admin options' in the CVS manual for more
3002         information.
3003
3004
3005
3006       -t
3007
3008         Print the same as -h, plus the descriptive text.
3009
3010
3011
3012       -wlogins
3013
3014         Print  information  about  revisions  checked  in by users with login
3015         names appearing in the comma-separated list  logins.   If  logins  is
3016         omitted,  the user's login is assumed.  There can be no space between
3017         the -w option and its argument.
3018
3019         log prints the  intersection  of  the  revisions  selected  with  the
3020         options  -d,  -s, and -w, intersected with the union of the revisions
3021         selected by -b and -r.
3022
3023

log examples

3025       Contributed examples are gratefully accepted.
3026
3027

rdiff

3029   'patch' format diffs between releases
3030       · rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules...
3031
3032       · Requires: repository.
3033
3034       · Changes: nothing.
3035
3036       · Synonym: patch
3037
3038         Builds a Larry Wall format patch(1) file between two  releases,  that
3039         can  be  fed  directly into the patch program to bring an old release
3040         up-to-date with the new release.  (This is one of the  few  cvs  com‐
3041         mands that operates directly from the repository, and doesn't require
3042         a prior checkout.) The diff output is sent  to  the  standard  output
3043         device.
3044
3045         You  can  specify (using the standard -r and -D options) any combina‐
3046         tion of one or two revisions or dates.  If only one revision or  date
3047         is  specified, the patch file reflects differences between that revi‐
3048         sion or date and the current head revisions in the rcs file.
3049
3050         Note that if the software release affected is contained in more  than
3051         one  directory,  then it may be necessary to specify the -p option to
3052         the patch command when patching the old sources,  so  that  patch  is
3053         able to find the files that are located in other directories.
3054
3055

rdiff options

3057       These  standard  options  are  supported  by  rdiff  (see  node `Common
3058       options' in the CVS manual for a complete description of them):
3059
3060
3061
3062       -D date
3063
3064         Use the most recent revision no later than date.
3065
3066
3067
3068       -f
3069
3070         If no matching revision is found, retrieve the most  recent  revision
3071         (instead of ignoring the file).
3072
3073
3074
3075       -k kflag
3076
3077         Process  keywords  according to kflag.  See `Keyword substitution' in
3078         the CVS manual.
3079
3080
3081
3082       -l
3083
3084         Local; don't descend subdirectories.
3085
3086
3087
3088       -R
3089
3090         Examine directories recursively.  This option is on by default.
3091
3092
3093
3094       -r tag
3095
3096         Use revision tag.
3097
3098         In addition to the above, these options are available:
3099
3100
3101
3102       -c
3103
3104         Use the context diff format.  This is the default format.
3105
3106
3107
3108       -s
3109
3110         Create a summary change report  instead  of  a  patch.   The  summary
3111         includes  information  about files that were changed or added between
3112         the releases.  It is sent to the standard  output  device.   This  is
3113         useful for finding out, for example, which files have changed between
3114         two dates or revisions.
3115
3116
3117
3118       -t
3119
3120         A diff of the top two  revisions  is  sent  to  the  standard  output
3121         device.   This  is  most  useful for seeing what the last change to a
3122         file was.
3123
3124
3125
3126       -u
3127
3128         Use the unidiff format for the context diffs.  Remember that old ver‐
3129         sions of the patch program can't handle the unidiff format, so if you
3130         plan to post this patch to the net you should probably not use -u.
3131
3132
3133
3134       -V vn
3135
3136         Expand keywords according to the rules current in rcs version vn (the
3137         expansion  format changed with rcs version 5).  Note that this option
3138         is no longer accepted.  cvs will always expand keywords the way  that
3139         rcs version 5 does.
3140
3141

rdiff examples

3143       Suppose you receive mail from foo@example.net asking for an update from
3144       release 1.2 to 1.4 of the tc compiler.  You have  no  such  patches  on
3145       hand,  but  with  cvs  that  can easily be fixed with a command such as
3146       this:
3147
3148
3149         $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \
3150         > Mail -s 'The patches you asked for' foo@example.net
3151
3152
3153
3154
3155       Suppose you have made release 1.3, and forked a branch called  R_1_3fix
3156       for  bug  fixes.   R_1_3_1 corresponds to release 1.3.1, which was made
3157       some time ago.  Now, you want to see how much development has been done
3158       on the branch.  This command can be used:
3159
3160
3161         $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
3162         cvs rdiff: Diffing module-name
3163         File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
3164         File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
3165         File bar.h,v changed from revision 1.29.2.1 to 1.2
3166
3167
3168
3169
3170

release

3172   Indicate that a Module is no longer in use
3173       · release [-d] directories...
3174
3175       · Requires: Working directory.
3176
3177       · Changes: Working directory, history log.
3178
3179         This  command  is  meant to safely cancel the effect of cvs checkout.
3180         Since cvs doesn't lock files, it isn't strictly necessary to use this
3181         command.  You can always simply delete your working directory, if you
3182         like; but you risk losing changes you may  have  forgotten,  and  you
3183         leave  no  trace  in the cvs history file (see node `history file' in
3184         the CVS manual) that you've abandoned your checkout.
3185
3186         Use cvs release to avoid these problems.  This command checks that no
3187         uncommitted changes are present; that you are executing it from imme‐
3188         diately above a  cvs  working  directory;  and  that  the  repository
3189         recorded  for your files is the same as the repository defined in the
3190         module database.
3191
3192         If all these conditions are true, cvs release leaves a record of  its
3193         execution  (attesting to your intentionally abandoning your checkout)
3194         in the cvs history log.
3195
3196

release options

3198       The release command supports one command option:
3199
3200
3201
3202       -d
3203
3204         Delete your working copy of the file if  the  release  succeeds.   If
3205         this  flag is not given your files will remain in your working direc‐
3206         tory.
3207
3208         WARNING:  The release  command  deletes  all  directories  and  files
3209         recursively.   This  has the very serious side-effect that any direc‐
3210         tory created inside checked-out sources, and not added to the reposi‐
3211         tory  (using the add command; see node `Adding files' in the CVS man‐
3212         ual) will be silently deleted—even if it is non-empty!
3213
3214

release output

3216       Before release releases your sources it will print a  one-line  message
3217       for any file that is not up-to-date.
3218
3219
3220
3221       U file
3222
3223
3224
3225
3226       P file
3227
3228         There exists a newer revision of this file in the repository, and you
3229         have not modified your local copy of the file (U and P mean the  same
3230         thing).
3231
3232
3233
3234       A file
3235
3236         The  file has been added to your private copy of the sources, but has
3237         not yet been committed to the repository.  If you delete your copy of
3238         the sources this file will be lost.
3239
3240
3241
3242       R file
3243
3244         The  file has been removed from your private copy of the sources, but
3245         has not yet been removed from the repository, since you have not  yet
3246         committed the removal.  See `commit' in the CVS manual.
3247
3248
3249
3250       M file
3251
3252         The  file is modified in your working directory.  There might also be
3253         a newer revision inside the repository.
3254
3255
3256
3257       ? file
3258
3259         file is in your working directory, but does not  correspond  to  any‐
3260         thing  in  the source repository, and is not in the list of files for
3261         cvs to ignore (see the description of the -I  option,  and  see  node
3262         `cvsignore'  in the CVS manual).  If you remove your working sources,
3263         this file will be lost.
3264
3265

release examples

3267       Release the tc directory, and delete your local  working  copy  of  the
3268       files.
3269
3270
3271         $ cd ..         # You must stand immediately above the
3272
3273                         # sources when you issue cvs release.
3274         $ cvs release -d tc
3275         You have [0] altered files in this repository.
3276         Are you sure you want to release (and delete) directory `tc': y
3277         $
3278
3279
3280
3281
3282

remove

3284   Remove files from active use
3285       · Synopsis: remove [-flR] [files...]
3286
3287       · Requires: repository, working directory.
3288
3289       · Changes: working directory.
3290
3291         The  remove command is used to remove unwanted files from active use.
3292         The user normally deletes the files from the working directory  prior
3293         to  invocation  of the remove command.  Only the working directory is
3294         updated.  Changes to the repository are not  made  until  the  commit
3295         command is run.
3296
3297         The  remove  command  does not delete files from from the repository.
3298         cvs keeps all historical data in the repository so that it is  possi‐
3299         ble  to  reconstruct  previous  states of the projects under revision
3300         control.
3301
3302         To undo cvs  remove  or  to  resurrect  files  that  were  previously
3303         removed, see node `add' in the CVS manual.
3304
3305

remove options

3307       These  standard  options  are  supported  by  remove  (see node `Common
3308       options' in the CVS manual for a complete description of them):
3309
3310
3311
3312       -l
3313
3314         Local; run only in current working directory.  See `Recursive  behav‐
3315         ior' in the CVS manual.
3316
3317
3318
3319       -R
3320
3321         Process directories recursively.  See `Recursive behavior' in the CVS
3322         manual.
3323
3324
3325         In addition, these options are also supported:
3326
3327
3328
3329       -f
3330
3331         Note that this is not the standard  behavior  of  the  -f  option  as
3332         defined in `Common options' in the CVS manual.
3333
3334         Delete files before removing them.
3335
3336         Entire  directory  hierarchies  are easily removed using -f, but take
3337         note that it is not as easy to resurrect directory hierarchies as  it
3338         is to remove them.
3339
3340
3341

remove examples

3343   Removing a file
3344         $ cvs remove remove.me
3345         cvs remove: file `remove.me' still in working directory
3346         cvs remove: 1 file exists; remove it first
3347         $ rm -f remove.me
3348         $ cvs remove remove.me
3349         cvs remove: scheduling `remove.me' for removal
3350         cvs remove: use 'cvs commit' to remove this file permanently
3351
3352         $ ls remove.it
3353         remove.it
3354         $ cvs remove -f remove.it
3355         cvs remove: scheduling `remove.it' for removal
3356         cvs remove: use 'cvs commit' to remove this file permanently
3357
3358
3359
3360
3361
3362   Removing entire directories
3363         $ tree -d a
3364         a
3365         |-- CVS
3366         `-- b
3367
3368             `-- CVS
3369
3370         3 directories
3371         $ cvs remove -f a
3372         cvs remove: Removing a
3373         cvs remove: Removing a/b
3374         cvs remove: scheduling `a/b/c' for removal
3375         cvs remove: use 'cvs commit' to remove this file permanently
3376
3377
3378
3379
3380

update

3382   Bring work tree in sync with repository
3383       · update  [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag|-D
3384         date] [-W spec] files...
3385
3386       · Requires: repository, working directory.
3387
3388       · Changes: working directory.
3389
3390         After you've run checkout to create your private copy of source  from
3391         the  common  repository,  other developers will continue changing the
3392         central source.  From time to time, when it  is  convenient  in  your
3393         development  process, you can use the update command from within your
3394         working directory to reconcile your work with any  revisions  applied
3395         to the source repository since your last checkout or update.
3396
3397

update options

3399       These  standard  options  are  available  with update (see node `Common
3400       options' in the CVS manual for a complete description of them):
3401
3402
3403
3404       -D date
3405
3406         Use the most recent revision no later  than  date.   This  option  is
3407         sticky, and implies -P.  See `Sticky tags' in the CVS manual for more
3408         information on sticky tags/dates.
3409
3410
3411
3412       -f
3413
3414         Only useful with the -D date or -r tag flags.  If no  matching  revi‐
3415         sion is found, retrieve the most recent revision (instead of ignoring
3416         the file).
3417
3418
3419
3420       -k kflag
3421
3422         Process keywords according to kflag.  See `Keyword  substitution'  in
3423         the  CVS  manual.  This option is sticky; future updates of this file
3424         in this working directory will use the same kflag.  The  status  com‐
3425         mand  can be viewed to see the sticky options.  See `Invoking CVS' in
3426         the CVS manual for more information on the status command.
3427
3428
3429
3430       -l
3431
3432         Local; run only in current working directory.  See `Recursive  behav‐
3433         ior' in the CVS manual.
3434
3435
3436
3437       -P
3438
3439         Prune empty directories.  See `Moving directories' in the CVS manual.
3440
3441
3442
3443       -p
3444
3445         Pipe files to the standard output.
3446
3447
3448
3449       -R
3450
3451         Update  directories  recursively (default).  See `Recursive behavior'
3452         in the CVS manual.
3453
3454
3455
3456       -r rev
3457
3458         Retrieve revision/tag rev.  This option is sticky,  and  implies  -P.
3459         See  `Sticky  tags' in the CVS manual, for more information on sticky
3460         tags/dates.
3461
3462         These special options are also available with update.
3463
3464
3465
3466       -A
3467
3468         Reset any sticky tags, dates, or -k options.  Does not  reset  sticky
3469         -k  options  on  modified files.  See `Sticky tags' in the CVS manual
3470         for more information on sticky tags/dates.
3471
3472
3473
3474       -C
3475
3476         Overwrite locally modified files with clean copies from  the  reposi‐
3477         tory (the modified file is saved in .#file.revision, however).
3478
3479
3480
3481       -d
3482
3483         Create  any directories that exist in the repository if they're miss‐
3484         ing from the working directory.  Normally, update acts only on direc‐
3485         tories  and  files  that were already enrolled in your working direc‐
3486         tory.
3487
3488         This is useful for updating directories  that  were  created  in  the
3489         repository since the initial checkout; but it has an unfortunate side
3490         effect.  If you  deliberately  avoided  certain  directories  in  the
3491         repository  when  you  created your working directory (either through
3492         use of a module name or by listing explicitly the files and  directo‐
3493         ries you wanted on the command line), then updating with -d will cre‐
3494         ate those directories, which may not be what you want.
3495
3496
3497
3498       -I name
3499
3500         Ignore files whose names match name (in your working directory)  dur‐
3501         ing  the  update.   You  can specify -I more than once on the command
3502         line to specify several files to ignore.  Use -I ! to avoid  ignoring
3503         any  files  at all.  See `cvsignore' in the CVS manual for other ways
3504         to make cvs ignore some files.
3505
3506
3507
3508       -Wspec
3509
3510         Specify file names that should be filtered during  update.   You  can
3511         use this option repeatedly.
3512
3513         spec can be a file name pattern of the same type that you can specify
3514         in the .cvswrappers file.  See `Wrappers' in the CVS manual.
3515
3516
3517
3518       -jrevision
3519
3520         With two -j options, merge changes from the revision  specified  with
3521         the  first  -j  option  to  the  revision specified with the second j
3522         option, into the working directory.
3523
3524         With one -j option, merge changes from the ancestor revision  to  the
3525         revision  specified  with  the -j option, into the working directory.
3526         The ancestor revision is the common ancestor of  the  revision  which
3527         the  working directory is based on, and the revision specified in the
3528         -j option.
3529
3530         Note that using a single -j tagname option rather than -j  branchname
3531         to merge changes from a branch will often not remove files which were
3532         removed on the branch.  See `Merging adds and removals'  in  the  CVS
3533         manual for more information.
3534
3535         In  addition,  each -j option can contain an optional date specifica‐
3536         tion which, when used with branches, can limit the chosen revision to
3537         one  within a specific date.  An optional date is specified by adding
3538         a colon (:) to the tag: -jSymbolic_Tag:Date_Specifier.
3539
3540         See `Branching and merging' in the CVS manual.
3541
3542
3543

update output

3545       update and checkout keep you informed of their progress by  printing  a
3546       line  for each file, preceded by one character indicating the status of
3547       the file:
3548
3549
3550
3551       U file
3552
3553         The file was brought up to date with respect to the repository.  This
3554         is  done  for  any file that exists in the repository but not in your
3555         working directory, and for files that you haven't changed but are not
3556         the most recent versions available in the repository.
3557
3558
3559
3560       P file
3561
3562         Like  U,  but the cvs server sends a patch instead of an entire file.
3563         This accomplishes the same thing as U using less bandwidth.
3564
3565
3566
3567       A file
3568
3569         The file has been added to your private copy of the sources, and will
3570         be  added  to  the source repository when you run commit on the file.
3571         This is a reminder to you that the file needs to be committed.
3572
3573
3574
3575       R file
3576
3577         The file has been removed from your private copy of the sources,  and
3578         will be removed from the source repository when you run commit on the
3579         file.  This is a reminder to you that the file needs to be committed.
3580
3581
3582
3583       M file
3584
3585         The file is modified in  your  working  directory.
3586
3587         M can indicate one of two states for a file you're working on: either
3588         there  were  no  modifications to the same file in the repository, so
3589         that your file remains as you last saw it; or  there  were  modifica‐
3590         tions in the repository as well as in your copy, but they were merged
3591         successfully, without conflict, in your working directory.
3592
3593         cvs will print some messages if it merges your  work,  and  a  backup
3594         copy  of  your working file (as it looked before you ran update) will
3595         be made.  The exact name of that file is printed while update runs.
3596
3597
3598
3599       C file
3600
3601         A conflict was detected while trying to merge your  changes  to  file
3602         with  changes  from  the  source  repository.  file (the copy in your
3603         working directory) is now the result of attempting to merge  the  two
3604         revisions;  an  unmodified  copy of your file is also in your working
3605         directory, with the name .#file.revision where revision is the  revi‐
3606         sion  that  your modified file started from.  Resolve the conflict as
3607         described in `Conflicts example' in the CVS manual.  (Note that  some
3608         systems automatically purge files that begin with .# if they have not
3609         been accessed for a few days.  If you intend to keep a copy  of  your
3610         original  file, it is a very good idea to rename it.)  Under vms, the
3611         file name starts with __ rather than .#.
3612
3613
3614
3615       ? file
3616
3617         file is in your working directory, but does not  correspond  to  any‐
3618         thing  in  the source repository, and is not in the list of files for
3619         cvs to ignore (see the description of the -I  option,  and  see  node
3620         `cvsignore' in the CVS manual).
3621

AUTHORS

3623       Dick Grune
3624              Original  author  of  the  cvs  shell  script  version posted to
3625              comp.sources.unix in the  volume6  release  of  December,  1986.
3626              Credited with much of the cvs conflict resolution algorithms.
3627
3628       Brian Berliner
3629              Coder  and  designer  of  the cvs program itself in April, 1989,
3630              based on the original work done by Dick.
3631
3632       Jeff Polk
3633              Helped Brian with the design of the cvs module and vendor branch
3634              support  and author of the checkin(1) shell script (the ancestor
3635              of cvs import).
3636
3637       Larry Jones, Derek R. Price, and Mark D. Baushke
3638              Have helped maintain cvs for many years.
3639
3640       And many others too numerous to mention here.
3641

SEE ALSO

3643       The most comprehensive manual for CVS is Version Management with CVS by
3644       Per Cederqvist et al.  Depending on your system, you may be able to get
3645       it with the info CVS command or it may be available as cvs.pdf  (Porta‐
3646       ble   Document   Format),  cvs.ps  (PostScript),  cvs.texinfo  (Texinfo
3647       source), or cvs.html.
3648
3649       For CVS updates, more information on documentation, software related to
3650       CVS, development of CVS, and more, see:
3651
3652           http://cvs.nongnu.org
3653
3654 ci(1),  co(1),  cvs(5),  cvsbug(8), diff(1), grep(1), patch(1), rcs(1), rcsd‐
3655 iff(1), rcsmerge(1), rlog(1).
3656
3657
3658
3659                                                                        CVS(1)
Impressum