我有一个集中的Mercurial存储库,我希望通过SSH提供访问权限。
我做了一个chown root:开发人员存储库-R在存储库目录中,因此组'开发人员'中的所有用户都应该有权访问。
所以,我克隆,将我的初始文件作为用户A,提交,推送,完成添加到存储库。现在,我作为用户B,克隆,添加文件,提交和推送。但是,当我进行拉动,更新,并将该文件更改为用户A然后尝试推送时,我得到了
pushing to /var/hg/repository
searching for changes
1 changesets found
adding changesets
adding manifests
adding file changes
transaction abort!
rollback completed
abort: Permission denied: /var/hg/repository/.hg/store/data/test.i
我错过了配置步骤吗?我应该不使用SSH吗?
编辑我发现使用粘滞位可以解决问题:How to set permissions so two users can work on the same hg repository?。这是一个糟糕的解决方案吗?
答案 0 :(得分:3)
Sticky group bit是执行此操作的正确方法。此外,过去需要设置用户的umasks,以便为他们添加的新文件启用组读/写,但在过去一两年内,复制.hg目录的权限(不是所有权)。在repo本身对新创建的文件,所以umask并不重要。
答案 1 :(得分:2)
Mercurial documentation表示使用setgid
标记是可以的。
答案 2 :(得分:2)
也许你可能对mercurial-server感兴趣:http://www.lshift.net/mercurial-server.html
如果您不想在托管mercurial中央存储库的服务器上为开发人员提供shell,那么mercurial-server非常有用。