Hey everyone,

     I appologize in advance if this posted question appears twice on the 
list -- I initial posted it without joining (...my bad).

     I have a quick question about using the commitinfo admin file to 
perform a source-file check before commiting. Mabey the tool I should be 
using is Ageis (I've seen that project a lot in the archives), but what I 
want to do is have a script called at the beginning of the commit process 
which takes the following action:

1. Copy all submitted files from the /tmp/cvs<process-number> directory into 
a working directory on the CVS server associated with the user making the 
commit (the newly commited files would replace any files currently in that 
working directory).

2. Switch to that users working directory on the CVS server, and perform a 
"cvs update -A -d" to get the any previously submitted updates from the head 
of the repository.

3. Incrementally compile the whole project (this should result in only the 
currently submitted files and any modified files since the last commit being 
compiled).

4. Allow the commit to take place if the compile succeeds, or return a 
non-zero result and fail if the compile fails.

    This would be nice because it eliminates the problem of developers 
accidentally forgetting to add/ commit files which prevents other developers 
from being able to compile and test the project. It effectively guarantees 
that the head of the codebase will compile.

     The script to do this is straightforward -- and also doesn't work. It 
fails because trying to execute a "cvs update -A -d" command into another 
working directory on the server fails since the user trying to commit locks 
the entire repository (the command just hangs there with a message like 
..."trying to get lock from <user-name>").

     So my initial thought is "why shouldn't the same user that has a global 
lock on the whole repository also be able to execute read-only operations 
like update or checkout that don't modify the repository's state?" My guess 
is that it's simply easier to do lock management if locks aren't 
"same-user-re-entrant" and no other cvs operations are allowed once the 
commit starts.

     Anyways, if someone has a solution to this problem, I'll worship you 
like the software God/Godess you are! Also -- if for some reason I were to 
think about jumping into the code and making locks "same-user-re-entrant" 
during a commit, would anyone be interested in a source patch? Or is that a 
waste of time?

---Bryan


_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com


_______________________________________________
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs

Reply via email to