I am wondering how to get the last changes in a CVS module easy.
cvs log
will return all of them. Since you can't say "the last N revisions" (here, I can't even say cvs log HEAD
), there are two options:
Use
head -N
the get the N topmost lines (Unix or Cygwin only)Use a date and
cvs log -d DATE
Since the CVS implementation versions each file individually, I suppose you'd have to through each file and compare the commit timestamps to determine which one is the latest. Combine this with the fact that CVS does not support the concept of a commit set, so you can get a bunch of files with equal commit timestamp. So which one is the latest? Or maybe you could create a commit hook that writes to a log file and use that to determine the latest commit.
As you probably figured out, neither of these is a particularly giving path to choose. I strongly suggest that at the module-level you always compare against tags. Establish a software process that includes tagging the module when an important enough improvement is made (e.g. daily build, deployment to test environment, etc..) and then use the created tag as the comparison baseline.
You can accomplish diffing the latest changes against a tag by using
cvs rdiff
command without a working copy, orcvs diff
command at the top-level of a working copy
See the CVS documentation for complete reference.