请帮助我了解 Mercurial 与 ACL 相结合的机制。
我们的团队使用 Mercurial 作为版本控制系统。设置非常简单:两个开发人员(一个 linux,一个 windows),远程 repo(linux)。每次,windows 用户W签入修改并且 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 列表处理的。使用命令更正 ACL 权限后setfacl
,一切运行顺利,L能够拉取。即使W以正确的权限克隆 repo,目录中的(新的/修改的)文件.hg
也具有错误的(默认)权限。repo 的父文件夹具有正确的权限集,所以我不知道这些权限是从哪里继承的。
有人遇到过类似的问题吗?先感谢您!