问题
I'm using using TortoiseCVS to access the CVS server. I get the following error:
In D:\source\foo: "C:\Program Files\CVSNT\cvs.exe" -q update -P -d
CVSROOT=:ssh:annan@foo-bar.co.uk:/home/cvsroot
cvs update: failed to create lock directory for `/home/cvsroot/foo' (/var/lock/cvs/foo/#cvs.lock): Permission denied
cvs update: failed to obtain dir lock in repository `/home/cvsroot/foo'
cvs [update aborted]: read lock failed - giving up
Error, CVS operation failed
I had this problem before and managed to fix it, however this time I've not been able to figure it out. I believe it's related to different people committing files with their own ownership.
After reading a few articles online I've tried changing /home/cvsroot and /home/cvsroot/foo to 777 permissions, and recursively changing the ownership of /home/cvsroot/ to cvs:cvs (of which I am a member).
回答1:
The lock file is being created in /var/lock/cvs/foo/
you should check the permissions of that directory.
回答2:
Make sure the checkout repository has the permission to checkin the files.
I have checkout the directory cvs -d @cvs:/files/cvs co vcommon
But this rep doesnt have permission to checkin the files in the package folder.
Problem solved by checking out below: cvs -d @cvs:/files/cvs/vcommon co package
回答3:
I had an issue where my account had not been added to the "users" group. So even though permissions looked good, I still wasn't able to checkout any repositories. Once I was added to the users group, it fixed everything.
来源:https://stackoverflow.com/questions/5904458/cvs-error-failed-to-create-lock-directory-permission-denied