通过SSH的Mercurial覆盖了用户名

Vis*_*mar 3 svn ssh mercurial

我正在将我们的公司SCM从SVN迁移到mercurial.

目前的情况是这样的.SVN在专用于它的单独Ubuntu服务器上运行.因此,所有开发人员都使用在Ubuntu服务器上创建的用户从他们各自的机器上使用"svn + ssh"协议来检查代码.因此,无论他们在SSH上使用哪个用户,它都会在repo上记录为changeset的作者.

因此,在Mercurial中,是否可以使用在Ubuntu上创建的同一组用户,并且只要开发人员通过SSH签入(而不是在hgrc中设置的本地用户名),就可以将其记录为作者?

hg clone ssh://user@192.168.2.2//hg/support

是我想要使用的.它适用于作者问题.

Lau*_*lst 6

不,这是不可能的.您正在遇到中央版本和分散版本控制之间的根本区别.

在DVCS中,作者在每个开发人员的本地配置中配置,并在提交更改后立即设置.在此之后,提交是不可变的,其哈希是固定的,因此当您推送它时,服务器无法更改作者.

这不是一个问题,咒语是:如果你不相信你的开发人员设置正确的名称,可能你不应该首先让他们访问推送代码.作者仅仅是有用的元数据,而不是权威的.

如果你仍然需要以某种方式记录这个,你可以做的是创建一个pushlog,使用一个钩子记录哪些用户推送了什么变更集.例子就在那里,例如Mozilla有一个,谷歌为"mercurial pushlog".

  • @Laurens Holst就是现场.考虑一下跳过pushlog - 它可能比你想象的要重要得多. (3认同)