Tsc*_*hef 5 mercurial access-control
我有一个mercurial存储库,具有以下目录结构:
/
/system
/applications
/applications/client1
/applications/client2
/applications/client3
Run Code Online (Sandbox Code Playgroud)
我通过http(还没有ssl)在apache子域上提供repo,并希望限制push,pull和commit的访问权限.一般来说,我不希望一些用户看到目录,也不希望目录的历史记录!
我搞不清楚了 :(
既然您在 1 个存储库中拥有所有内容,那么就不会。
tl;dr:存储库总是完整的,如果您可以克隆它,您就可以看到所有内容,没有办法限制对本地克隆中内容的访问,只能限制对中央服务器托管的克隆的访问。
Mercurial 服务器可以通过两种方式处理授权:
第一种类型将使整个存储库只读或不可用。但是,如果用户具有读取访问权限,他将能够克隆并查看整个存储库、历史记录和文件等。
但是,您可以通过禁止推送来阻止同一用户修改中央副本。这意味着该用户可以使用自己的私有克隆做任何他想做的事情,但他无法将这些更改推回到中央克隆。
另一种类型允许您更细粒度地控制允许发生更改的位置。但是,请再次注意,用户将能够克隆并查看整个存储库。
此外,用户还可以使用自己的个人克隆做任何他想做的事情。然而,虽然这种类型的授权并不完全禁止推送到中央存储库,但挂钩会查看正在推送的变更集,并且如果您决定不允许该用户将更改推送到“client2”内容,他尝试推送的任何此类变更集都将被中止。
换句话说,用户能够修改他的私有克隆,包括更改“client2”中的内容,但如果他提交包含“client2”更改的变更集,他将无法推送回中央存储库。然后,在他的推送完成之前,他必须剥离或以其他方式删除这些变更集。
总结一下:
| 归档时间: |
|
| 查看次数: |
1815 次 |
| 最近记录: |