• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

AUTHORSH A D06-Dec-2007122 85

COPYINGH A D23-Mar-201017.7 KiB340281

ChangeLogH A D31-May-201312.2 KiB420276

INSTALLH A D31-May-201315.4 KiB371289

Makefile.amH A D29-Mar-2005820 4229

Makefile.inH A D31-May-201320.8 KiB660574

NEWSH A D31-May-20131.6 KiB5142

READMEH A D10-May-20086.2 KiB176122

THANKSH A D06-Dec-2007546 1812

aclocal.m4H A D31-May-201321.9 KiB620552

configureH A D31-May-201399.2 KiB3,4422,771

configure.acH A D31-May-2013221 129

cvschroot.plH A D03-May-20222.8 KiB12581

cvsco.shH A D29-Mar-2005388 166

cvsdiscard.shH A D29-Mar-2005373 156

cvsdo.plH A D03-May-20229.1 KiB413306

cvspurge.shH A D29-Mar-2005302 114

cvstrim.shH A D29-Mar-2005271 134

cvsu.plH A D03-May-202212.1 KiB514394

cvsutils.1H A D10-May-20084.8 KiB148147

cvsutils.specH A D31-May-2013890 4133

cvsutils.spec.inH A D02-Aug-2005898 4133

install-shH A D31-May-201313.7 KiB528351

missingH A D31-May-20139.9 KiB331243

README

1CVSU - CVS Utilities
2====================
3
4PLEASE NOTE, THAT ALTHOUGH THIS SOFTWARE WORKS FOR ITS AUTHOR, IT MAY OR
5MAY NOT WORK FOR YOU. PLEASE BE CAREFUL.  SOME OF THE INCLUDED FILES MAY
6REMOVE RESULTS OF YOUR WORK.  PLEASE MAKE SURE THAT YOU UNDERSTAND HOW
7THEY WORK BEFORE USING THEM.
8
9CVSU is licensed under the terms of the GNU Public License, version 2.
10See file COPYING and http://www.gnu.org/copyleft/gpl.html for details.
11
12The homepage of CVSU is http://www.red-bean.com/cvsutils/
13
14The original author of CVSU is
15 Tom Tromey <tromey@cygnus.com>
16
17Later it was maintained by
18 Pavel Roskin <proski@gnu.org>
19
20The project is currently discouninued.  No further development is
21expected.
22
23
24Introduction
25============
26
27CVS Utilities is a set of scripts that operate on working directories of
28CVS (Concurrent Versions System).
29
30Unlike some other version control systems, it's common for CVS
31repository to reside on a remote system.  Unfortunately, the standard
32CVS client requires connection to the repository for almost all
33operations.  This means that some operations are impossible when the
34repository is unreachable over the network, or when the network
35connection is slow compared to the size of the project.
36
37In fact, CVS keeps some data in the working directory that allows for
38some disconnected operations.  In particular, no connection to the
39repository is required to identify locally modified files.  But the CVS
40client cannot do it.  This is the gap CVS Utilities aim to close.
41
42Admittedly, the insistence of the CVS client on repository connection
43can be justified in most cases.  That's why CVS Utilities are not aiming
44to be a "better client".  It's an extension to CVS client with limited
45capabilities but higher speed.  (If someone was to write a better CVS
46client, it would probably keep base versions or their checksums
47somewhere, like Subversion does, but CVS Utilities use the same format
48of the working directory as the standard CVS client.)
49
50More specifically, these are the reasons behind CVS Utilities:
51
52- There is enough information in the CVS working directory to identify
53  local modifications and removals of the files under version control
54  and to find files unknown to the version control.
55
56- In particular, the unknown files can be removed to recreate the
57  working directory in its pristine state.  It can be done really fast,
58  whereas another checkout can take several minutes.
59
60- CVS poses certain unnecessary restrictions on read-only users, e.g.
61  "cvs add" command doesn't work for them, although this command is
62  essential for "cvs diff" showing new files.
63
64
65Included scripts
66================
67
68cvsu
69----
70
71Offline "cvs update" simulator.
72
73It lists the files found in the current directory (or in the directories
74which you specify).  The script takes following into account:
75
76- Attributes of the file (i.e. whatever lstat() returns)
77- Information about the file in CVS/Entries and CVS/Entries.Log
78
79Timestamp of the file is compared to the timestamp stored in CVS/Entries.
80
81Run "cvsu --help" to see supported command line options.  The options
82can be abbreviated.  This functionality is provided by Perl, and may
83vary from one machine to another.
84
85
86cvsco
87-----
88
89When you want to remove the working directory and check it out anew,
90use cvsco instead.
91
92Essentially, cvsco removes results of compilation and discards local
93changes.  It deletes all the files except the listed unmodified ones and
94updates everything which seems to be missing.
95
96Note that the existing unmodified files are not updated, but those
97missing or modified are!  (Consider it a bug it you want.)  It's a good
98idea to run "cvs update" after cvsco if you suspect somebody could have
99committed new changes since your last update.
100
101Another bug-feature - files removed by "cvs remove" (or "cvsdo remove")
102are not resurrected.
103
104
105cvsdiscard
106----------
107
108The easiest way to discard local changes.
109
110cvsdiscard discards local changes but keeps results of compilation.  It
111works like "cvsco", but it only deletes files which are likely to cause
112merge conflicts.
113
114
115cvspurge
116--------
117
118cvspurge leaves all files and directories known to CVS, but removes the
119rest.  Unlike cvsco, it doesn't remove local changes.  It is useful to
120test local changes in the otherwise clean source tree.
121
122
123cvstrim
124-------
125
126cvstrim removes files and directories unknown to CVS.
127
128Unlike cvspurge, files listed in .cvsignore are not removed.  The idea
129is to remove only the files that are "not supposed" to be in the working
130directory, i.e. those that the CVS client would flag with the question
131mark.  If you make sure that .cvsignore files include results of normal
132build process, those files will be kept.
133
134
135cvschroot
136---------
137
138cvschroot makes it possible to change CVS/Root in all subdirectories to
139the given value.
140
141The only argument accepted is the new CVSROOT value.  Old-style
142CVS/Repository files that contain the full path to the repository are
143updated to reflect the change.  New-style CVS/Repository don't need to
144be changed.  If the environment variable CVSROOT is defined, it
145overrides the contents of CVS/Root.  In other words, it is treated as
146the _old_ CVS root.
147
148
149cvsdo
150-----
151
152cvsdo simulates some of the CVS commands (currently add, remove and diff)
153without any access to the CVS server.
154
155Using "cvsdo add" and "cvsdo remove" allows you to create diffs with
156"cvs diff -N", in which all removed and added files will appear in the
157diff correctly, as is you had used "cvs add" and "cvs remove"
158respectively.
159
160"cvsdo diff" tries to locate the backup copies of the modified files. If
161they can be found, they are compared with the current version using
162"diff".  Only those backup copies are used that have the modification
163date equal to the date listed in CVS/Entries for the modified file.
164
165"cvsdo diff" patches the diff output to make it easier to read and safer
166to use with patch (especially GNU patch).  In particular, newly added
167files are handled better by "cvsdo diff" than by "cvs diff".  The header
168of the "diff" output is patched in such way that GNU patch will create a
169new file when the resulting patch is applied and remove that file when
170the patch is reverted.
171
172Files named "ChangeLog" receive special treatment.  "cvsdo diff" will
173try to omit as much context as possible, so that the patch can be
174applied even if other changes have been made to the ChangeLog.
175
176