我试图找到是否有一种简单的方法可以将mercurial存储库设置为只读。用户应该能够克隆,但不允许推送。我需要为所有超过100个存储库执行此操作。
答案 0 :(得分:2)
您可以在.hg / hgrc中执行此操作:
[hooks]
prechangegroup = false
答案 1 :(得分:1)
这取决于您如何发布您的存储库,但这里有一些您可以尝试的方法,具体取决于:
hg serve
或您可以安装的任何第三方网站)发布您的存储库,请确保您设置的用户不会有写/推送访问答案 2 :(得分:0)
仅通过http(hg serve,kallithea,...)提供它们,并且不给他们登录凭据。
答案 3 :(得分:0)
你有很多回购,他们的网址是已知的并且已经被用来克隆它们,你只是决定要关闭对它们的推送访问。这是对的吗?
如果通过ssh访问repos,您可以通过简单地将repo文件的所有权重新分配给新帐户来实现,具有免费读取访问权限但其他用户无权写入。文件位置保持不变,当前访问凭证仍然有效,但不再可以推送到回购。
如果您使用的是unix系统,则可以使用bash
循环和for
在chown -R
中执行所有操作。如果你不......祝你好运。向我们提供有关您的配置的更多信息,答案中提出的方法之一最适合。
答案 4 :(得分:0)
要禁用推送http或https,您可以在hgrc
文件中尝试以下操作之一。请注意,这并不会禁用推送文件系统。
allow_push
是否允许推送到存储库。如果为空或未设置,则不允许推送。如果使用特殊值*
,则任何远程用户都可以推送,包括未经身份验证的用户。否则,远程用户必须已经过身份验证,并且经过身份验证的用户名必须存在于此列表中(由空格或","分隔)。在deny_push列表之后检查allow_push列表的内容。
[web]
allow_push =
deny_push
是否拒绝推送到存储库。如果为空或未设置,则不会拒绝推送。如果特殊值*
,则拒绝所有远程用户推送。否则,未经身份验证的用户都将被拒绝,并且此列表中存在的任何经过身份验证的用户名(由空格或","分隔)也将被拒绝。在allow_push列表之前检查deny_push列表的内容。
[web]
deny_push = *