2

我试图在我的一个非常旧的 ubuntu 服务器(Ubuntu 10.04.4)的帐户中安装 hg。它似乎在本地工作,但我无法通过 ssh 克隆存储库。

$ hg clone ssh://user@server//home/user/path

给我一个“.hg not found”错误。

然而,

$ ssh user@server 'ls /home/user/path/.hg'

效果很好。

会不会是端口的问题?谢谢你的帮助 !

4

4 回答 4

3

已经有一段时间了,所以这个问题可以解决并且没有答案。

无论如何,当我按照Per-user install guide安装 Mercurial 时,我遇到了同样的问题。当我将其重新安装为系统范围的安装时,问题就解决了。

于 2012-10-20T13:32:17.613 回答
1

如果你在某个非标准的地方有 hg,例如 ~/bin/hg 只需告诉 mercurial 在哪里可以找到它 hg clone ssh://you@remote/dir_to_clone --remotecmd bin/hg

如果您运行的是安装了系统范围的 mercurial 的旧发行版(如 RHEL),但您在本地从主目录运行了更多最新版本,则可能会发生这种情况。或者您可能无法在远程机器上安装系统范围的软件。

给 hg --verbose 标志以查看它在远程计算机上运行的精确命令,确保它使用与用于创建远程 repo 的 hg 实例相同的 hg 实例。

老问题,但我来这里是为了寻找答案,所以现在我已经解决了,不妨分享一下。

于 2014-06-29T15:03:25.733 回答
1

还可以尝试 Hal 提到的 --verbose 选项。就我而言,这表明问题是路径前没有足够的“/”字符。

失败的: hg clone --verbose ssh://user@host/home/user/QFDC QFDC

running ssh user@host "hg -R home/user/QFDC serve --stdio"
remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!

作品 - 注意双斜杠(//): hg clone --verbose ssh://user@host//home/user/QFDC QFDC

running ssh user@host "hg -R /home/user/QFDC serve --stdio"
requesting all changes
adding changesets
...

这继续喷出很多东西,所以-R一旦你开始工作,你可能想放弃它。

于 2014-11-11T15:36:31.720 回答
1

只要您可以通过 ssh 连接到远程,就不应该是端口问题 - 以下“乱序”设置存在相同问题:

  • virtualenv 与 mercurial
  • bashrc 别名 hg=/path/to/virtenv/hg
  • 存储库最初使用 virtenv hg 初始化
  • 系统范围的 ubuntu 10.04 hg ---> 给出相同的错误,即 .hg 未找到

解决方案:

  • 在远程主机上执行以下步骤
  • 备份您的远程存储库和更新
  • 摆脱 virtenv 和路径别名
  • logout & login or 确保 .bashrc 被重新加载和设置
  • 删除 .hg
  • 使用系统 hg 初始化 & 添加 & 提交现有版本
  • 试着像往常一样拉 - 为我工作
于 2013-06-15T15:21:15.223 回答