[1/4] kernel-yocto: always checkout machine branch when existing validate_branches

Submitted by Bruce Ashfield on Feb. 27, 2014, 9:12 p.m.

Details

Message ID 7d732756e9fe71b5504dab39417efe46f71e7008.1393535348.git.bruce.ashfield@windriver.com
State Accepted
Commit 6eb63237c3bf48377f75e48e637d76108c8666df
Headers show

Commit Message

Bruce Ashfield Feb. 27, 2014, 9:12 p.m.
The validate_branches routine is responsible for ensuring that the specified
SRCREV exists, and that the tree has been prepared for eventual patching
starting directly from that SRCREV.

On exit, the routine checks out the specified machine branch and the
preparation is complete .. except if a KMETA branch isn't used, we exit
early since the branch can't be validated.

To make the exit condition consistent for all cases, we can move the
KMETA validation inside a conditional and allow the same exit path for
both cases.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/classes/kernel-yocto.bbclass | 37 ++++++++++++++++---------------------
 1 file changed, 16 insertions(+), 21 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index fab5d4c57055..fb8e04e704fb 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -358,31 +358,26 @@  do_validate_branches() {
 		fi
 	done
 
-	## KMETA branch validation
+	## KMETA branch validation.
+	## We do validation if the meta branch exists, and AUTOREV hasn't been set
  	meta_head=`git show-ref -s --heads ${KMETA}`
  	target_meta_head="${SRCREV_meta}"
 	git show-ref --quiet --verify -- "refs/heads/${KMETA}"
-	if [ $? -eq 1 ]; then
-		return
-	fi
-
-	if [ "${target_meta_head}" = "AUTOINC" ]; then
-		return
-	fi
-
-	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
-			echo "ERROR ${target_meta_head} is not a valid commit ID"
-			echo "The kernel source tree may be out of sync"
-			exit 1
-		else
-			echo "[INFO] Setting branch ${KMETA} to ${target_meta_head}"
-			git branch -m ${KMETA} ${KMETA}-orig
-			git checkout -q -b ${KMETA} ${target_meta_head}
-			if [ $? -ne 0 ];then
-				echo "ERROR: could not checkout ${KMETA} branch from known hash ${target_meta_head}"
+	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
+				echo "ERROR ${target_meta_head} is not a valid commit ID"
+				echo "The kernel source tree may be out of sync"
 				exit 1
+			else
+				echo "[INFO] Setting branch ${KMETA} to ${target_meta_head}"
+				git branch -m ${KMETA} ${KMETA}-orig
+				git checkout -q -b ${KMETA} ${target_meta_head}
+				if [ $? -ne 0 ];then
+					echo "ERROR: could not checkout ${KMETA} branch from known hash ${target_meta_head}"
+					exit 1
+				fi
 			fi
 		fi
 	fi