无法通过http克隆mercurial(hg)存储库

时间:2009-05-02 14:53:34

标签: mercurial repository clone

我无法通过http:

克隆我的存储库

abort:'http://MYREPO'似乎不是hg存储库!

首先,我通过 hg init MYREPO 创建了一个新的回购,然后添加了一些文件并提交。

我的repo的目录受密码保护,但没有任何问题,因为它,我尝试了两种克隆方法: (在我的本地机器上)

hg clone http://MYREPO my_repo

hg clone http://user:password@MYREPO my_repo

回购目录的权限是:drwxrwxr-x

我可以在我的远程计算机上克隆这个非常存储库(同一个存储库已经打开),没有任何问题。

可能出现什么问题?

4 个答案:

答案 0 :(得分:10)

更新:

看起来你在存储库和主机名之间感到困惑

如果运行“hg serve”,“hg clone http://USER@HOST:8000”,其中host可以是机器的IP或主机名(在linux上键入“hostname”或尝试“ping localhost”)。您可以通过将--port ####传递给hg serve来从8000更改默认端口。

如果你想通过ssh,“hg clone ssh:// USER @ HOST // PATH / TO / YOUR / REPOSITORY”。假设您在主目录中创建了一个名为MYREPO的存储库,那么您可以这样做:“hg clone ssh:// USER @ HOST /〜/ MYREPO”

你只能通过http克隆你的repo是什么东西通过http服务该repo。 Mercurial为您提供内置的http服务器。在repo内部运行“hg serve”,然后尝试从其他位置(或其他命令shell)克隆它。如果您只想要一个本地克隆,则不需要使用http(“hg clone”)。

另外,请尝试“hg help clone”和“hg help serve”了解详细信息。

答案 1 :(得分:3)

很奇怪,用ssh克隆需要一个非直观的额外正斜杠。

这适用于在端口43211上运行ssh的主机上

hg clone ssh://example.com:43211//repos/myRepo ./myRepo

端口号工作后的双斜杠,但是单斜杠会导致“.hg not found”错误

答案 2 :(得分:2)

besszero是对的,但如果你要使用用户名和密码,为什么不用SSH克隆呢?

hg clone ssh:// machine_ip // your / repo / location your_repo

如果您不想为mercurial的http服务器打开另一个端口并且您不需要hgweb功能,那么它也更加安全,流量也是加密的。唯一的问题是您必须登录结帐,但HTTP不能用于推迟更改,至少不符合我的经验。

答案 3 :(得分:0)

唉......需要注意.htaccess配置。在我的情况下,我需要将'hgwebdir.cgi'添加到克隆的路径...感谢您的答案!

SSH似乎是合乎逻辑的,但不知怎的,我无法将其用于本地以外的用户:

hg clone ssh:// MY_REMOTE_USER @ MYREPO remote:abort:这里没有Mercurial存储库(找不到.hg)!

相关问题