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

无法通过http克隆mercurial(hg)存储库,mercurial,repository,clone,Mercurial,Repository,Clone,我无法通过http克隆我的存储库: 中止:“”似乎不是hg存储库 首先,我通过hgintmyrepo创建了一个新的repo,然后添加了一些文件并提交 我的回购目录受密码保护,但没有任何问题的迹象,因此,我尝试了两种克隆方法: (在我的本地计算机上) hg克隆我的报告 及 hg克隆我的报告 repo dir的权限为:drwxrwxr-x 我可以在我的远程机器上克隆这个存储库(相同的repo正在运行),而不会出现任何问题 可能有什么问题?更新: 看起来您正在混淆存储库和主机名 如果运行“hg-ser

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

中止:“”似乎不是hg存储库

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

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

hg克隆我的报告

hg克隆我的报告

repo dir的权限为:drwxrwxr-x

我可以在我的远程机器上克隆这个存储库(相同的repo正在运行),而不会出现任何问题

可能有什么问题?

更新:

看起来您正在混淆存储库和主机名

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

如果您想通过ssh实现,请选择“hg克隆”ssh://USER@主机//PATH/TO/YOUR/REPOSITORY”。假设您在主目录中创建了一个名为MYREPO的存储库,那么您可以这样做:“hg clonessh://USER@主机/~/MYREPO“

您只能通过http克隆您的回购协议,因为有东西正在通过http为该回购协议提供服务。Mercurial为您提供了一个内置的http服务器。在repo内部运行“hgserve”,然后尝试从另一个位置(或另一个命令shell)克隆它。如果您只需要本地克隆,则不需要使用http(“hg克隆”)


另外,请尝试“hg帮助克隆”和“hg帮助服务”了解详细信息。

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

hg克隆ssh://machine_ip//your/repo/location 你的报告


如果您不想为mercurial的http服务器打开另一个端口,并且不需要hgweb功能,流量也会被加密,这也会更安全。唯一的缺点是您必须登录到签出,但HTTP无法阻止更改,至少在我的经验中是这样。

Argh。。。需要注意.htaccess配置。在我的例子中,我需要将“hgwebdir.cgi”添加到克隆路径中。。。谢谢你的回答

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

hg克隆ssh://MY_REMOTE_USER@MYREPO
远程:中止:此处没有Mercurial存储库(.hg未找到)

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

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

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

端口号后的双斜杠有效,但如果是单斜杠,则会出现“.hg not found”错误

hg help url
表示一个斜杠可以访问您的主页,两个斜杠可以访问根目录。