version-control - Mercurial:更改一些尚未推送的提交的用户名?

标签 version-control mercurial

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

最佳答案

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

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

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

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

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

关于version-control - Mercurial:更改一些尚未推送的提交的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25645136/

相关文章:

svn - 在 subversion 中取消删除文件的简单方法是什么?

git - PHPStorm 和其他 JetBrains IDE 的 : how to change default git colors?

mercurial - 有没有办法在 hg unshelve -i 输出中手动应用差异?

eclipse - 使用 Eclipse 时,添加到 .hgignore 中的默认项有哪些?

java - 使用 Eclipse 和 Mercurial 进行项目设置

svn - Subversion 标记和安全性

git - 描述 Git 符号

mercurial - teamcity octopus部署处理具有相同项目名称的多个代码分支(默认和开发)

Mercurial 和 Bitbucked : how to update fork?

version-control - Mercurial .hgignore 是我处理编译时生成的数百个临时文件的唯一选择吗?