为什么bzr推送被拒绝?

时间:2011-12-02 05:16:07

标签: bash version-control permissions bazaar chmod

user2希望bzr将更改推送到目录/home/user1/project/dev。 user2对此目录具有group + rwx权限,但不在我的主目录/home/user1/

这会导致错误:

  

bzr:ERROR:权限被拒绝:“h2i9usf1l6ieofpuul87.pack”:[Errno 13]权限被拒绝:   '/home/user1/.bzr/repository/upload/h2i9usf1l6ieofpuul87.pack'

我不清楚为什么当/home/user1/.bzr/分支来自/home/user1/project/dev时,user2需要获得我家/home/usr1/project/trunk的许可。

我对使用VCS相对较新,并且不确定我是如何陷入这种困境的。有没有办法打破对/home/user1/.bzr的依赖,或者创建一个没有这种依赖关系的/home/user1/project/trunk/分支?

3 个答案:

答案 0 :(得分:4)

您似乎在/home/user1/中拥有共享存储库,/home/user1/project/dev处的分支正在使用该存储库。因此,它需要访问存储库来存储新的修订版。

如何检查:运行命令bzr info并检查其输出以获取该分支的定义。如果您将看到"存储库树"或"存储库分支"然后该分支肯定使用共享存储库。您应该在bzr info的输出中看到存储库的路径。

如何修复:通过在bzr reconfigure --standalone的分支中执行命令/home/user1/project/dev,指示bzr停止使用共享存储库。再次检查bzr info的输出。现在它应该被命名为#34; Standalone tree"或"独立分支"。之后,user2应该能够成功推送到该分支。

答案 1 :(得分:1)

(由user3提供) 可以使用以下命令(组名称为project_dev)来修复此问题:

chgrp -R project_dev /home/user1/project/dev
find /home/user1/project/dev -type d -exec chmod g+s {} \;
  1. 使所有文件归组cheas_dev所有,
  2. 将粘滞位添加到所有文件夹中,使其下创建的所有文件/文件夹也归集团project_dev所有。

答案 2 :(得分:1)

我认为所有父目录都应具有o + x权限。