我们在生产服务器上使用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存储库,即使它位于公共场所,如webserver上的public_html / htdocs?我找不到任何有关如何实现这一目标的信息。
ETA:显然,我还没有足够的声誉来投票给任何答案。但是,非常感谢你们两位有用的答案。 :)
答案 0 :(得分:3)
在repo的.hg/hgrc
中添加:
[web]
allowpull = false
在获取任何数据之前,这将在过程的早期出现错误(目前,如果他们在回滚之前需要大量数据,则会获得大量数据)。请注意,allowpull
没有下划线,与大多数其他多词mercurial设置不同。
这完全阻止他们通过mercurial获取内容,但他们仍然可以使用wget,curl或webbrowser手动选择http://www.domain.com/.hg/
。
为避免您在网络服务器级别阻止包含/.hg/
的任何网址。在Apache中看起来像:
<Directory "/your/doc/root/.hg">
Order deny,allow
deny from all
</Directory>
答案 1 :(得分:1)
你可以
hg archive