我有同事使用--force
开关推动多个头,因为它们没有正确合并。
有什么方法可以阻止这种情况吗?
答案 0 :(得分:6)
您可以在服务器端使用pretxnchangegroup
挂钩执行此操作。
以下是一些示例:http://www.softwareprojects.com/resources/programming/t-mercurial-hook-forbid-2-heads-1910.html
所有这些钩子正在做的是确保在应用更改组之后,仍然只有一个头(或者如果你想获得幻想,每个分支只有一个)。
答案 1 :(得分:2)
告诉他们不应该这样做,并使用您控制的存储库上的挂钩强制执行工作流程。
在工作中,我们将其限制为一个头/分支。基本上用这个替换forbid_2head.sh:
#!/bin/bash
# Ensure only one head per branch in hg repository
for BRANCH in `hg branches -qa`
do
COUNT=`hg heads -q $BRANCH | wc -l`
if [ "$COUNT" -ne "1" ] ; then
echo "Error: Trying to push more than one head to branch $BRANCH."
exit 1
fi
done
exit 0
答案 2 :(得分:2)
这是来自顶级熟练开发者的最佳:http://hg.python.org/hooks/file/default/checkheads.py
访问http://hg.python.org/hooks/file/default/以获取其他有用的挂钩列表。
答案 3 :(得分:1)
您可以撤销他们--force
所在的存储库的推送权限,并将其推送到其他服务器,或通过补丁提交更改。
答案 4 :(得分:0)
首先,我告诉开发人员不允许使用--force推送。
我还使用上面规定的服务器端钩子解决方案,并在钩子中添加一封电子邮件给每个人,说明世卫组织试图将多个头部推入中央仓库[然后格式化他的硬盘驱动器;]