【问题标题】:Mercurial: I get an error while cloning a remote repository via sshMercurial:通过 ssh 克隆远程存储库时出现错误
【发布时间】:2009-11-02 19:05:36
【问题描述】:

我很难弄清楚如何将 Mercurial 存储库从本地计算机克隆到服务器。我实际上在这里找到了我的问题的答案(作为https://www.mercurial-scm.org/wiki/FAQ 中#4.5 的第二部分),但我不知道如何处理答案。

另一方面,如果错误 消息是远程的:bash:第 1 行:hg: 找不到命令,问题是 ssh 使用的环境不 在它的 PATH 中有 hg。那里有两个 解决这个问题的方法:

在你的 ~/.hgrc 文件中,设置一个 remotecmd [ui] 部分中的值给出 汞的确切路径。在服务器上, 创建一个 ~/.ssh/environment 文件 定义一个适当的路径,并添加 PermitUserEnvironment 是 /etc/sshd_config.

我想更清楚地解释如何以两种方式解决这个问题。如何找到他们的 Mercurial 安装的确切路径?什么是在服务器上使用的“适当的 PATH”?

【问题讨论】:

    标签: mercurial repository


    【解决方案1】:

    如何找到 Mercurial 安装的确切路径?

    登录到服务器并运行command -v hg。响应是在您当前环境下运行的 hg 的完整路径。现在您知道完整路径,您可以轻松地在 ~/.hgrc 中使用 remotecmd 选项。

    在服务器上使用什么“适当的 PATH”?

    用户应该拥有的最基本的 PATH 是/usr/bin:/bin(尽管/usr/local/bin:/usr/bin:/bin 也很常见)。适合您情况的 PATH 是您当前的 $PATH 加上包含 hg 二进制文件的目录,如上所确定的 -- /usr/bin:/bin:/path/to/hg/dir

    【讨论】:

    • 登录到远程服务器为您提供了一个交互式 shell,而 mercurial 获得了一个非交互式 shell,它们会访问不同的配置文件(.bashrc 与 .bash_profile),从(非交互式)命令:'ssh user@remote echo '$PATH' 也值得做。
    • 我按照描述做了这两件事,但仍然有困难,所以我最终只使用了 FTP。我不知道问题是在我的问题上,在 Mercurial 常见问题解答中还是在您的回答中。由于您的答案中有一些有用的东西确实有效,我会接受它,尽管没有解决我的问题。
    最近更新 更多