kernel-yocto: replace --is-ancestor with basic git porcelain commands
authorBruce Ashfield <bruce.ashfield@windriver.com>
Sun, 31 Aug 2014 05:18:24 +0000 (01:18 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 1 Sep 2014 13:35:41 +0000 (14:35 +0100)
--is-ancestor is a relatively new git option [commit 5907cda1, Aug 30 2012].
To support build machines with older versions of git installed, we can use
the basic porcelain commands to acheive the same check.

merge-base: "--is-ancestor A B" can be replaced with:

    if test "$(git rev-parse --verify A)" = "$(git merge-base A B)"

(From OE-Core rev: 2ddfffe52720d1df70b04131eac553776da7bc73)

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

index ee09769..929d64a 100644 (file)
@@ -131,8 +131,7 @@ do_patch() {
        # check to see if the specified SRCREV is reachable from the final branch.
        # if it wasn't something wrong has happened, and we should error.
        if [ "${machine_srcrev}" != "AUTOINC" ]; then
-               git merge-base --is-ancestor ${machine_srcrev} HEAD
-               if [ $? -ne 0 ]; then
+               if ! [ "$(git rev-parse --verify ${machine_srcrev})" = "$(git merge-base ${machine_srcrev} HEAD)" ]; then
                        bberror "SRCREV ${machine_srcrev} was specified, but is not reachable"
                        bbfatal "Check the BSP description for incorrect branch selection, or other errors."
                fi