【发布时间】:2011-04-27 09:26:54
【问题描述】:
我们在生产服务器上使用 Mercurial 来处理一些较小的 Web 项目,以便通过 SSH 将更改推送到服务器来轻松部署应用程序。存储库位于其各自帐户的 public_html 文件夹中。
现在如果我做一个
hg clone http://www.domain.com
我明白了
real URL is http://www.domain.com/
requesting all changes
adding changesets
adding manifests
transaction abort!
rollback completed
abort: empty or missing revlog for .htaccess
幸运的是,如果没有身份验证,克隆似乎是不可能的,但我宁愿不让任何人知道一开始就有可用的 hg 存储库。
有没有人知道一种方法可以对公众完全隐藏 Mercurial 存储库,即使它位于网络服务器上的 public_html/htdocs 之类的公共场所?我找不到任何有关如何实现这一目标的信息。
ETA: 显然,我还没有足够的声望来投票给任何答案。但是非常感谢你们俩的有用回答。 :)
【问题讨论】:
-
您可以使用浏览器访问domain.com/.hg 吗?如果您可以访问它,则仍然可以通过递归下载那里的所有文件来进行克隆。 .htaccess 错误似乎无关紧要,但会导致 hg 在首先创建克隆操作后失败(
adding changesets和adding manifests行表明 hg 已成功连接到存储库) -
我们有一个重写规则,将所有请求路由到 /index.php,因此无法访问实际的 .hg 目录,我猜这就是克隆失败的原因。但就目录权限而言,如果不是重写规则,它将是可以访问的。
标签: security http mercurial clone