gpt4 book ai didi

linux - Mercurial ACL 防止拉

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:47 25 4
gpt4 key购买 nike

请帮助我理解 Mercurial 与 ACL 相结合背后的机制。

我们的团队使用 Mercurial 作为版本控制系统。设置非常简单:两个开发人员(一个 linux,一个 windows),远程仓库(linux)。每次,windows 用户 W checkin 修改,linux 用户 L 之后想要拉取,都会显示以下错误消息(取决于更改的文件) :

pulling from ssh://user@domain.com
searching for changes
adding changesets
transaction abort!
rollback completed
abort: stream ended unexpectedly (got 0 bytes, expected 4)
remote: abort: Permission denied: /repopath/.hg/store/data/paper/tmp.txt.i

这是因为文件访问是由 linux 的 ACL 列表处理的。使用 setfacl 命令更正 ACL 权限后,一切运行顺利,L 可以拉取。即使 W 以正确的权限克隆了 repo,.hg 目录中的(新的/修改的)文件也具有错误的(默认)权限。存储库的父文件夹具有正确的权限集,所以我不知道这些权限是从哪里继承的。

有人遇到过类似的问题吗?提前致谢!

最佳答案

在我的 Linux 机器上,我必须为组权限设置粘滞位。本质上,当您创建一个将成为 Mercurial 存储库的目录时,您需要使用 chmod g+s <repoDirectory>这将强制在该目录下创建的任何内容都对组成员具有读/写/执行权限,而不管他们创建文件的默认值是什么。我使用的是标准 Unix 组而不是 ACL 列表,所以我不确定这对您来说效果如何。

关于linux - Mercurial ACL 防止拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10979355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com