当前位置:  开发笔记 > 编程语言 > 正文

我可以在mercurial变更集上更改用户名吗?

如何解决《我可以在mercurial变更集上更改用户名吗?》经验,为你挑选了4个好方法。

我没有在我的开发计算机上设置用户名并进行了一些提交.我可以追溯更改用户名,以便明确谁提交了这些更改集?



1> Andrew Aylet..:

如果您还没有发布您的存储库,那么这应该不会太难.您需要使用转换扩展为Mercurial,这将允许您"过滤"现有存储库以创建新存储库.--authors开关允许您在过滤时为每个提交编辑作者.

如果您发布存储库,请考虑对用户的影响,mercurial wiki有一些不编辑历史记录的原因.

通过将这些行添加到.hgrc来启用扩展:

[extensions]
hgext.convert=

编写一个文件以将旧名称映射到新名称(authors.convert.list):

user@ubuntu=real.name@my.example.com

运行转换:

hg convert --authors authors.convert.list SOURCE DEST

我刚检查过它,它对我有用:).


如果您解释了"SOURCE"和"DEST"应该是什么,这也会有所帮助.路径?不幸的是,即使是hg的帮助也无法解释它们是什么.
这对我不起作用.它改写了整个历史,无论我是否是作者.之后Rebase失败了.有没有办法只转换最近的,未刷新的提交?

2> Soulman..:

如果你有一个单一的传出变更,有一个很简单的方法来做到这一点:

$ hg ci --amend --user "My Name " -X "**"

-X "**"如果您没有任何本地更改,则可以省略该选项.



3> Andy MacKinl..:

我尝试了几种不同的方法(包括Convert Extension,我发现它创建了一个不相关的存储库).使用MQ编辑历史记录的Mercurial wiki说明是我发现最有帮助的.(当然,关于编辑任何公历史的常见警告都是一个坏主意,但只有你自己的本地变更集才可以编辑).

我将总结这里的关键步骤,并澄清更改作者的机制.假设第一个错误的作者提交正在修订BAD(并且您当然没有在任何地方发布您的更改),您应该能够执行以下操作(我假设您在存储库根目录下):

通过将此添加到$ HOME/.hg/hgrc来启用MQ

[extensions]
hgext.mq=

将最近的变更集转换为补丁:

$ hg qimport -r BAD:tip

(他们现在可以找到.hg/patches)

"取消应用"所有补丁(假设它们已被应用并反转它们),以使您的存储库进入修订状态之前BAD:

$ hg qpop -a

如果您查看补丁,您将看到作者在所有补丁中以一种注释行编码:

$ grep User .hg/patches/*
.hg/patches/102.diff:# User Firstname Lastname 

现在使用您最喜欢的搜索/替换工具来修复补丁(我在这里使用Perl).假设您希望提交名称为f.lastname@righturl.example.com:

$ perl -pi -e 's/f\.lastname\@oops\.wrongurl\.example\.com/f.lastname\@righturl.example.com/' .hg/patches/*.diff

现在检查您是否已成功更改作者姓名,然后重新应用修补程序:

$ hg qpush -a

然后将应用的补丁转换为适当的变更集:

$ hg qfinish -a

而且你已经完成了.您的存储库仍然列为相关信息,因此您不会收到有关推送的任何投诉.



4> zanedp..:

我已经使用了histedit扩展,它允许我更改作者而不用像"转换"那样的新回购或使用"mq".

首先,在Mercurial配置文件中,确保正确设置了用户名并启用了histedit扩展:

[ui]
username = Your Name 

[extensions]
histedit =

然后,如果要更改版本40,请使用:

hg histedit -r 40

在出现的文件中,在与修订版40对应的行上,将单词更改pickedit.保存并关闭文件.

现在,hg commit.您需要重新输入提交消息并保存.

最后,hg histedit --continue.

提交将与您的新提示一起显示username.副作用是提交的时间戳也会更新.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有