在我们的企业环境中,我们正在从Subversion切换到Mercurial。 将有一个中央存储库,可以通过基本的HTTPvalidation通过HTTPS访问。
现在我好奇是否有可能强制提交特定的用户名? 我正在讨论可以在.hgrc设置的用户名
[ui] username = John Doe <[email protected]>
并且在日志消息中可见。
由于这个文件被放置在每个开发人员的机器上,所以不在pipe理员的控制范围之内。
这不会是一个问题,因为我们相信我们的内部开发者,但外部(自由职业者)也可以访问至less一些存储库。 我们明确不希望他们用不同的名字签入。
如果用户名可以被绑定/强制为HTTP用户名,那将会很好。 例如,如果John将其更改推送到URL https://[email protected]/hg/project1则所有提交的用户名将设置为John Doe <[email protected] 。
这可能吗?
您可以在推送时在服务器端强制执行用户名。 即对于您的自由职业者来说,只允许他们推送包含一些预先批准的用户名的更改是可行的(这可能会限制Mercurial的其他function,也就是说人们可以在推送之前相互分享他们的更改)。 您也可以在中央服务器上拥有预先批准的用户名的完整列表。
所有这些都可以通过prexxchangegroup钩子完成。
正如djc提到的,你可以使用prexxchangegroup钩子。 在您的中央仓库执行提交策略的文档可以在Mercurial文档的EnsureCommitPolicy wiki页面上find。
这可能会产生其他问题,因为用户不会发现问题,直到他们试图推回到已安装钩子的“主”存储库。 在这种情况下,他们将不得不从他们的回购去除所有的修订,并重新申请一个新的用户名。
一个更好的select,国际海事组织,将只是不允许你的自由职业者访问主要的存储库。 他们可以将更改集发送给您的主要开发人员,然后他们按摩这些修补程序并将其放入存储库中。
如果您只需修复现有的问题,请参阅“我可以更改一个mercurial变更集上的用户名”在计算器上。