linux-yocto: check for bad SRCREV before branch checks

do_validate_branches ensures that the desired SRCREV is at
the tip of every branch that contains the revision. To do this,
it looks for containing branches and processes them.

This processing was mistakenly placed before the check for an
invalid SRCREV, hence a git error message is seen in the log
if a bad SRCREV is used, rather than a clear message.

reordering the checks, and fixing a check for master, ensures
that clear messages are generated in all cases.

(From OE-Core rev: 7e4518bf88af53b09536a3bafcd4c392a094023f)

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 2012-09-04 08:40:34 -04:00 committed by Richard Purdie
parent 611f16a8d8
commit d7805cfac4
1 changed files with 8 additions and 7 deletions

View File

@ -258,12 +258,6 @@ do_validate_branches() {
return
fi
containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'`
if [ -z "$containing_branches" ]; then
echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches"
echo " contain this commit"
exit 1
fi
ref=`git show ${target_branch_head} 2>&1 | head -n1 || true`
if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
echo "ERROR ${target_branch_head} is not a valid commit ID."
@ -271,6 +265,13 @@ do_validate_branches() {
exit 1
fi
containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'`
if [ -z "$containing_branches" ]; then
echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches"
echo " contain this commit"
exit 1
fi
# force the SRCREV in each branch that contains the specified
# SRCREV (if it isn't the current HEAD of that branch)
git checkout -q master
@ -278,7 +279,7 @@ do_validate_branches() {
branch_head=`git show-ref -s --heads ${b}`
if [ "$branch_head" != "$target_branch_head" ]; then
echo "[INFO] Setting branch $b to ${target_branch_head}"
if [ "$b" == "master" ]; then
if [ "$b" = "master" ]; then
git reset --hard $target_branch_head > /dev/null
else
git branch -D $b > /dev/null