我知道不可能 使用HTTP(S) 远程创建 Mercurial 存储库,例如:
$ hg init https://host.org/repos/project
或者
$ hg clone /path/to/local/project https://host.org/repos/project
但是,这是什么原因呢?安全问题?不需要吗?仅仅因为还没有人实施它?
这个问题的基本原理:在我的公司,我们通过 HTTPS 共享大部分资源,即访问权限仅由 Apache 管理,普通用户无法通过服务器上的 SSH 登录。只要只需要提供存储库(为此我们对此感到满意hgwebdir.cgi
),这就是完美的。但是,我们也希望允许远程创建 repos,而不需要在服务器上维护额外的/修补的脚本和客户端上的额外工具。
需要明确的是:这个问题并不是要解决我们的特定问题,而是因为 Mercurial 本身不支持此功能。
更新
这是我正在考虑的情况的更技术性描述。假设在athgwebdir.cgi
中提供存储库集合(启用推送)。每个允许访问此 URL 的用户(如 Apache 中配置的那样)都可以拉取和推送变更集,这实际上意味着(并因此)在下面编辑和创建文件。现在,让在下面创建新存储库的障碍是什么?/path/to/repos
https://.../repos
hgwebdir.cgi
hg
/path/to/repos
hgwebdir.cgi
/path/to/repos