Mercurial-如何禁用推送



我正在努力寻找是否有一种简单的方法可以使mercurial存储库只读。用户应该能够克隆,但不允许推送。我需要为我所有超过100个的存储库做这件事。

您可以在.hg/hgrc:中这样做

[hooks]
prechangegroup = false

这取决于您发布存储库的方式,但根据这一点,您可以尝试以下几种方法:

  1. 如果您要在网络共享或装载的卷上发布存储库,只需设置mercurial文件夹的访问权限,使其只能读取文件夹及其文件
  2. 如果您使用任何可用的http服务器选项(如hg serve或您可以安装的任何第三方网站)发布存储库,请确保您设置的用户没有写/推送访问权限
  3. 如果你使用任何基于云的在线解决方案发布你的存储库,如bitbucket、窑等。那么不要向任何不应该拥有推送访问权限的人分发推送访问权,同样,你可以专门设置用户和访问权限

仅通过http(hg-server、kallithea…)提供它们,并且不向它们提供登录凭据。

你有很多repo,它们的URL是已知的,并且已经被用来克隆它们,而你只是决定关闭对它们的推送访问。这是对的吗?

如果repo是通过ssh访问的,那么只需将repo文件的所有权重新分配给一个新帐户,其他用户可以免费读取,但不能写入。文件位置保持不变,当前访问凭据保持有效,但推送到repo不再可能。

如果您在unix系统上,您可能可以使用for循环和chown -Rbash中执行所有操作。如果你不是。。。祝你好运请向我们提供有关您的配置的更多信息,答案中提出的方法之一将最适合您。

要禁用http或https推送,可以在hgrc文件中尝试以下操作之一。注意,这并不能禁用对文件系统的推送。

允许推送

是否允许推送到存储库。如果为空或未设置,则不允许推送。如果使用特殊值*,则任何远程用户都可以推送,包括未经身份验证的用户。否则,远程用户必须经过身份验证,并且经过身份验证的用户名必须出现在该列表中(用空格或","分隔)。allow_push列表的内容在deny_push列表之后进行检查。

[web]
allow_push =

deny_push

是否拒绝推送到存储库。如果为空或未设置,推送不会被拒绝。如果特殊值*,则拒绝所有远程用户推送。否则,未经身份验证的用户都将被拒绝,并且该列表中存在的任何经过身份验证的用户名(用空格或","分隔)也将被拒绝。deny_push列表的内容在allow_push列表之前进行检查。

[web]
deny_push = *

相关内容

  • 没有找到相关文章

最新更新