Mercurial到Git迁移后如何验证历史记录

Mercurial到Git迁移后如何验证历史记录,git,mercurial,fastexport,Git,Mercurial,Fastexport,我使用快速导出工具将一个Mercurial项目(有着巨大的历史)转换为Git项目。现在,我想验证它在迁移过程中没有遗漏任何历史记录,是否有任何自动化方法来交叉检查历史记录?我自己没有这样做,但我会考虑从Git重新导出到Mercurial。然后比较汞和汞,确保你得到完全相同的东西回来。将hg日志捕获到一个文本文件中以获取原件和副本,然后对文件进行区分可能会起作用。一个不是很彻底但很简单的测试是对修订进行计数:git rev list--count--allvshg id-n tip。除非有特殊情况

我使用快速导出工具将一个Mercurial项目(有着巨大的历史)转换为Git项目。现在,我想验证它在迁移过程中没有遗漏任何历史记录,是否有任何自动化方法来交叉检查历史记录?

我自己没有这样做,但我会考虑从Git重新导出到Mercurial。然后比较汞和汞,确保你得到完全相同的东西回来。将
hg日志
捕获到一个文本文件中以获取原件和副本,然后对文件进行区分可能会起作用。

一个不是很彻底但很简单的测试是对修订进行计数:
git rev list--count--all
vs
hg id-n tip
。除非有特殊情况,否则这两个计数应该匹配,因为Mercurial中的每个提交都应该有一个Git中的提交。
hg id-n tip
不会以任何可靠的形式提供修订的数量。如果您至少使用了一次
hgcommit--amend
或类似功能,那么它将已经关闭。类似于
hglog-T的东西“\n”| wc-l
会更有用reliable@planetmaker:我做了一个简单的回购,提交了两次(因此tip是rev 1),然后做了一个更改并
hg commit--amend
ed。tip ID仍然是1。Mercurial必须删除“已修改”的提交(
已将备份包保存到…/87af93bacd8a-10005142-amend.hg
)。除了忘记了
-r
标志之外,我还错过了什么吗?:-)(需要
hgid-n-r提示
,而不仅仅是
hgid-n提示
)(也许您添加了Evolve扩展?我不确定转换器会用它做什么)是的,一旦有过时的变更集,
hgid-n
就不会给您一个正确的估计。可能是不创建任何evolve,即使在使用amend时也是如此。我想他们会的。