如何从远程服务器克隆 Mercurial 存储库?

如何从远程服务器克隆 Mercurial 存储库?

如果 SSH 需要私钥,我该如何克隆 Mercurial 存储库?

我尝试按照以下方法操作,但没有效果。

dukeimg@localhost:~/foo/test$ hg clone --ssh -i ~/keys/dukeimg ssh://[email protected]/www/bar/ 
abort: /home/dukeimg/keys/dukeimg: not a Mercurial bundle

答案1

您正在尝试使用带有 的ssh命令行 ( -i) 选项hg。它不受支持。由于hg不支持此选项,它会在 处查找要克隆的存储库~/keys/dukeimg

有三种可能的解决方案:

  1. 使用 SSH 密钥代理。
  2. 将 Mercurial 设置为使用自定义 SSH 命令行hgrc):

    [ui]
    ssh = ssh -i ~/keys/dukeimg
    
  3. 设置 SSH 客户端以使用您的主机的公钥(ssh_config):

    Host example.com
        User my-ssh-user
        IdentityFile ~/keys/dukeimg
    

--ssh/选项-e的使用方式如下:

hg -e 'ssh -whatever -option' ...

相关内容