所以我一直致力于一个相当大的项目,并使用VCS的PlasticSCM。我将它与DVCS模型一起使用,但到目前为止,我只是在办公室机器和家庭之间进行同步。
现在我们让其他人参与到项目中,我想做的是将其他开发人员限制在特定的分支机构,这样只有我才能将分支合并到 / main
所以我去了我的本地存储库,我进行了权限更改(这部分很简单)。但是现在它如何与其他开发人员合作?当他们同步时,是否在其本地存储库上复制了权限?如果他们试图合并到本地存储库中的 / main ,它是否允许,然后当他们尝试将更改推送到我的存储库时会出错?
这是我第一次涉足DVCS,所以我不太确定这种事情是如何起作用的。
答案 0 :(得分:3)
Classic DVCS(Mercurial,Git)不包含ACL,这意味着克隆不会保留任何ACL限制。
这通常是通过原始仓库上的钩子来维护的(这意味着您可能能够修改克隆仓库中的错误分支,但是您无法将其推回到原始仓库)。
正如security page所提到的,对于PlasticSCM来说情况并非如此,并且克隆应该保留对象上设置的ACL(下面的警告),该对象将通过两个领域继承所述ACL:文件系统层次结构(目录,子目录,文件)和存储库对象层次结构:
DVCS设置中的警告是, translate users and groups from one site to another 必须有适当的机制。
Plastic复制系统支持三种不同的翻译模式:
- 复制模式:这是默认行为。安全ID仅在复制时在存储库之间复制。它仅在托管不同存储库的服务器以相同的身份验证模式工作时才有效。
- 名称模式:安全标识符之间的转换基于名称完成。在上图中的示例中,假设用户
daniel
必须按名称从repA
翻译为repB
。在repB
,塑料服务器将尝试找到名为daniel
的用户,并在必要时将其LDAP SID
引入到表中。- 翻译表:它还根据名称执行翻译,但由表格驱动。由用户指定的表告诉目标服务器如何匹配名称:它告诉如何将源用户或组名转换为目标名。下图说明了如何构建转换表以及如何在不同的身份验证模式之间进行转换。
注意:转换表只是一个纯文本文件,每行有两个名称,用分号“
;
”分隔。第一个名称表示要翻译的用户或组(源),右侧表示目标用户或组。