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