Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial:更改一些尚未推送的提交的用户名?_Version Control_Mercurial - Fatal编程技术网

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

Version control Mercurial:更改一些尚未推送的提交的用户名?,version-control,mercurial,Version Control,Mercurial,我做了一些承诺,但后来我意识到我的用户名设置不正确。我更改了它,并使用正确的用户名进行了几次提交。在推送所有用户名之前,有没有办法将第一次提交更改为使用新用户名?以下是我将如何实现您的目标,它依赖于Mercurial的修补程序队列。(更新后包含精彩评论!) 第0步。支持你的工作!(您可以创建本地一次性克隆以尝试此操作) 在配置文件中启用mq扩展名(请参阅帮助) 使用hg qimport将要编辑的变更集导入修补程序队列 使用hg qpop-a将这些补丁从应用的补丁堆栈中拉出 使用hg qpush

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

以下是我将如何实现您的目标,它依赖于Mercurial的修补程序队列。(更新后包含精彩评论!)

第0步。支持你的工作!(您可以创建本地一次性克隆以尝试此操作)

  • 在配置文件中启用
    mq
    扩展名(请参阅帮助)
  • 使用
    hg qimport
    将要编辑的变更集导入修补程序队列
  • 使用
    hg qpop-a
    将这些补丁从应用的补丁堆栈中拉出
  • 使用
    hg qpush
  • 使用
    hg qref-U
    将补丁作者更新为当前用户(或使用
    hg qref-U
    明确设置)
  • 重复步骤4。五,。对于队列中的每个修补程序
  • 仔细检查您的工作-您的用户名现在在日志中显示是否正确
  • 使用
    hg qfin-a
    将补丁最终确定为变更集
  • 您现在应该准备好将更新的变更集推送到公共回购

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

    A.打开文件夹
    .hg\patches
    ,每个变更集应有一个
    ####.diff
    文件
    B.在您选择的文本编辑器中打开它们
    C.编辑顶部以
    #User

    并将其更新为
    #User

    D.保存修补程序

    E.使用
    hg push-a
    将它们推回到应用堆栈上

    可能是最简单(也是最快的)从Mercurial到Mercurial的方法是使用特殊的
    --authormap
    hg qpop-a
    之后用新的替换旧的

    用户名,您也可以
    hg qpush
    一次一个补丁,然后
    hg qref-U
    打开更新到当前用户信息,而不是手动编辑每个补丁。另外,
    hgqref-u
    来显式指定它。那会容易得多!我已将其编辑到步骤列表中。谢谢@MarkTolonen!