将 cvs 转换为 Mercurial

发布于 2024-09-30 23:09:31 字数 1125 浏览 5 评论 0原文

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

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

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 服务器,然后与该实例而不是远程服务器进行通信。

我基于以下观察:

  1. 我创建了一个 cvs.bat 文件,它将命令行参数发送到文件。该文件显示参数“服务器”。
  2. 进程监视器显示 hg.exe 尝试打开该文件 C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos 这当然会失败。

难道hg不理解sspi连接字符串?

编辑2:

不是解决方案,但我找到了解决方法:将完整的远程存储库复制到我的计算机上并且:

cvs -d :local:\localcopyofrepo checkout repo
hg convert repo

一切正常

I'm trying to convert a CVS repository to mercurial but can't get it to work.

I start with a clean checkout:

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

Which works fine

I then do:

hg convert .

But it fails with:

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')

I'm running cvsnt on windows 7

Edit:
Investigated this a bit more and it seems like mercurial starts a local server cvs server and then communicates with that instance instead of the remote server.

I base this on the following observations:

  1. I created a cvs.bat file that sends the command line arguments to a file. The file shows the argument "server".
  2. process monitor shows that hg.exe tries to open the file
    C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos which of course fails.

Can it be that hg does not understand the sspi connection string?

Edit 2:

Not a solution but I found a workaround: Copy the complete remote repository to my machine and:

cvs -d :local:\localcopyofrepo checkout repo
hg convert repo

Everything worked fine

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

踏雪无痕 2024-10-07 23:09:31

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

hg convert <full_path_including_drive>

在 CVS 存储库的签出沙箱上使用 . 路径。您还可以尝试通过在命令中添加 -s cvs 来在 convert 命令中指定存储库类型,结果将如下所示:

hg convert -s cvs C:\sandbox\cvsrepos

Looks like the error message is telling you to use an absolute pathname to the repository, try using

hg convert <full_path_including_drive>

rather than the . path on a checked out sandbox of your CVS repository. You could also try specifying the repository type in the convert command by adding -s cvs to the command, the result would look something like this:

hg convert -s cvs C:\sandbox\cvsrepos
栩栩如生 2024-10-07 23:09:31

您似乎正在使用 ConvertExtension。您可以尝试从父文件夹中尝试 hg Convert 并指定文件夹名称,而不是 . 并看看它是否有效?

It looks like you are using ConvertExtension. Can you try hg convert from the parent folder and specify the folder name, instead of . and see if it works?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文