我正在使用以下命令将 CVS 存储库转换为 Mercurial:
cvs -d :pserver:<user>@<cvsroot> mymodule
hg convert mymodule
在 Ubuntu 12.04 机器上,这可以工作,并生成一个有效的 Mercurial 存储库。在 Fedora 17 机器上它花了一些时间工作,然后失败并出现以下错误:
...
38000 <commit message>
37930 changeset entries
sorting...
converting...
37929 Initial Checkin.
cvs server: cvs checkout: cannot find module `mymodule/<cvsroot>/<some file>` - ignored
abort: unknown CVS response: error
编辑:起初我忽略了这一点,但它找不到的路径有点有趣;它由模块名称后跟 CVSROOT 和实际路径组成。
两台机器都有相同的 .hgrc 文件并且都运行 CVS 1.12.13。唯一似乎相关的环境变量是 CVSROOT,它在两台机器上都是相同的,并且设置为与我<cvsroot>
上面的占位符相同的值。
每次产生错误的文件都是相同的,但它是一个完全正常的文件;我无法识别任何将它与任何其他文件区分开来的东西。
为了清楚起见,我知道我可以简单地使用工作机器,并且我知道还有许多其他工具,例如 cvs2svn[hg] 也可以进行存储库转换。但我对此不感兴趣;我想了解这个具体问题。
为什么同一存储库的转换在不同的机器上会失败,有哪些进一步调试的策略?