Provided by: cvsutils_0.2.5-1.1_all bug


       cvsutils - CVS utilities for use in working directories


       cvsu [options]
       cvsco  [ options ]
       cvsdiscard  [ options ]
       cvspurge  [ options ]
       cvstrim  [ options ]
       cvschroot  [ options ]
       cvsdo  [ options ]


       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 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 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


       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 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


       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  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 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.


       cvsutils is covered by the GNU General Public License (GPL).


       cvs(1), cvs2cl(1).


       This  manual  page  was  written by Uwe Hermann <>, for the Debian GNU/Linux
       system (but may be used by others).

                                        February 27, 2002                             CVSUTILS(1)