David Boyce


CCreport - Perl script to generate a ClearCase changes report


  # Generate a report of changes on any branch since yesterday in /vobs/src
  CCreport /vobs/src

  # ... on branch 'foo'
  CCreport -branch foo /vobs/src

  # ... on multiple branches
  CCreport -branches foo,boo,bar /vobs/src

  # ... looking only for *.c files
  CCreport -branches foo,boo,bar -name '*.c' /vobs/src

  # ... and mail it to tom, dick, and harry at here.com
  CCreport -branch foo -to tom,dick,harry -domain here.com /vobs/src

  # Specify a view to work through and a starting date ...
  CCreport -view admin -since 24-Mar /vobs_src

  # ... and an ending date
  CCreport -view admin -since 24-Mar -before 29-Mar /vobs_src

  # ... output plaintext instead of HTML
  CCreport -view admin -plain -since 24-Mar /vobs_src

  # Traverse multiple vob areas, show changes on any branch
  CCreport /vobs_src/proj1 /vobs/doc/proj1/html

  # Traverse all VOBs, ignoring changes to dirs
  CCreport -type f -avobs

  # Run in I<automatic> mode, driven by attributes on self
  CCreport -auto

  # Run in auto mode but issue only reports #3 and #4
  CCreport -auto -filter /[34]/


This script traverses the specified ClearCase VOB areas and outputs a report of changes made, formatted with their comments, version numbers, etc. The listing can be restricted by timeslice, user(s), branch, and so on via command-line flags (use -help for a summary). By default the output is HTML-formatted but plain text is an option.

Note that "VOB areas" means any directory tree within VOB space, not necessarily the entire VOB.

A special automatic mode is supported. When passed the -auto flag it will examine $0 to find attributes on itself. Attributes with names of the form "CCrxx" where xx is an integer are considered to be command lines to be executed in numerical order. Attributes of the form "CCr_foo" define substitutions. For example:

    CCr1 = "-branch main -to {dev},{adm} /vobs/src /vobs/doc"
    CCr2 = "-branch bugbranch -to {qa},{adm} /vobs/src"
    CCr_adm = "tom,dick,harry"
    CCr_dev = "susan,mary"
    CCr_qa = "jeff,chris"

will generate two reports and mail them to the development and qa groups respectively, with copies of all going to {adm}.

I've only ever used this on Solaris. It should run more or less unmodified on other UNIX/ClearCase/Perl5.004 platforms. There is approximately zero chance it will work on Windows without some porting effort. Note: though it doesn't run on Windows, it does have code to deal with interop mode, i.e. to correctly report changes that were made in a different region.


Run with -/dbg=1 to see debug output.


David Boyce <dsb@cleartool.com>


Copyright (c) 1998,1999,2000 David Boyce. All rights reserved. This Perl program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.


perl(1), ClearCase::Argv, Argv

1 POD Error

The following errors were encountered while parsing the POD:

Around line 566:

Unknown directive: =head