2012-04-23 41 views
0

我们公司的Intranet使用的是mercurial,但由于防火墙的限制,暂时无法通过其他方法发布共享磁盘。 我知道这不是理想的或推荐的方法,但是,它现在会做(如果我最终得到一台服务器,我设置了RhodeCode)。如何禁止推送到共享磁盘方法发布的Mercurial存储库?

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

我99%确定HTTP没有被使用,所以传统的方法不应该工作。 我正在寻找解决方法,因为我不认为有反正直接从Mercurial配置限制这个。

+0

您是否考虑过简单地在涉及的文件夹上使用文件级访问权限? – 2012-04-23 21:31:22

+0

是的,它不起作用,因为更改文件是远程计算机中的hg进程。读访问只会阻止他们,例如,删除我的.hg文件夹,更多修改我的源文件 – dukeofgaming 2012-04-23 21:34:56

回答

2

只要你确定人正在使用pushpull摆脱共享目录的更改(这是唯一安全的方式!),你仍然可以使用钩在这些仓库封锁推动。像这样的事情在仓库中的.hg/hgrc文件将防止推:

[hooks] 
pretxnchangegroup.denyall = /bin/false 

其中/bin/false是Windows可执行任何始终返回false /非零。

此外,请考虑通过在其中执行hg update null使共享存储库裸露存储库。这将删除工作目录中的所有文件,因此没有人试图在其中进行编辑。

+0

不应该更换组以避免通过网络传输数据? – dukeofgaming 2012-04-23 21:26:46

+0

很有可能。只要现有的AclExtension使用可能是最好的选择。 – 2012-04-24 16:19:34

0

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

相关问题