Thanks a lot for the reply. Yes, I did notice the CVS/Tag file before, and I wrote a simple shell script with commitinfo and checkoutlist. But you are right that CVS/Entries should be checked instead. I don't know how to do this with a shell script, and I don't know Perl either.
Here is my shell script, attached. Perhaps you know how I can fix it up, or maybe I can have a look at your code? Danial. Brian Poynor wrote: > You can't really do this with the CVSROOT/passwd file. But if you are > primarily concerned about who can commit to Branch A and Branch B (as > opposed to checkout), you can implement that using CVSROOT/commitinfo. > > (I answered a similar request earlier, and discounted the option of > using an alternate directory for lock files. This is one of the > primary reasons why. You cannot use unix permissions to govern which > branch a user can work on, which is a fundamental need in my > experience. I believe this is the only mechanism in CVS for this.) > > Your commitinfo script can examing the CVS/Tag file. It's the trunk > (mainline) if it doesn't exist, or doesn't have "T" as the first > character in it, otherwise the branch name follows the "T". It is more > work, but also more technically correct to examine the tag value in > the CVS/Entries or CVS/Entries.Log file for each file being committed > instead, since it is possible for a user to update a file from a > different branch into her tree and commit it. The CVS/Tag doesn't > necessarily reflect the branch of every file in the directory. > > An additional thing I check that all the files being committed are in > the same branch, since committing to two different branches at once is > almost always a result of user error, and it can be painful to > correct. I figure they can commit twice if that is their intent. > > Once you know the branch of the file, you can check that the user is > allowed to commit to that branch using a database of your own design > (could be as simple as a text file with usernames for each branch). > > Just make sure that when your commitinfo scripts disallow a commit, > they print a very clear error message to STDOUT. This will save you > and your cvs users a lot of guesswork later. > > -Brian > > On Tue, Apr 09, 2002 at 12:33:07PM -0400, Danial Islam wrote: > > I'm not sure if I posted this already, but here goes again: > > > > In my repository I have set up a main trunk with two branches coming out > > of it, e.g. Branch A and > > Branch B. Is it possible to restrict Branch A to a certain group of > > users, and Branch B to another group of users? How would this be done > > in UNIX? > > > > How would I modify the CVSROOT/passwd file to accomodate this? Right now > > my passwd file currently has [unix ID]:[encoded password] for each user. > > > > Any help would really, really be appreciated! > > > > > > Danial. > > > > > > _______________________________________________ > > Info-cvs mailing list > > [EMAIL PROTECTED] > > http://mail.gnu.org/mailman/listinfo/info-cvs > > _______________________________________________ > Info-cvs mailing list > [EMAIL PROTECTED] > http://mail.gnu.org/mailman/listinfo/info-cvs
Checkin.csh
Description: C-Shell script
