5

我无法通过 http 克隆我的存储库:

中止:“ http://MYREPO ”似乎不是 hg 存储库!

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

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

hg 克隆http://MYREPO my_repo

hg 克隆http://user:password@MYREPO my_repo

repo 目录的权限是:drwxrwxr-x

我可以在我的远程机器上克隆这个存储库(同一个存储库),没有任何问题。

什么可能是错的?

4

4 回答 4

10

更新:

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

如果运行“hg serve”,“hg clone http://USER@HOST:8000 ”,其中主机可以是您机器的 IP 或主机名(在 linux 上键入“主机名”或尝试“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 服务器。在您的存储库中运行“hg serve”,然后尝试从另一个位置(或另一个命令外壳)克隆它。如果你只想要一个本地克隆,你不需要使用http(“hg clone”)。

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

于 2009-05-02T15:03:55.220 回答
3

奇怪的是,使用 ssh 进行克隆需要一个不直观的额外正斜杠。

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

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

端口号后的双斜杠有效,但那里的单斜杠会导致“.hg not found”错误

于 2011-08-22T02:47:21.870 回答
2

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

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

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

于 2009-05-02T15:26:38.940 回答
0

啊...需要小心 .htaccess 配置。就我而言,我需要将“hgwebdir.cgi”添加到克隆路径中......不过感谢您的回答!

SSH 似乎是合乎逻辑的,但不知何故,我无法与本地用户以外的用户一起使用它:

hg clone ssh://MY_REMOTE_USER@MYREPO 远程:中止:这里没有 Mercurial 存储库(未找到.hg)!

于 2009-05-02T19:41:12.200 回答