Mercurial Hg-Git: 从本地目录克隆?

9

我在电脑上有一个本地的Git仓库,现在想使用Hg-Git克隆它。当我从git://类型路径克隆时,一切正常,但如果我尝试从本地目录克隆,则无法成功。

以下是一个示例...

hg clone "C:\Users\James\Documents\My Games\FalloutNV"
destination directory: FalloutNV
importing Hg objects into Git
abort: The system cannot find the file specified

路径确实存在,并且它知道它是一个Git repo,但是它的方向相反了。它应该将Git对象导入到一个(新的)Hg repo中。
有什么想法吗?我在Windows上,尝试使用TortoiseHg,但在命令行中也感觉舒适。
更新
今晚我发现,如果我将FalloutNV重命名为FalloutNV.git...克隆将神奇地从本地磁盘工作。这可能会有所帮助!

当源目录不包含空格时,它是否有效? - Rudi
1个回答

5
这很奇怪,因为该错误消息通常与Hg-Git(即其中的dulwich部分)找不到您的ssh密钥有关。
这就是为什么manojlds建议使用明确地使用文件协议进行克隆(除了我会在开头使用三个"/"而不是两个,如"file:///C:/Users/James/Documents/My Games/FalloutNV")。
在Windows机器上使hg-git Mercurial插件工作的指南”证实了ssh问题:
如果你遇到类似“abort: The system cannot find the file specified”的错误,那么 dulwich 在你的 PATH 中找不到 ssh。你需要确保安装了 Cygwin 的 OpenSSH 并且可以从命令行运行“ssh”。(它还建议您获取 dulwich 库的最新版本)

OP jocull 在评论中添加:

有趣的事实:今晚我发现如果我将“FalloutNV”重命名为“FalloutNV.git”……克隆将神奇地从本地磁盘上工作。

这类似于Git协议页面,其中本地Git存储库的每个路径都以.git结尾。


我在Windows的~/James/.ssh目录下生成了SSH密钥,包括id_rsaid_rsa.pub。它们需要在哪里设置才能被Dulwich默认识别?我使用Git时使用OpenSSH,主要是因为Putty密钥与GitHub等地方的格式不同。 - jocull
我可以确认从GitBash中它似乎正常工作。我需要在Cygwin内部进行类似克隆的操作,而不是使用Windows命令行吗?那会稍微麻烦一些。 - jocull
@jocull:关于openSSH,我在https://dev59.com/inE85IYBdhLWcg3w3Xhp 上提供了更详细的信息。 - VonC
@jocull:关于git bash,如果你使用的是msysgit(http://code.google.com/p/msysgit/downloads/list),则不需要Cygwin。请参见http://stackoverflow.com/questions/4821372/does-git-on-windows-use-mysys/4821920#4821920和https://dev59.com/o3A75IYBdhLWcg3wuLjD#3144417。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接