CVS news

CVS has a large interface--a discouragingly large one, in fact. CL is nearly convinced that even experts don't understand it all.

In particular, many frequent CVS users aren't aware of the protocol's reporting capabilities. You can, for example, get a handle on what the latest action in Tcl's "head" has been with

  set REPOSITORY -d:pserver:[email protected]:/cvsroot/tcl
  set everything [exec cvs $REPOSITORY history -c -a]

  foreach line [split $everything \n] {
      foreach {type date time timezone user revision file directory
               other1 other2 other3} $line break
          # Is it worth printing out part of the "check-in comment"?
      set item [format "%s %s  %-20s %-13s   %-10s" \
                      $date $time $file $revision $user]
      lappend list $item
  }

  set count 0
  foreach item [lsort -decreasing $list] {
      puts $item
          # Just print out the last ten check-ins.
      if {[incr count] > 10} break
  }

With typical SourceForge activity and a high-speed connection, this takes up to half a minute to produce such output as

  2003-07-19 01:37  Makefile                       1.7   das
  2003-07-19 01:37  ChangeLog                   1.1650   das
  2003-07-19 01:35  Makefile                   1.5.2.3   das
  2003-07-19 01:35  ChangeLog             1.1453.2.119   das
  2003-07-18 23:35  tclProc.c                 1.44.2.1   dgp
  2003-07-18 23:35  tclCompile.c              1.43.2.3   dgp
  2003-07-18 23:35  tclBasic.c                1.75.2.5   dgp
  2003-07-18 23:35  init.test                  1.9.2.1   dgp
  2003-07-18 23:35  init.tcl                  1.55.2.1   dgp
  2003-07-18 23:35  ChangeLog             1.1453.2.118   dgp
  2003-07-18 22:17  Utf.3                         1.15   dkf