NAME¶
cvsutils - CVS utilities for use in working directories
SYNOPSIS¶
cvsu [
options]
cvsco [ options ]
cvsdiscard [ options ]
cvspurge [ options ]
cvstrim [ options ]
cvschroot [ options ]
cvsdo [ options ]
DESCRIPTION¶
The idea of
cvsutils is to facilitate working with the files in the
working directory of a developer using CVS (Concurrent Versions System).
From the point of view of CVS, working directories have low value, since they
can easily be recreated using the
cvs checkout command. Also the
cvs
update command will show the status of the files, i.e. whether they have
been modified, added or removed.
CVS in it's current state is a client-server system that does most of its work
on the server side. CVS provides only few (if any) means for managing the
working directory without communicating with the server.
There are, however, several reasons why such means are necessary:
- *
- There is enough information on the client side to create fast tools for
sorting and purging the working directory without contacting the CVS
server.
- *
- Checking out a big module over a slow line can take too much time.
- *
- There should be support for disconnected operations.
- *
- CVS poses certain unnecessary restrictions on read-only users, e.g. cvs
add command doesn't work for them.
CVSU¶
cvsu is "cvs update offline". It lists the files found in the
current directory (or in the directories which you specify). Following is
taken into account:
- *
- Attributes of the file.
- *
- Information about the file in CVS/Entries.
- *
- Timestamp of the file compared to the timestamp stored in
CVS/Entries.
Run
cvsu --help to see supported command line options. The options can be
abbreviated. This functionality is provided by Perl, and can vary from one
machine to another.
CVSCO¶
cvsco is a "cruel checkout". In other words, it removes results
of compilation and discards local changes. It deletes all the files except
listed unmodified ones and checks out everything which seems to be missing.
Please note, that
cvsco doesn't update files which haven't been
modified locally. It only reloads missing files and files which it erases.
CVSDISCARD¶
cvsdiscard is "discard my changes". In other words, it discards
local changes but keeps results of compilation. It works like
cvsco,
but it only deletes files which are likely to cause merge conflicts.
CVSPURGE¶
cvspurge leaves all files known to CVS, but removes the rest. Unlike
cvsco, it doesn't remove local changes. It is useful to test local changes in
the otherwise clean source tree.
CVSTRIM¶
cvstrim removes files and directories unknown to CVS. Files listed in
.cvsignore are not removed. The idea is to remove the files that are
not resulted from the normal build process - backups, coredumps etc.
cvstrim relies on
.cvsignore files being correct. Note that the
backups for modified files are removed.
CVSCHROOT¶
cvschroot makes it possible to change CVS/Root in all subdirectories to
the given value. Currently the only argument accepted is the new CVSROOT
value. Old-style CVS/Repository files that contain the full path to the
repository are updated to reflect the change. New-style CVS/Repository don't
need to be changed. If the environment variable CVSROOT is defined, it
overrides the contents of CVS/Root. In other words, it is treated as the
old CVS root.
CVSDO¶
cvsdo simulates some of the CVS commands (currently add, remove and diff)
without any access to the CVS server. Using
cvsdo add and
cvsdo
remove allows you to create diffs with
cvs diff -N, and all removed
and added files will appear in the diff correctly, as if you had used
cvs
add and
cvs remove respectively.
cvsdo diff tries to locate the backup copies of the modified files. If
they can be found, they are compared with the current version using
diff. Only those backup copies are used that have the modification date
equal the date listed in CVS/Entries for the modified file.
cvsdo diff
patches the diff output to make it more robust to apply. An exception is made
for files named "ChangeLog" - in this case
diff will be
instructed to omit all context lines, so that the patch can be applied even if
other changes have been written to the ChangeLog. Also the added files are
handled properly. The header of the
diff output is patched in such way
that at least GNU patch will create a new file when the resulting patch is
applied and remove that file when the patch is reverted.
LICENCE¶
cvsutils is covered by the GNU General Public License (GPL).
SEE ALSO¶
cvs(1),
cvs2cl(1).
AUTHOR¶
This manual page was written by Uwe Hermann <uwe@debian.org>, for the
Debian GNU/Linux system (but may be used by others).