我们一直在使用Hgban来阻止不必要的推送到我们的中央存储库。它停止了x个Mercurial版本的工作,这是在HgBan bug报告的。
看来这个项目“死了”,因此我想知道是否有人知道任何其他扩展做同样/类似的事情(=定义某些更改集被阻止到存储库)?
答案 0 :(得分:1)
我写了一个powershell
钩子脚本来做你想做的事。要使用它,请将以下行放在中央仓库的.hg\hgrc
文件中:
[hooks]
pretxnchangegroup = powershell .hg\hgban.ps1
powershell脚本如下所示,应放在 .hg 文件夹中:
# Default to success
$returnCode = 0
# Get the list of nodes being updated
$output = hg log -r "$Env:HG_NODE`:tip" --template "{node}`n"
# Get the list of nodes that are banned
$bannedList = Get-Content ".\.hg\hgbanlist.txt"
# Loop through the nodes
$output | Where-Object { $bannedList -contains $_ } | ForEach-Object {
Write-Host "Changeset $_ has been banned!"
$returnCode = 1
}
exit $returnCode
您应该在 .hg 文件夹中放置一个名为 hgbanlist.txt 的文本文件,其中包含每个禁止修订的完整哈希值,每行一个。例如,这是我的测试文件:
2baae3f879579979faa7aec2e32635b97e9eaff9
922ae67c4229788d21cb9c9ace1abeba38541ff9
这适用于纯Mercurial系统 - 我不知道Rhodecode会如何影响它,如果有的话。