将 cvs 转换为 Mercurial
我正在尝试将 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 服务器
,然后与该实例而不是远程服务器进行通信。
我基于以下观察:
- 我创建了一个 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
一切正常
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:
- I created a cvs.bat file that sends the command line arguments to a file. The file shows the argument "server".
- 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看起来错误消息告诉您使用存储库的绝对路径名,请尝试
在 CVS 存储库的签出沙箱上使用
.
路径。您还可以尝试通过在命令中添加-s cvs
来在convert
命令中指定存储库类型,结果将如下所示:Looks like the error message is telling you to use an absolute pathname to the repository, try using
rather than the
.
path on a checked out sandbox of your CVS repository. You could also try specifying the repository type in theconvert
command by adding-s cvs
to the command, the result would look something like this:您似乎正在使用 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?