Hglib:如何使用over ssh连接到远程仓库?

时间:2014-02-24 18:04:06

标签: mercurial mercurial-api hglib

使用“原始”mercurial API我可以编写类似的内容:

peer = hg.peer(ui.ui(), {}, 'ssh://hg@bitbucket.org/some/project')

建立连接后,我可以使用远程仓库。

我无法理解使用hglib的远程仓库应该有什么用处。 天真的方法,即使用一些简单的东西:

hglib.open("ssh://hg@bitbucket.org/some/project")

不起作用,所引发的例外并没有让我更清楚。

我的问题:使用hglib,如何打开与远程ssh-repo的连接?

1 个答案:

答案 0 :(得分:1)

hglib文档对于如何使用它并不是很啰嗦。最好的方法是在~/.ssh/known_hosts

中使用密钥复制和RSA指纹

但您可以使用以下代码克隆回购:

hglib.clone(source="ssh://hg@bitbucket.org/some/project")

您当然可以添加目标文件夹(例如dest =“/ path / to / blah”)。

如果您已经克隆了现有的hg repo,则可以在尝试hglib.open()之前更改hgrc中的某些设置,因此hg使用ssh url,如下所示:

[ui]
username = some_user

[paths]
default = ssh://hg@bitbucket.org/some/project

修改 我认为要让hg.open工作,你必须检查一个repo。对我来说,我指的是克隆我的回购的路径。所以:

hglib.open('/path/to/cloned/repo')

要通过SSH执行此操作,您必须如上所述编辑/repopath/.hg/hgrc。