【问题标题】:Mercurial over SSH with usernames overriddenMercurial over SSH,用户名被覆盖
【发布时间】:2012-06-07 12:34:45
【问题描述】:

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

目前的情况是这样的。 SVN 在专用于它的单独 Ubuntu 服务器上运行。 因此,所有开发人员都使用在 Ubuntu 服务器上创建的用户使用“svn+ssh”协议从他们的个人机器上签入和签出代码。因此,无论他们在 SSH 上使用哪个用户,它都会作为变更集的作者记录在 repo 中。

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

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

是我想要使用的。它有效,但对于作者问题。

【问题讨论】:

  • 如果我推送自己和其他人所做的更改怎么办?他们都变成了我吗?
  • @robert ,实际上每个开发人员都有单独的登录密码,只有分配给它的开发人员知道。所以你的零钱是你的,他的也是他的。

标签: svn mercurial ssh


【解决方案1】:

不,这是不可能的。您遇到了集中式版本控制和分散式版本控制之间的根本区别。

在 DVCS 中,作者在每个开发人员的本地配置中进行配置,并在提交更改后立即设置。在此之后,提交是不可变的,它的哈希是固定的,因此当你推送它时,服务器没有能力改变作者

这不被认为是一个问题,口头禅是:如果您不相信您的开发人员设置了正确的名称,那么您可能一开始就不应该让他们访问推送代码。作者只是有用的元数据,不具有权威性。

如果您仍然需要以某种方式记录此内容,您可以做的是创建一个推送日志,使用一个挂钩记录哪些用户推送了哪些变更集。例子在那里,例如Mozilla 有一个,google 的“mercurial pushlog”。

【讨论】:

  • 哦,太好了!谢谢 Laurens 让我看看 pushlog 是如何为我工作的。 :)
  • @Laurens Holst 在现场。也可以考虑跳过推送日志——它可能没有你想象的那么重要。
猜你喜欢
  • 1970-01-01
  • 2010-12-15
  • 2012-04-29
  • 2017-02-14
  • 2016-11-11
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多