【发布时间】:2014-10-28 00:03:21
【问题描述】:
我做了一些提交,但后来我意识到我的用户名设置不正确。我更改了它并使用正确的用户名进行了更多提交。有没有办法在推送所有提交之前更改第一次提交以使用新用户名?
【问题讨论】:
我做了一些提交,但后来我意识到我的用户名设置不正确。我更改了它并使用正确的用户名进行了更多提交。有没有办法在推送所有提交之前更改第一次提交以使用新用户名?
【问题讨论】:
以下是我将如何实现您的目标,它依赖于 Mercurial 的补丁队列 @987654321@。 (更新后包含@MarkTolonen's 精彩评论!)
第 0 步。备份您的工作! (你可以创建一个本地一次性克隆来试试这个)
mq 扩展(参见帮助here)hg qimport 将您要编辑的变更集导入补丁队列hg qpop -a 将这些补丁从应用的补丁堆栈中提取出来hg qpush推送第一个补丁hg qref -U将补丁的作者更新为当前用户(或使用hg qref -u <username>明确设置)hg qfin -a 将补丁最终确定为变更集我最初的步骤包括在文本编辑器中手动设置用户,取代了上面的步骤 4-6:
A.打开文件夹.hg\patches,每个变更集都应该有一个###.diff 文件
B. 在您选择的文本编辑器中打开它们
C. 编辑顶部以# User <your old user name>开头的行
并将其更新为# User <your new user name>
D. 保存补丁
E. 使用hg push -a 将它们推回应用的堆栈
【讨论】:
hg qpop -a 之后,您还可以hg qpush 一次一个补丁,然后hg qref -U 更新到当前用户信息,而不是手动编辑每个补丁。还有hg qref -u <username> 明确指定它。
可能最简单(也是最快)的方法是从 Mercurial 到 Mercurial 的 convert your repository 带有特殊的 --authormap 用于用新用户名替换旧用户名
【讨论】: