diff options
author | aavit <eirik.aavitsland@digia.com> | 2014-09-17 10:05:35 +0200 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@digia.com> | 2014-09-18 12:52:09 +0300 |
commit | 4c99bd2137f422a8b89ee6eeb0c516e60d15f137 (patch) | |
tree | ac61e4ba5b33dde10a73dcb9e52e2a05be79e4e4 /b2qt-init-build-env | |
parent | 84fa57bd27e7326d68fb8e5c065c4e4637baabfc (diff) | |
download | meta-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>
Diffstat (limited to 'b2qt-init-build-env')
-rwxr-xr-x | b2qt-init-build-env | 20 |
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 @@ | |||
24 | set -e | 24 | set -e |
25 | 25 | ||
26 | usage() { | 26 | usage() { |
27 | echo "Usage: $0 <yocto build directory> [--force]" | 27 | echo "Usage: $0 <yocto build directory> [--force] [--reference <other build directory>]" |
28 | } | 28 | } |
29 | 29 | ||
30 | while test -n "$1"; do | 30 | while 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 |
44 | done | 48 | done |
45 | 49 | ||
50 | if [ -z "${BUILDDIR}" ]; then | ||
51 | usage | ||
52 | exit 1 | ||
53 | fi | ||
54 | |||
46 | DIR=$(readlink -f $(dirname $0)) | 55 | DIR=$(readlink -f $(dirname $0)) |
47 | BUILDDIR=$(readlink -f $BUILDDIR) | 56 | BUILDDIR=$(readlink -f $BUILDDIR) |
57 | if [ -n "${REFDIR}" ]; then | ||
58 | REFDIR=$(readlink -f ${REFDIR}) | ||
59 | fi | ||
48 | 60 | ||
49 | checkout() { | 61 | checkout() { |
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} |