我刚在Centos 5.5 x64服务器上安装了Mercurial 1.9.3。我正在使用hgweb.wsgi
和mod_wsgi
发布我的存储库。
此服务器仅供我们的内部代码库和开发团队使用,因此我还使用.htaccess
和基本HTTP身份验证保护我的服务器。这一切都很好,我可以将存储库克隆到本地并将更改推回到中央存储库。
有一件事我不能正确理解,如何控制和管理用户。
例如,我的中央存储库服务器.htpassword
文件中有两个用户:bob
和kevin
。
在每个bob
和kevin
的本地计算机上,他们都有自己的Mercurial .hgrc
文件,并配置了username
个设置。
但是,这些.hgrc
用户似乎与远程服务器的.htpassword
文件中指定的用户完全没有任何关系。
这意味着我最终可能会推送来自“米老鼠”和“唐老鸭”的中央存储库,这是无用的。
如何强制将本地.hgrc
用户名的端到端映射到.htpassword
用户进行维护,即确保.hgrc
中指定的用户与.htpassword
匹配用户?
答案 0 :(得分:6)
这不是一个答案,但值得一提:一开始每个人都担心这个问题,但实际上这不是问题。
当用户提交DVCS时,无论是Mercurial,git还是其他,他们都不一定连接到您控制的任何身份验证/授权系统,因此他们的提交必须(无论是本地)提交给任何作者他们想断言的信息。您可以稍后将push
上的更改集拒绝到您控制的repo / server,但这对您和他们来说都是一个很大的麻烦。这不仅仅是重新设置他们的名称/密码,他们必须改变该变更集的历史记录以及所有后续变更集以更改作者信息。
完全不满意解决方案的列表是:
如果您肯定无法冒险进入特定仓库的伪造变更集,那么使用人工过滤器,人们推送到共享回购A并且只有审阅者/ buildmanager /您可以从回购A推送到回购B,其中回购B是官方构建来自。 Mercurial本身使用这个系统。
最后我的建议是不要担心。值得招聘的开发人员很自豪地将他们的名字写在他们的承诺上,如果你没有值得雇用的开发人员,那你已经注定要失败了。
答案 1 :(得分:0)
如何实施本地.hgrc用户名到.htpassword用户的端到端映射以维护
没有办法做到这一点。但是(相反)ACL扩展+ ssh(hg-ssh或mercurial-server)提供了更可预测的结果
PS
[ui] username =
可用并且在变更集注释上下文中只有 ,就像注释一样,仅此而已