我正在尝试将CVS存储库转换为Merurial,但无法使其正常工作。

我从一个干净的结帐开始:

cvs -d :sspi;username=xxx;hostname=yyy.local:/cvsrepos checkout repo

哪个工作正常

然后,我做:
hg convert .

但是它失败了:
assuming destination .-hg
initializing destination .-hg repository
connecting to :sspi;username=xxx;hostname=yyy.local:/cvsrepos
abort: unexpected response from CVS server (expected "Valid-requests", but got 'E cvs [server aborted]: Root :sspi;username=xxx;hostname=yyy.local:/cvsrepos must be an absolute pathname\n')

我在Windows 7上运行cvsnt

编辑:
对此进行了更多调查,似乎Mercurial启动了本地服务器cvs server,然后与该实例进行通信,而不是与远程服务器进行通信。

我基于以下观察结果:
  • 我创建了一个cvs.bat文件,该文件将命令行参数发送到文件。该文件显示参数“服务器”。
  • 进程监视器显示hg.exe试图打开文件C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos当然会失败。

  • 可能是hg无法理解sspi连接字符串吗?

    编辑2:

    不是解决方案,但我找到了一种解决方法:将完整的远程存储库复制到我的计算机上,然后:
    cvs -d :local:\localcopyofrepo checkout repo
    hg convert repo
    

    一切正常

    最佳答案

    看起来错误消息告诉您使用存储库的绝对路径名,请尝试使用

    hg convert <full_path_including_drive>
    

    而不是CVS存储库已 checkout 沙箱上的.路径。您还可以尝试通过在命令中添加convert来在-s cvs命令中指定存储库类型,结果如下所示:
    hg convert -s cvs C:\sandbox\cvsrepos
    

    关于mercurial - 转换csv到mercurial,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4131690/

    10-14 15:44