diff options
Diffstat (limited to 'build/f_repos')
-rw-r--r-- | build/f_repos/Makefile | 13 | ||||
-rw-r--r-- | build/f_repos/README.md | 27 |
2 files changed, 34 insertions, 6 deletions
diff --git a/build/f_repos/Makefile b/build/f_repos/Makefile index 2d2d0bf40..b5eafff9b 100644 --- a/build/f_repos/Makefile +++ b/build/f_repos/Makefile @@ -9,7 +9,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -SHELL = /bin/bash +SHELL = /bin/sh REPOINFO = $(shell readlink -e ../repo_info.sh) FREPODIR = $(shell pwd) FPATCHES = $(shell find ${F_PATCH_DIR} -name '*.patch') @@ -51,9 +51,9 @@ sub: .cachefuelinfo .cachefuelinfo: @if [ -n "${FUEL_TRACK_REMOTES}" ]; then \ - git submodule update --init --remote; \ + git submodule update --init --remote 2>/dev/null; \ else \ - git submodule update --init; \ + git submodule update --init 2>/dev/null; \ fi @rm -f $@ @git submodule -q foreach '${REPOINFO} . >> ${FREPODIR}/$@' @@ -69,8 +69,9 @@ patches-export: sub mkdir -p $$SUB_DIR/$${SUB_FEATURE} && \ git format-patch --no-signature --ignore-space-at-eol \ -o $$SUB_DIR/$$SUB_FEATURE -N $$F_TAG-root..$$F_TAG; \ + sed -i -e "1{/From: /!d}" -e "s/[[:space:]]*$$//" \ + $$SUB_DIR/$$SUB_FEATURE/*.patch; \ done' - @sed -i -e '1d' -e 's/[[:space:]]*$$//' ${FPATCHES} # Apply patches from patch/* to respective submodules # We rely on `make sub` and/or `make clean` to checkout correct base @@ -100,9 +101,9 @@ patches-import: sub .cachepatched # Clean any changes made to submodules, checkout upstream Fuel root commit .PHONY: clean clean: - @git submodule -q foreach ' \ + @cd ${F_GIT_ROOT} && git submodule -q foreach ' \ git am -q --abort > /dev/null 2>&1; \ - git checkout -q ${F_OPNFV_TAG}-root > /dev/null 2>&1; \ + git checkout -q -f ${F_OPNFV_TAG}-root > /dev/null 2>&1; \ git branch -q -D opnfv-fuel > /dev/null 2>&1; \ git tag | grep ${F_OPNFV_TAG} | xargs git tag -d > /dev/null 2>&1; \ git reset -q --hard HEAD; \ diff --git a/build/f_repos/README.md b/build/f_repos/README.md index 6cc825e05..0a52fe040 100644 --- a/build/f_repos/README.md +++ b/build/f_repos/README.md @@ -92,3 +92,30 @@ Sub-project maintenance $ git submodule -b stable/mitaka add --name fuel-web \ https://github.com/openstack/fuel-web.git upstream/fuel-web + +2. Working with remote tracking for upgrading Fuel components + Enable remote tracking as described above, which at `make sub` will update + ALL submodules (fuel-main, fuel-library, ...) to remote branch (set in + .gitmodules) HEAD. + + * If upstream has NOT already tagged a new version, we can still work on + our patches, make sure they apply etc., then check for new upstream + changes (and that our patches still apply on top of them) by: + + $ make deepclean patches-import + + * If upstream has already tagged a new version we want to pick up, checkout + the new tag in each submodule: + + $ git submodule foreach 'git checkout <newtag>' + + * Once satisfied with the patch and submodule changes, commit them: + - enforce FUEL_TRACK_REMOTES to "yes" if you want to constatly use the + latest remote branch HEAD (as soon as upstream pushes a change on that + branch, our next build will automatically include it - risk of our + patches colliding with new upstream changes); + - stage patch changes if any; + - if submodule tags have been updated (relevant when remote tracking is + disabled, i.e. we have a stable upstream baseline), add submodules: + + $ make deepclean sub && git add -f sub/* |