为什么在为 CVS 创建新文件夹时拒绝签出权限?
Why is checkout permission denied on new folder creation for CVS?
我们通常通过 Eclipse 访问我们的 CVS 服务器。我们的一位队友 steveo
在我们的 Java src
文件夹下为项目 ProjectName
创建了一个新包 Testing
。
之后,这导致 ProjectName
.
的所有结帐失败
The server reported an error while performing the "cvs checkout" command.
: cvs checkout: failed to create lock directory for `/app/cvs/repository/Main/ProjectName/src/Testing' (/app/cvs/repository/Main/ProjectName/src/Testing/#cvs.lock): Permission denied
: cvs checkout: failed to obtain dir lock in repository `/app/cvs/repository/Main/ProjectName/src/Testing'
: cvs [checkout aborted]: read lock failed - giving up
我将 putty 连接到 CVS 服务器并在 src
文件夹
上做了一个 ls -l
drwxrwxr-x 5 root cvs 4096 May 19 12:05 com
drwxrwxr-x 3 steveo steveo 4096 May 19 12:05 Testing
我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 Testing
这暂时解决了问题...直到另一个用户创建包。
是什么原因造成的,我该如何将它们全部默认为 cvs
?
this similar SO question 的答案没有帮助。
弄清楚并发布答案以供后代使用。
我原本打算将存储库文件夹设置为组 cvs
并通过 chmod g+s /app/cvs/repository/
使其具有粘性,但这不是递归的,我不知道我想搞砸它.
用户的默认组 ID (GID) 不是 cvs
。该解决方案有点变通,因为我们使用 Active Directory 作为我们的帐户登录。幸运的是,我们只将此服务器用于 CVS,这使解决方案变得简单。
每个帐户和每个新帐户都必须这样做。
- 确保该帐户已尝试通过 Eclipse/RAD 登录 CVS(也许还检查了一个项目)。这会在主页下创建用户配置文件。
sudo su
cd \home\{username}
- 因为我们没有其他事情发生,
echo "newgrp cvs" >> .profile
这会将登录时违规帐户的默认组设置为 cvs
,我可以收工了......并最终迁移到 Git / BitBucket。
我们通常通过 Eclipse 访问我们的 CVS 服务器。我们的一位队友 steveo
在我们的 Java src
文件夹下为项目 ProjectName
创建了一个新包 Testing
。
之后,这导致 ProjectName
.
The server reported an error while performing the "cvs checkout" command.
: cvs checkout: failed to create lock directory for `/app/cvs/repository/Main/ProjectName/src/Testing' (/app/cvs/repository/Main/ProjectName/src/Testing/#cvs.lock): Permission denied
: cvs checkout: failed to obtain dir lock in repository `/app/cvs/repository/Main/ProjectName/src/Testing'
: cvs [checkout aborted]: read lock failed - giving up
我将 putty 连接到 CVS 服务器并在 src
文件夹
ls -l
drwxrwxr-x 5 root cvs 4096 May 19 12:05 com
drwxrwxr-x 3 steveo steveo 4096 May 19 12:05 Testing
我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 Testing
这暂时解决了问题...直到另一个用户创建包。
是什么原因造成的,我该如何将它们全部默认为 cvs
?
this similar SO question 的答案没有帮助。
弄清楚并发布答案以供后代使用。
我原本打算将存储库文件夹设置为组 cvs
并通过 chmod g+s /app/cvs/repository/
使其具有粘性,但这不是递归的,我不知道我想搞砸它.
用户的默认组 ID (GID) 不是 cvs
。该解决方案有点变通,因为我们使用 Active Directory 作为我们的帐户登录。幸运的是,我们只将此服务器用于 CVS,这使解决方案变得简单。
每个帐户和每个新帐户都必须这样做。
- 确保该帐户已尝试通过 Eclipse/RAD 登录 CVS(也许还检查了一个项目)。这会在主页下创建用户配置文件。
sudo su
cd \home\{username}
- 因为我们没有其他事情发生,
echo "newgrp cvs" >> .profile
这会将登录时违规帐户的默认组设置为 cvs
,我可以收工了......并最终迁移到 Git / BitBucket。