我想創建一個鉤子,阻止推到遠程存儲庫,如果你試圖推多個分支。鉤一次只限制推送到一個分支
這裏的鉤:
#!/bin/bash
HG_EXE="/opt/csw/bin/hg"
CHANGESETS=`${HG_EXE} log -r $1:tip --template '{node} '`
i=0
for changeset in ${CHANGESETS}
do
BRANCH=`${HG_EXE} log -r ${changeset} --template '{branches}'`
if [ "${BRANCH}" == "" ]
then
BRANCH="default"
fi
BRANCHES[$i]=${BRANCH}
i=$i+1
done
items=${#BRANCHES[*]}
if [ $items -gt 1 ]
then
i=0
while [ "${BRANCHES[${i}+1]}" != "" ]
do
if [ "${BRANCHES[${i}]}" != "${BRANCHES[${i}+1]}" ]
then
echo "ERROR: You are trying to push more than one branch, use \"hg push -b [branch_name]\""
exit 1
fi
i=$i+1
done
fi
問題: 如果我已經提交了兩個分支:
changeset: 58:8d2bebe08dd9
user: keshurj <[email protected]>
date: Thu May 26 16:36:49 2011 +0100
summary: commit on default
changeset: 59:43be74e39a44
branch: branch1
tag: tip
user: keshurj <[email protected]>
date: Thu May 26 16:40:25 2011 +0100
summary: commit on branch1
並嘗試使用汞推-b BRANCH1推,掛鉤仍然可以看到$ {HG_NODE}爲8d2bebe08dd9,默認爲。
有沒有什麼方法可以確保通過遠程鉤子一次只對一個分支進行推送?
打開任何和所有的建議(復:這個工作流程:))
沒有理由認爲'8d2bebe08dd9' 是'43be74e39a44'的父親 – Matt 2011-05-27 18:20:09