我们通常通过Eclipse访问我们的CVS服务器。我们的一位队友steveo
在项目Testing
的Java src
文件夹下创建了一个新包ProjectName
。
之后,这导致ProjectName
的所有结帐失败。
服务器在执行“cvs checkout”命令时报告错误。
:cvs checkout:无法为`/ app / cvs / repository / Main / ProjectName / src / Testing'创建锁定目录(/app/cvs/repository/Main/ProjectName/src/Testing/#cvs.lock) :许可被拒绝
:cvs checkout:无法获取存储库中的dir锁`/ app / cvs / repository / Main / ProjectName / src / Testing'
:cvs [checkout aborted]:读取锁定失败 - 放弃
我putty'd到CVS服务器并在ls -l
文件夹上做了src
drwxrwxr-x 5 root cvs 4096 May 19 12:05 com
drwxrwxr-x 3 steveo steveo 4096 May 19 12:05测试
我sudo su
,备份到项目文件夹,然后运行chgrp -R cvs ProjectName
。
drwxrwxr-x 5 root cvs 4096 May 19 12:05 com
drwxrwxr-x 3 steveo cvs 4096 May 19 12:05测试
现在已经解决了这个问题......直到另一个用户创建了一个包。
导致此问题的原因是什么?我如何将它们全部默认为cvs
?
this similar SO question的答案没有帮助。
答案 0 :(得分:0)
想出来并为后代发布答案。
我原本打算将存储库文件夹设置为组cvs
,并通过chmod g+s /app/cvs/repository/
使其粘滞,但这不是递归的,我不知道我想搞砸它。
用户的默认组ID(GID)不是cvs
。由于我们使用Active Directory作为帐户登录,因此解决方案有点变通方法。幸运的是,我们只将此服务器用于CVS,这使解决方案变得简单。
必须为每个帐户和每个新帐户执行此操作。
sudo su
cd \home\{username}
echo "newgrp cvs" >> .profile
这会在登录时为违规帐户将默认组设置为cvs
,我可以将其称为一天......最终迁移到Git / BitBucket。