Mercurial:更改一些提交的用户名还没推?

时间:2014-09-03 13:04:37

标签: version-control mercurial

我做了一些提交,但后来我意识到我还没有正确设置用户名。我更改了它并使用正确的用户名进行了一些提交。在推送所有用户名之前,有没有办法更改第一次提交以使用新用户名?

2 个答案:

答案 0 :(得分:2)

以下是我如何实现目标,它依赖于mq extension,Mercurial的补丁队列。 (更新为包含@MarkTolonen's精彩评论!)

步骤0.备份你的工作! (你可以创建一个本地一次性克隆来试试这个)

  1. 在配置文件中启用mq扩展名(请参阅帮助here
  2. 使用hg qimport将要编辑的更改集导入修补程序队列
  3. 使用hg qpop -a从应用的补丁堆栈中提取这些补丁
  4. 使用hg qpush
  5. 推送第一个补丁
  6. 使用hg qref -U将补丁的作者更新为当前用户(或使用hg qref -u <username>明确设置)
  7. 对队列中的每个补丁重复步骤4.和5.
  8. 仔细检查您的工作 - 您的用户名现在是否在日志中显示正确?
  9. 使用hg qfin -a将补丁最终确定为变更集
  10. 您现在应该准备好将更新的变更集推送到公共存储库

  11. 我的原始步骤包括在文本编辑器中手动设置用户,这取代了上面的步骤4-6:

    一个。打开文件夹.hg\patches,每个变更集都应该有一个###.diff文件 B.在您选择的文本编辑器中打开那些 C.编辑以# User <your old user name>开头的顶部的行    并将其更新为# User <your new user name>
    D.保存补丁
    E.使用hg push -a将它们推回应用的堆栈

答案 1 :(得分:1)

从Mercurial到Mercurial的最简单(也是最快)方式可能是convert your repository,特殊--authormap可以用新的

替换旧用户名