diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2012-09-04 08:40:34 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-09-04 14:46:17 +0100 |
commit | d7805cfac4a58971dbef6eb903149dd6099bcf69 (patch) | |
tree | 545783d89c284cf403ee5492f746f5f40d59ea9e | |
parent | 611f16a8d84ffd4cb221d851000226411c59302f (diff) | |
download | poky-d7805cfac4a58971dbef6eb903149dd6099bcf69.tar.gz |
linux-yocto: check for bad SRCREV before branch checks
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.
(From OE-Core rev: 7e4518bf88af53b09536a3bafcd4c392a094023f)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | 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 45918d65aa..724e5cd475 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
@@ -258,12 +258,6 @@ do_validate_branches() { | |||
258 | return | 258 | return |
259 | fi | 259 | fi |
260 | 260 | ||
261 | containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'` | ||
262 | if [ -z "$containing_branches" ]; then | ||
263 | echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches" | ||
264 | echo " contain this commit" | ||
265 | exit 1 | ||
266 | fi | ||
267 | ref=`git show ${target_branch_head} 2>&1 | head -n1 || true` | 261 | ref=`git show ${target_branch_head} 2>&1 | head -n1 || true` |
268 | if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then | 262 | if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then |
269 | echo "ERROR ${target_branch_head} is not a valid commit ID." | 263 | echo "ERROR ${target_branch_head} is not a valid commit ID." |
@@ -271,6 +265,13 @@ do_validate_branches() { | |||
271 | exit 1 | 265 | exit 1 |
272 | fi | 266 | fi |
273 | 267 | ||
268 | containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'` | ||
269 | if [ -z "$containing_branches" ]; then | ||
270 | echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches" | ||
271 | echo " contain this commit" | ||
272 | exit 1 | ||
273 | fi | ||
274 | |||
274 | # force the SRCREV in each branch that contains the specified | 275 | # force the SRCREV in each branch that contains the specified |
275 | # SRCREV (if it isn't the current HEAD of that branch) | 276 | # SRCREV (if it isn't the current HEAD of that branch) |
276 | git checkout -q master | 277 | git checkout -q master |
@@ -278,7 +279,7 @@ do_validate_branches() { | |||
278 | branch_head=`git show-ref -s --heads ${b}` | 279 | branch_head=`git show-ref -s --heads ${b}` |
279 | if [ "$branch_head" != "$target_branch_head" ]; then | 280 | if [ "$branch_head" != "$target_branch_head" ]; then |
280 | echo "[INFO] Setting branch $b to ${target_branch_head}" | 281 | echo "[INFO] Setting branch $b to ${target_branch_head}" |
281 | if [ "$b" == "master" ]; then | 282 | if [ "$b" = "master" ]; then |
282 | git reset --hard $target_branch_head > /dev/null | 283 | git reset --hard $target_branch_head > /dev/null |
283 | else | 284 | else |
284 | git branch -D $b > /dev/null | 285 | git branch -D $b > /dev/null |