summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2010-08-19 16:37:03 -0400
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-20 16:36:26 +0100
commite7e01e7831faf2d20fae13f356f58368c0ec99c8 (patch)
treedc204a4fc9bc669a52e19cafe90e78aab360b073
parenta33579dc71a5d1411b941b45f4b2abdc75c9aa84 (diff)
downloadast2050-yocto-poky-e7e01e7831faf2d20fae13f356f58368c0ec99c8.zip
ast2050-yocto-poky-e7e01e7831faf2d20fae13f356f58368c0ec99c8.tar.gz
linux-wrs: allow packed refs to be present
The code which creates a working tree from the source Wind River Linux git repository manipulates the refs to make non-tracking, local branches. packed-refs remove the files from refs, making this code break and the builds fail. To fix this, if we detect the packed refs we simply create the local refs from the remote branches. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-rw-r--r--meta/packages/linux/linux-wrs_git.bb19
1 files changed, 17 insertions, 2 deletions
diff --git a/meta/packages/linux/linux-wrs_git.bb b/meta/packages/linux/linux-wrs_git.bb
index c8d3625..eaa8e44 100644
--- a/meta/packages/linux/linux-wrs_git.bb
+++ b/meta/packages/linux/linux-wrs_git.bb
@@ -65,8 +65,23 @@ do_wrlinux_checkout() {
rm -rf ${S}
mkdir ${S}
mv ${WORKDIR}/.git ${S}
- mv ${S}/.git/refs/remotes/origin/* ${S}/.git/refs/heads
- rmdir ${S}/.git/refs/remotes/origin
+
+ if [ -e ${S}/.git/packed-refs ]; then
+ cd ${S}
+ rm -f .git/refs/remotes/origin/HEAD
+IFS='
+';
+
+ for r in `git show-ref | grep remotes`; do
+ ref=`echo $r | cut -d' ' -f1`;
+ b=`echo $r | cut -d'/' -f4`;
+ echo $ref > .git/refs/heads/$b
+ done
+ cd ..
+ else
+ mv ${S}/.git/refs/remotes/origin/* ${S}/.git/refs/heads
+ rmdir ${S}/.git/refs/remotes/origin
+ fi
fi
cd ${S}
git checkout -f ${WRMACHINE}-${LINUX_KERNEL_TYPE}
OpenPOWER on IntegriCloud