{"id":234,"date":"2005-02-16T10:01:54","date_gmt":"2005-02-16T16:01:54","guid":{"rendered":"http:\/\/www.mooreds.com\/wordpress\/?p=234"},"modified":"2005-02-16T10:01:54","modified_gmt":"2005-02-16T16:01:54","slug":"cvs-checkout-failed-to-create-lock-directory-solution","status":"publish","type":"post","link":"https:\/\/www.mooreds.com\/wordpress\/archives\/234","title":{"rendered":"&#8220;cvs checkout: failed to create lock directory&#8221; solution"},"content":{"rendered":"<p>For those of us still using CVS, rather than the highly acclaimed <a href='http:\/\/subversion.tigris.org\/'>subversion<\/a>, I wanted to outline a solution to a common problem I&#8217;ve often seen:<\/p>\n<p>One user creates a cvs module (named, for example, project) and checks in a number of files and directories.  Then another developer tries to check out the module and sees this error.  (Here&#8217;s <a href='http:\/\/lists.debian.org\/debian-user\/2002\/02\/msg03976.html'>another explanation of the solution<\/a>.)<\/p>\n<p><code>: cvs checkout: failed to create lock directory for<br \/>\n`\/usr\/local\/cvsrepo\/project'<br \/>\n(\/usr\/local\/cvsrepo\/project\/#cvs.lock): Permission denied<br \/>\n  : cvs checkout: failed to obtain dir lock in repository<br \/>\n`\/usr\/local\/cvsrepo\/project'<br \/>\n  : cvs [checkout aborted]: read lock failed - giving up<\/code><\/p>\n<p>If you go to <code>\/usr\/local\/cvsrepo\/project<\/code>, and run an <code> ls -l<\/code>, you&#8217;ll see that the permissions look like:<\/p>\n<p><code>...<br \/>\ndrwxrwxr-x  2 user group 4096 Feb 16 09:40 bin<br \/>\n...<\/code><\/p>\n<p>This error message comes from the fact that the second user is not a member of group <code>group<\/code>.  The best way to solve this is to create a second group, perhaps called <code>cvs<\/code>, and assign both users to that group.<\/p>\n<p>Then, you want to make sure that all the files have the correct group bit set:<br \/>\n<code>chown -R :cvs \/usr\/local\/cvsrepo\/project<\/code><\/p>\n<p>And, you want to make sure that any new directories (and files) added use the <code>cvs<\/code> group, rather than the <code>group<\/code> group:<br \/>\n<code>chmod -R g+ws \/usr\/local\/cvsrepo\/project<\/code><\/p>\n<p>Your final permissions should look like:<br \/>\n<code>...<br \/>\ndrwxrwsr-x  2 user cvs 4096 Feb 16 09:40 bin<br \/>\n...<\/code><\/p>\n<p>Now the second user and any other developers should be able to check out the code so safely stored in cvs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For those of us still using CVS, rather than the highly acclaimed subversion, I wanted to outline a solution to a common problem I&#8217;ve often seen: One user creates a [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":0,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mooreds.com\/wordpress\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}