代码之家  ›  专栏  ›  技术社区  ›  Tim Post Samir J M Araujo

如何仅在创建新标记时强制远程gnupg签名Mercurial存储库?

  •  2
  • Tim Post Samir J M Araujo  · 技术社区  · 16 年前

    我知道如何配置 Mercurial signing extension . 我遇到的问题是,我不想签署每个单独的变更集,我只想签署引入新版本标记的修订版。

    这在本地很容易实现,但是我无法在远程服务器上实现。我希望人们能像往常一样继续推动他们的变化, 除非 添加一个发布标签,该标签应附带一个签名。

    最终的结果应该是,克隆我们的存储库的任何人都可以很容易地看到已签名修订的列表,该列表指向已签名发布的列表。

    希望,我刚刚错过了胡克里显而易见的东西。如果是这样,还有其他人是如何做到的吗?

    1 回复  |  直到 16 年前
        1
  •  3
  •   Ry4an Brase    16 年前

    你可以在服务器上用 pretxnchangegroup 钩子。在python中效率更高,但在shell中,您可以做到:

    在您的HGRC:

    [hook]
    pretxnchangegroup = all-tags-checked.sh
    

    在all-tags-checked.sh中:

    for therev in $(seq $(hg id -n -r $HG_NODE) $(hd id -n -r tip)) ; do
       if hg log --template '{files}' -r $therev | grep --quiet '^.hgtags' ; then
          if hg sigcheck $therev | grep --quiet '^No valid' ; then
             exit 1
          fi
       fi
    done
    

    这将检查每一个新的变更集,以确保如果它编辑.hgtags(添加标记),那么它也必须签名。

    这就是你要找的吗?

    推荐文章