]> code.ossystems Code Review - openembedded-core.git/commitdiff
linux-yocto: check for bad SRCREV before branch checks
authorBruce Ashfield <bruce.ashfield@windriver.com>
Tue, 4 Sep 2012 12:40:34 +0000 (08:40 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 4 Sep 2012 13:45:16 +0000 (14:45 +0100)
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 <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel-yocto.bbclass

index 45918d65aae5cbc3ed8d8990e9292274c5619eb4..724e5cd475a9bf8684dd8f94432d11105b150023 100644 (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