Authentication 验证Mercurial变更集是否来自他们所说的人';来自

Authentication 验证Mercurial变更集是否来自他们所说的人';来自,authentication,configuration,mercurial,Authentication,Configuration,Mercurial,我正在调查在公司环境中使用Mercurial。该计划是使用由Web服务器(IIS)托管的中央存储库,一旦开发人员在本地或团队内测试了更改,他们将推送到该存储库 我已经将IIS配置为针对Active Directory对用户进行身份验证,但似乎存在一个漏洞,尽管我可以强制谁可以推送,但我无法强制他们将变更集作为自己进行签名 例如,给定一个基本的“提交”场景: 用户提交到其本地存储库 用户将其更改推送到中央存储库 在步骤1中,用户向本地存储库提供一个用户名(通过他们的.hgrc文件或其他文件),但实

我正在调查在公司环境中使用Mercurial。该计划是使用由Web服务器(IIS)托管的中央存储库,一旦开发人员在本地或团队内测试了更改,他们将推送到该存储库

我已经将IIS配置为针对Active Directory对用户进行身份验证,但似乎存在一个漏洞,尽管我可以强制谁可以推送,但我无法强制他们将变更集作为自己进行签名

例如,给定一个基本的“提交”场景:

  • 用户提交到其本地存储库
  • 用户将其更改推送到中央存储库
  • 在步骤1中,用户向本地存储库提供一个用户名(通过他们的.hgrc文件或其他文件),但实际上没有任何方法强制这是他们的“真实”用户名

    在步骤2中,用户必须向IIS提供他们的“真实”凭据,才能允许推送,但他们的变更集将以他们在步骤1中提供的用户名显示在历史记录中。似乎如果bob在第1步中使用“alice”作为他的用户名,他可以确保alice因任何错误的更改而受到责备

    有没有办法确保推送过程中这些用户名匹配(通过挂钩或其他方式)?或者,另一种方式,以确保变更中的真实性达到合理水平

    编辑:在进一步考虑之后,我想我实际上不想强制这些名字排成一行;如果Bob和Alice一直在单独的回购协议中合作,Bob最终应该能够推动他们所有的变化,而不仅仅是他自己的变化。我真正想要的只是确保,如果归结到它,我可以告诉谁做了什么改变,以更明确的方式,而不仅仅是用户名的应用

    我认为这是答案的一部分,但我仍然不认为我掌握了全部情况。

    我最终发现,这基本上是说我的选择基本上是让每个人都用GPG签署变更集,或者在mercurial之外建立一个“推送日志”,跟踪用户推送到中央存储库的内容


    Ry4an还指出了这一点(基本上是重复的),并给出了一些很好的答案,证实了我在其他地方的发现。

    这是最近在《让我找到它》,因为我对我的答案非常满意,虽然听起来你已经发现这并不是一开始看起来的问题。可能是重复的,所以我加入了另一个问题的链接作为投票结束,但是你的问题被问得更清楚,标题也更容易搜索,所以也许有人合并他们是更好的方式。