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 | ast2050-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.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 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} |