我知道这是不是 可以建立远程使用HTTP(S),例如水银库:
$ hg init https://host.org/repos/project
Run Code Online (Sandbox Code Playgroud)
要么
$ hg clone /path/to/local/project https://host.org/repos/project
Run Code Online (Sandbox Code Playgroud)
但是,原因是什么?安全问题?不需要吗?仅仅因为没有人实现它吗?
这个问题的基本原理:在我的公司,我们通过HTTPS共享大部分资源,即访问权限仅由Apache管理,普通用户无法通过服务器上的SSH登录.只要只需要提供存储库(为此我们很满意hgwebdir.cgi
),这就是完美的.但是,我们还希望允许远程创建repos,而无需在服务器上维护额外的/修补的脚本以及客户端上的额外工具.
需要明确的是:这个问题不是要求解决我们的特定问题,而是因为Mercurial不支持此功能的原因.
UPDATE
这是我正在考虑的情况的更多技术描述.假设hgwebdir.cgi
服务于/path/to/repos
at的一组存储库https://.../repos
(启用推送).允许访问此URL的每个用户(在Apache中配置)可以提取和推送变更集,实际上这意味着hgwebdir.cgi
(并因此hg
)编辑并创建下面的文件/path/to/repos
.现在,在hgwebdir.cgi
下面创建新存储库的障碍是什么/path/to/repos
?
我认为原因是增加对创建存储库的支持将带来相当多的包袱:
如果您可以创建存储库,您希望能够删除它们.虽然这看起来很简单,但与Mercurial正常工作的安全方式相比还有很大的进步 - 标准Mercurial中没有破坏性命令.
人们还想编辑.hg/hgrc
文件来设置描述和联系信息 - 标准的Mercurial永远不会更改配置文件,所以这将是一件新事物.
人们还希望管理用户对新存储库的访问权限 - 这意味着编辑.htaccess
文件或其他Web服务器的等效文件.
... 等等.实现这个"小"功能将为许多额外的功能请求打开,我们只有一些Mercurial开发人员也是看不见的Web开发人员.
但是,现在有一个很好的开源解决方案:Kallithea为您提供了一个"迷你Bitbucket",您可以在自己的服务器上部署它.它将完成上述所有工作.如果我需要比普通更强大的东西,我会在我的服务器上安装它hgweb.cgi
.它支持Mercurial和Git.
归档时间: |
|
查看次数: |
3450 次 |
最近记录: |