如何对mercurial存储库进行匿名化?

时间:2012-05-02 19:26:24

标签: mercurial

我有一个编程任务,我将在本周末交给我的大学,并且他们对保持公正性的任务的匿名性有严格的规定,所以如果我的名字(或任何其他明显的识别信息)出现在工作的任何地方,它可能会被自动取消资格。

在准备将所有内容刻录到光盘时,我刚注意到/记得我的HG回购是完整我的名字副本。代码都很干净,但每个变更集的作者都是我的全名和电子邮件,或者我的大学登录ID和实验室计算机的主机名(取决于我工作的地方)。

我需要创建一个匿名版本的仓库(或换掉我的学生证号码的所有名称)而不会丢失它所拥有的任何其他信息。

所以,正如标题所说,我如何匿名一个mercurial存储库?

2 个答案:

答案 0 :(得分:8)

您可以使用Mercurial的Convert extension--authors option将您的存储库“转换”为新的Mercurial存储库,在转换过程中更改作者的姓名。

从第二个链接引用:

  

转换也可以在转换期间重新映射作者姓名,如果是   提供了--authors选项。参数应该是一个简单的文本文件,将每个源提交作者映射到目标提交作者。它   对于使用UNIX登录来识别作者的源SCM很方便(例如:   CVS)。例如:

john=John Smith <John.Smith@someplace.net>
tom=Tom Johnson <Tom.Johnson@bigcity.com>

答案 1 :(得分:1)

如果您没有任何合并更改集,则可以尝试使用Mercurial 2.0中的graft命令将存储库移植到新存储库,同时更改记录的用户名。

如果您确实有合并更改集,那么可以在Mercurial 2.2中使用transplant扩展名,但更改记录的用户名似乎更难。