From patchwork Tue Sep 4 12:40:34 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3/6] linux-yocto: check for bad SRCREV before branch checks Date: Tue, 04 Sep 2012 12:40:34 -0000 From: Bruce Ashfield X-Patchwork-Id: 35791 Message-Id: To: richard.purdie@linuxfoundation.org Cc: openembedded-core@lists.openembedded.org, saul.wold@intel.com 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. Signed-off-by: Bruce Ashfield --- meta/classes/kernel-yocto.bbclass | 15 ++++++++------- 1 files changed, 8 insertions(+), 7 deletions(-) diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 45918d6..724e5cd 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass @@ -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