croczilla.com 
 home   zap   svg   xtf   jssh   bits&pieces   blog   personal   
  home > bits&pieces

Bits & Pieces

Here are some useful little tools for Mozilla development:


cvslstat: "Report local CVS status"

This little perl script can be used to find locally modified files or files with conflicts (resulting e.g. from a 'cvs update' or branch merge) in a CVS working directory. It is much faster than 'cvs status' since it doesn't query the (remote) repository for operation.

Download

Version 1.0:
cvslstat (Size: 5kB)

Usage:

'cvslstat' operates in the working directory of a CVS repository 
and lists files that have been modified or have conflicts.
Similar to 'cvs status', but doesn't query the repository.

Usage: cvslstat [OPTION]...

  -l          process this directory only (not recursive)
  -q          quiet mode: print only filenames, no status info
  -c          report files with conflicts (== '-u' & '-e')
  -u          report files with conflicts that have not been edited yet
  -e          report files with conflicts that have been locally edited
  -m          report files that are locally modified
  -v          verbose mode: print cvs timestamps (unless -q is specified)
  -vv         debug mode: print cvs timstamps & file timestamps
  -d          print directories traversed
      --help  display this message

  If neither '-c', '-u', '-e' or '-m' are given, cvslstat will execute 
  as if '-c' and '-m' had been specified.

Known bugs: 
  Under Windows, the CVS timestamp and file modification time are
  sometimes out by a second. In that case, cvslstat will wrongly
  report the file as modified. (This is with CVS 1.10.5; might be fixed
  by later versions.)

Quirks:
  Command line options have to be provided one-by-one, i.e. use

     cvslstat -c -v

  instead of

     cvslstat -cv

Examples:
  Find all files with conflicts: 

     cvslstat -c

  Open all files with unedited conflicts in xemacs: 

     xemacs `cvslstat -u -q`

  Commit all locally edited files: 

     cvs commit `cvslstat -m -q`


cvsintegrate: "Import files from one CVS repository into another CVS repository"

This little perl script can be used to import the files in a checked-out working copy of a CVS repository into (a branch of) a different repository. Files not under version-control (such as generated makefiles, emacs backup files, etc) will be ommited and the binary flag will be maintained where appropriate.

Download

Version 1.0:
cvsintegrate (Size: 3kB)

Usage:

cvsintegrate -d rep -m msg [-b brnch] [-p] [-v] target-dir vendor-tag release-tags

    -d rep   : Target repository, overriding \$CVSROOT
    -m msg   : Log file comment
    -b brnch : Vendor branch id; 1.1.1 by default
    -p       : 'Pretend mode'; don't make any actual changes to the repository
    -v       : verbose output in non-pretend mode

Integrates ("imports") the current directory into the 'target-dir'
directory of the target repository. Similar to 'cvs import', but
assumes that the current directory contains a checked-out working copy
of another CVS repository (the "source repository").  By inspecting
the CVS information stored in the source repository, cvsintegrate will
maintain the binary flag where appropriate.  Files in the source
directory that are not under CVS control will not be imported
(e.g. emacs backup files).