kernel-yocto: use cat-file instead of git-show
authorBruce Ashfield <bruce.ashfield@windriver.com>
Mon, 17 Mar 2014 18:00:15 +0000 (14:00 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 1 Sep 2014 13:35:39 +0000 (14:35 +0100)
Parsing the output of git show is error prone, since it changes based on
the type of issue with bad comit IDs. Since the output is no longer used
in the case of a valid ref, we can switch to git-cat-file and  simply
check the return code.

(From OE-Core rev: 228c05013fe691321ec00467d8d0c0bb64dd175c)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel-yocto.bbclass

index 6c92427..38c886b 100644 (file)
@@ -321,8 +321,8 @@ do_validate_branches() {
                fi
        fi
 
-       ref=`git show ${machine_srcrev} 2>&1 | head -n1 || true`
-       if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
+       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
@@ -358,8 +358,8 @@ do_validate_branches() {
        git show-ref --quiet --verify -- "refs/heads/${KMETA}"
        if [ $? -eq 0 ] && [ "${target_meta_head}" != "AUTOINC" ]; then
                if [ "$meta_head" != "$target_meta_head" ]; then
-                       ref=`git show ${target_meta_head} 2>&1 | head -n1 || true`
-                       if [ "$ref" = "fatal: bad object ${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"
                                exit 1