diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2010-08-19 16:37:03 -0400 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-20 16:36:26 +0100 |
commit | e7e01e7831faf2d20fae13f356f58368c0ec99c8 (patch) | |
tree | dc204a4fc9bc669a52e19cafe90e78aab360b073 | |
parent | a33579dc71a5d1411b941b45f4b2abdc75c9aa84 (diff) | |
download | openembedded-core-e7e01e7831faf2d20fae13f356f58368c0ec99c8.tar.gz openembedded-core-e7e01e7831faf2d20fae13f356f58368c0ec99c8.tar.bz2 openembedded-core-e7e01e7831faf2d20fae13f356f58368c0ec99c8.zip |
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.bb | 19 |
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} |