summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraavit <eirik.aavitsland@digia.com>2014-09-17 10:05:35 +0200
committerEirik Aavitsland <eirik.aavitsland@digia.com>2014-09-18 12:52:09 +0300
commit4c99bd2137f422a8b89ee6eeb0c516e60d15f137 (patch)
treeac61e4ba5b33dde10a73dcb9e52e2a05be79e4e4
parent84fa57bd27e7326d68fb8e5c065c4e4637baabfc (diff)
downloadmeta-boot2qt-4c99bd2137f422a8b89ee6eeb0c516e60d15f137.tar.gz
Init script can now use existing build dir for clone reference
Add --reference <existing-build-dir> argument. If one has an already checked out build directory, save download time and disk space by reusing the git object storage. Ref. git clone --reference. Change-Id: I89327597a29cb5e7e5c86acefcdf33e3ee42d0fc Reviewed-by: Samuli Piippo <samuli.piippo@digia.com>
-rwxr-xr-xb2qt-init-build-env20
1 files changed, 19 insertions, 1 deletions
diff --git a/b2qt-init-build-env b/b2qt-init-build-env
index 1d598a5..ec9f394 100755
--- a/b2qt-init-build-env
+++ b/b2qt-init-build-env
@@ -24,7 +24,7 @@
24set -e 24set -e
25 25
26usage() { 26usage() {
27 echo "Usage: $0 <yocto build directory> [--force]" 27 echo "Usage: $0 <yocto build directory> [--force] [--reference <other build directory>]"
28} 28}
29 29
30while test -n "$1"; do 30while test -n "$1"; do
@@ -36,6 +36,10 @@ while test -n "$1"; do
36 "--force" | "-f") 36 "--force" | "-f")
37 FORCE_UPDATE=1 37 FORCE_UPDATE=1
38 ;; 38 ;;
39 "--reference" | "-r")
40 shift
41 REFDIR=$1
42 ;;
39 *) 43 *)
40 BUILDDIR=$1 44 BUILDDIR=$1
41 ;; 45 ;;
@@ -43,8 +47,16 @@ while test -n "$1"; do
43 shift 47 shift
44done 48done
45 49
50if [ -z "${BUILDDIR}" ]; then
51 usage
52 exit 1
53fi
54
46DIR=$(readlink -f $(dirname $0)) 55DIR=$(readlink -f $(dirname $0))
47BUILDDIR=$(readlink -f $BUILDDIR) 56BUILDDIR=$(readlink -f $BUILDDIR)
57if [ -n "${REFDIR}" ]; then
58 REFDIR=$(readlink -f ${REFDIR})
59fi
48 60
49checkout() { 61checkout() {
50 REPO=$1 62 REPO=$1
@@ -59,6 +71,12 @@ checkout() {
59 if [ ! -d ${BUILDDIR}/${REPODIR}/.git ]; then 71 if [ ! -d ${BUILDDIR}/${REPODIR}/.git ]; then
60 echo "Checking out ${REPODIR}" 72 echo "Checking out ${REPODIR}"
61 git init 73 git init
74 if [ -n "${REFDIR}" ]; then
75 REPOREFDIR=${REFDIR}/${REPODIR}/.git/objects
76 if [ -d ${REPOREFDIR} ]; then
77 echo ${REPOREFDIR} > .git/objects/info/alternates
78 fi
79 fi
62 git remote add origin ${REPO} -f 80 git remote add origin ${REPO} -f
63 git checkout ${REF} 81 git checkout ${REF}
64 git reset --hard ${SHA1} 82 git reset --hard ${SHA1}