[OE-core] [PATCH] kernel-yocto: Inspect remote branches with git ls-remote
Matt Fleming
matt at console-pimps.org
Wed Mar 5 16:49:51 UTC 2014
From: Matt Fleming <matt.fleming at intel.com>
'git branch' may use ANSI escape codes in its output (to provide colour)
which doesn't play well with commands expecting pure plain text, e.g.
fatal: '^[[31mmaster^[[m' is not a valid branch name.
Furthermore, the output of 'git branch' is subject to change and trying
to parse it could potentially lead to breakage in the future.
Signed-off-by: Matt Fleming <matt.fleming at intel.com>
---
meta/classes/kernel-yocto.bbclass | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index fb8e04e..1115056 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -196,7 +196,7 @@ do_kernel_checkout() {
# If KMETA is defined, the branch must exist, but a machine branch
# can be missing since it may be created later by the tools.
if [ -n "${KMETA}" ]; then
- git branch -a | grep -q ${KMETA}
+ git ls-remote --heads 2>/dev/null | awk '{print $NF}' | grep -q ${KMETA}
if [ $? -ne 0 ]; then
echo "ERROR. The branch '${KMETA}' is required and was not"
echo "found. Ensure that the SRC_URI points to a valid linux-yocto"
@@ -214,11 +214,11 @@ do_kernel_checkout() {
fi
# convert any remote branches to local tracking ones
- for i in `git branch -a | grep remotes | grep -v HEAD`; do
- b=`echo $i | cut -d' ' -f2 | sed 's%remotes/origin/%%'`;
- git show-ref --quiet --verify -- "refs/heads/$b"
+ for i in `git ls-remote --heads 2>/dev/null | awk '{print $NF}'`; do
+ b=`echo $i | sed 's%refs/heads/%%'`;
+ git show-ref --quiet --verify -- "$i"
if [ $? -ne 0 ]; then
- git branch $b $i > /dev/null
+ git branch $b remotes/origin/$b > /dev/null
fi
done
--
1.8.5.3
More information about the Openembedded-core
mailing list