如何禁止推送到共享磁盘方法发布的Mercurial存储库?

时间:2012-04-23 19:04:07

标签: mercurial active-directory lan

我们在公司的Intranet中使用mercurial,暂时无法通过其他方法发布,但由于防火墙限制而无法共享磁盘。 我知道这不是理想的或推荐的方法,但是,它现在会做(如果我最终获得服务器,我正在设置RhodeCode)。

我们发现我们可以通过Windows sharing our repo folder使用我们的Active Directory帐户(右键单击文件夹,与特定人员共享)轻松共享我们的更改,但是我想完全阻止这种可能性有人推送到存储库。

我99%确定没有使用HTTP,因此传统方法不起作用。 我正在寻找一种解决方法,因为我认为无论如何都不能直接从Mercurial config 来限制它。

2 个答案:

答案 0 :(得分:2)

只要您确定有人使用pushpull从共享目录中获取更改(这是唯一安全的方法!),仍然可以在这些存储库中使用钩子来阻止推送。存储库的.hg/hgrc文件中的此类内容将阻止推送:

[hooks]
pretxnchangegroup.denyall = /bin/false

其中/bin/false是Windows上的任何可执行文件,总是返回false /非零。

此外,请考虑通过在其中执行hg update null来创建共享存储库存储库。这将删除工作目录中的所有文件,因此没有人想在那里进行编辑。

答案 1 :(得分:0)

每个人都可以分享他们的回购(只读),并要求其他人 - 包括官方回购的维护者 - 从中​​获取。