gpt4 book ai didi

version-control - 如何仅在创建新标签时强制执行 Mercurial 存储库的远程 gnupg 签名?

转载 作者:行者123 更新时间:2023-12-04 06:55:34 26 4
gpt4 key购买 nike

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

这很容易在本地完成,但是我无法想出一种在远程服务器上强制执行此操作的方法。我希望人们继续能够像往常一样推送他们的更改,除非添加一个发布标签,该标签应该带有签名。

最终结果应该是任何克隆我们存储库的人都可以轻松看到签名修订列表,该列表指向签名版本列表。

希望我刚刚错过了 hooklib 中一些明显的东西。有没有其他人做到这一点,如果是这样,如何?

最佳答案

您可以使用 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(添加标签),那么它也必须被签名。

这就是你要找的吗?

关于version-control - 如何仅在创建新标签时强制执行 Mercurial 存储库的远程 gnupg 签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com