临时阻止推送到 mercurial 存储库

Temporary blocking for push to mercurial repository

我正在尝试使 ci 过程自动化:某些文件由 ci-script 提交到远程 Server 上的 hg 存储库 assets。问题是如何防止在我的 ci 过程中为所有用户推送 repo assets?否则将创建两个头并且 ci-script 将无法推送。

  1. ci-脚本:上拉回购到分支 B
  2. 用户:提交到分支 B
  3. 用户:推送
  4. ci-脚本提交到分支 B
  5. ci-脚本无法推送,因为有两个名称为 B.
  6. 的头

我有一个想法:在 ci 过程中在 Server 上创建临时锁定文件,并在 prepush 挂钩上检查它是否存在(它可能是 preoutgoing)。但是这个解决方案需要每个 repo 用户都可以访问 Server。此外,所有用户都必须具有正确的预推挂钩。

有什么想法吗?

此问题已由 ci-脚本中的自动 rebase 部分解决。