cvs diff within verifymsg

Ryan Thompson <[email protected]> Mon, 17 Jun 2013 18:49:40 -0600
Newsgroups gmane.comp.version-control.cvs.general
Message-ID <[email protected]>
Hello,

I have a verifymsg script that runs the changed source code hunks 
through a series of checks, exiting with an error if any of those checks 
fail. In order to determine what has been changed, the verifymsg script 
runs "cvs diff" (without any filename arguments) and parses that output.

I'm aware that locking is already enabled by the time verifymsg is run. 
However, if a plain "cvs commit" or "cvs commit -m 'message'" is run, 
the diff works fine without any errors or warnings. If instead "cvs 
commit file.c" is run (even if file.c was the same file that would have 
been implicitly checked in by the plain "cvs commit"), the whole thing 
deadlocks with the usual message:

     cvs diff: [00:32:20] waiting for username's lock in 
/path/to/repo/module

I'm not surprised by this, but I am surprised that it works when no 
explicit filenames are given to commit.

More to the point, how can I circumvent the locking for this use case so 
I can get cvs diff output in verifymsg?

Thanks,
- R