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