kernel-yocto: simplify branch SRCREV validation

The checking of machine and meta branch SRCREVs was inconsistent and
didn't allow a mixed AUTOREV machine/meta branch combination. By
simplifying the checks and changing the logic, we can now allow this
combination.

(From OE-Core rev: e272cfbba87a98393d6c22bd96c7f1cb6902170a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Bruce Ashfield
2014-03-18 21:34:40 -04:00
committed by Richard Purdie
parent 3b3fe047a4
commit 4ee454d356

View File

@@ -311,37 +311,36 @@ do_validate_branches() {
if [ "${machine_srcrev}" = "AUTOINC" ] || [ "${machine_srcrev}" = "INVALID" ] ||
[ "${machine_srcrev}" = "" ]; then
bbnote "INFO: SRCREV validation is not required for AUTOREV or empty/invalid settings, returning"
return
fi
git cat-file -t ${machine_srcrev} > /dev/null
if [ if $? -ne 0 ]; then
echo "ERROR ${machine_srcrev} is not a valid commit ID."
echo "The kernel source tree may be out of sync"
exit 1
else
git cat-file -t ${machine_srcrev} > /dev/null
if [ if $? -ne 0 ]; then
echo "ERROR ${machine_srcrev} is not a valid commit ID."
echo "The kernel source tree may be out of sync"
exit 1
fi
fi
## KMETA branch validation.
## We do validation if the meta branch exists, and AUTOREV hasn't been set
meta_head=`git show-ref -s --heads ${KMETA}`
target_meta_head="${SRCREV_meta}"
git show-ref --quiet --verify -- "refs/heads/${KMETA}"
if [ $? -eq 0 ] && [ "${target_meta_head}" != "AUTOINC" ]; then
target_meta_head="${SRCREV_meta}"
if [ "${target_meta_head}" = "AUTOINC" ] || [ "${target_meta_head}" = "" ]; then
bbnote "INFO: SRCREV validation skipped for AUTOREV or empty meta branch"
else
meta_head=`git show-ref -s --heads ${KMETA}`
git cat-file -t ${target_meta_head} > /dev/null
if [ $? -ne 0 ]; then
echo "ERROR ${target_meta_head} is not a valid commit ID"
echo "The kernel source tree may be out of sync"
exit 1
fi
if [ "$meta_head" != "$target_meta_head" ]; then
git cat-file -t ${target_meta_head} > /dev/null
if [ $? -ne 0 ]; then
echo "ERROR ${target_meta_head} is not a valid commit ID"
echo "The kernel source tree may be out of sync"
echo "[INFO] Setting branch ${KMETA} to ${target_meta_head}"
git branch -m ${KMETA} ${KMETA}-orig
git checkout -q -b ${KMETA} ${target_meta_head}
if [ $? -ne 0 ];then
echo "ERROR: could not checkout ${KMETA} branch from known hash ${target_meta_head}"
exit 1
else
echo "[INFO] Setting branch ${KMETA} to ${target_meta_head}"
git branch -m ${KMETA} ${KMETA}-orig
git checkout -q -b ${KMETA} ${target_meta_head}
if [ $? -ne 0 ];then
echo "ERROR: could not checkout ${KMETA} branch from known hash ${target_meta_head}"
exit 1
fi
fi
fi
fi