我正在将公司SCM从SVN迁移到mercurial。
目前的情况是这样的。 SVN在专用于它的单独Ubuntu服务器上运行。 因此,所有开发人员都使用在Ubuntu服务器上创建的用户从他们各自的机器上使用“svn + ssh”协议来检查代码。因此,无论他们在SSH上使用哪个用户,它都会在repo上记录为变更集的作者。
所以,在Mercurial中,是否可以使用在Ubuntu上创建的同一组用户,并且只要开发人员通过SSH签入(而不是在hgrc中设置的本地用户名),就可以将其记录为作者? / p>
hg clone ssh://user@192.168.2.2//hg/support
是我想要使用的。它适用于作者问题。
答案 0 :(得分:6)
不,这是不可能的。您正在遇到中央版本和分散版本控制之间的根本区别。
在DVCS中,作者在每个开发人员的本地配置中配置,并在提交更改后立即设置。在此之后,提交是 immutable ,其哈希是固定的,因此当您推送它时,服务器无法更改作者。
这不是一个问题,咒语是:如果你不相信你的开发人员设置了正确的名称,那么你可能不应该首先让他们访问推送代码。作者只是有用的元数据,而不是权威的。
如果你仍然需要以某种方式记录,你可以做的是创建一个pushlog,使用一个钩子记录哪些用户推送了什么变更集。那里有例子,例如Mozilla有一个,谷歌为“mercurial pushlog”。