aboutsummaryrefslogtreecommitdiffstats
path: root/meta
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 /meta
parenta33579dc71a5d1411b941b45f4b2abdc75c9aa84 (diff)
downloadopenembedded-core-contrib-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>
Diffstat (limited to 'meta')
-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 c8d362571f..eaa8e4447d 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}