两个 Mercurial 回购。在远程机器上——一个可以通过 ssh 克隆;另一个,不是

Posted

技术标签:

【中文标题】两个 Mercurial 回购。在远程机器上——一个可以通过 ssh 克隆;另一个,不是【英文标题】:Two Mercurial repos. on remote machine -- one is cloneable via ssh; the other, not 【发布时间】:2020-01-22 03:21:53 【问题描述】:

在我的 LAN 上,在远程计算机 people 上,我的主目录中有两个 Mercurial 存储库:Documentsstage。需要明确一点:这两个子目录都是 Mercurial 存储库,它们在同一台机器上彼此对等。

当我在另一台机器上运行hg clone ssh://people:3887/Documents 时,存储库会按预期克隆。当我运行hg clone ssh://people:3887/stage 时,响应是:

remote: abort: error: node name or service name not known
abort: no suitable response from remote hg!

这两个存储库有什么不同,即一个可克隆而另一个不可克隆?在本地机器上,作为我 sshing 的同一用户,我可以在任一存储库中运行所有常用的 hg 命令而不会出现问题。我在两个存储库的权限中看不到任何明显的东西,包括.hg/ 中的文件,无论如何,我可以以同一用户身份在本地执行所有 Mercurial 操作。

【问题讨论】:

我在主机上试过这个:cp -a stage S1,然后在远程机器上:hg clone ssh://people:3887/S1,它成功了。然而,hg clone ssh://people:3887/S1 stage 返回abort: cannot create new http repository,尽管远程机器上还没有这样的文件或目录。 hg clone ssh://192.168.0.3:3887/stage S0 还返回 remote: abort: error: node name or service name not known abort: no proper response from remote hg! 所以看起来姓名stage. ssh 服务器是什么操作系统?这像是 Unix 与 Windows 区分大小写的问题吗? Gentoo Linux。没有。 【参考方案1】:

通过在主机上将 stage 重命名为 Stage 解决了问题。然后可以正常克隆存储库。

【讨论】:

以上是关于两个 Mercurial 回购。在远程机器上——一个可以通过 ssh 克隆;另一个,不是的主要内容,如果未能解决你的问题,请参考以下文章

markdown 使用源树一次推到两个远程回购

无法推送到 chiselapp 上托管的化石回购

将 Mercurial 存储库移动到现有 git 存储库的子目录中

Mercurial:从官方 repo 中提取,推送到 man-in-the-middle repo?

使用 Apache 和 Windows 通过 HTTP 推送我的 Mercurial 存储库

TortoiseHg 3.6.3打破了mercurial keyring?