编辑作者以获取特定的更改集

时间:2012-02-01 10:49:39

标签: mercurial

目前我正在考虑在工作中从subversion过渡到Mercurial,因此Mercurial存储库尚未发布。

我使用authormap参数将我们的用户名转换为Mercurial格式,这很好。

不幸的是,有两个人一直在同名。存储库不是很大,所以我想改变作者以匹配合适的人。出于这个原因,我想问:

有没有办法更改特定变更集或变更集列表的作者?

2 个答案:

答案 0 :(得分:8)

您可以使用捆绑的扩展程序Mercurial Queues (MQ)来更改提交作者。请注意,只有历史记录是线性的,MQ才会起作用。如果有分支,则需要先将它们重新绑定到临时侧分支,然后在编辑后将它们重新绑定。

首先qimport更改直到您要修改的第一个变更集:

hg qinit
hg qimport -g -r <first-revnr>:tip

然后使用qpopqgoto导航到相应的更改集:

hg qgoto <revnr>.diff

然后使用qrefresh更改当前有效变更集的用户信息:

hg qrefresh -u "Some User <user@example.com>"

您可以使用hg log验证用户是否已正确更新。在此之后,重复所有其他变更集。

完成后,qpush所有补丁并使用qfinish完成存储库。

hg qpush -a
hg qfinish -a

答案 1 :(得分:2)

您也可以使用evolve extension。设置扩展名

hg amend -U && hg prev

表示提交,然后是hg evolve --all

Evolve引入了一个元图,说明哪个提交替换了哪个提交。 因此,当我们多次执行hg amend -U时,我们使用替换旧提交的不同作者创建提交。 hg evolve --all将使用替换信息来确定移动提交的位置,这些提交基于我们预先替换的提交。

对IRC#mercurial的mercurial开发者的信任。