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



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

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

我99%确定HTTP没有被使用,所以传统方法不应该工作。我甚至在寻找一种解决方法,因为我认为无论如何都无法直接从 Mercurial 配置中限制它

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

[hooks]
pretxnchangegroup.denyall = /bin/false

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

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

每个人都可以共享他们的存储库(只读),并要求其他人(包括官方存储库的维护者)从中提取。

相关内容

最新更新