update/patch: avoid applying patches directly in build repos
Switching branches and applying patches in the build repos will unnecessarily touch many files, causing rebuilds of packages that didn't really change; furthermore, it is filling the reflog with many entries. Don't ever switch to base branch in the build repos and apply patches in a temporary clone to avoid these issues. In addition, GPG signing is generally disabled in the build repos to override potential global configuration (as signing doesn't make sense and will slow down rebases).
This commit is contained in:
parent
2067b4be73
commit
f402b66f3b
@ -5,19 +5,27 @@ shopt -s nullglob
|
|||||||
|
|
||||||
. "$GLUONDIR"/scripts/modules.sh
|
. "$GLUONDIR"/scripts/modules.sh
|
||||||
|
|
||||||
|
TMPDIR="$GLUON_BUILDDIR"/tmp
|
||||||
|
|
||||||
|
mkdir -p "$TMPDIR"
|
||||||
|
|
||||||
|
PATCHDIR="$TMPDIR"/patching
|
||||||
|
trap 'rm -rf "$PATCHDIR"' EXIT
|
||||||
|
|
||||||
for module in $GLUON_MODULES; do
|
for module in $GLUON_MODULES; do
|
||||||
echo "--- Patching module '$module' ---"
|
echo "--- Patching module '$module' ---"
|
||||||
|
|
||||||
cd "$GLUONDIR"/$module
|
git clone -s -b base --single-branch "$GLUONDIR"/$module "$PATCHDIR" 2>/dev/null
|
||||||
git checkout -B patching base
|
|
||||||
|
|
||||||
|
cd "$PATCHDIR"
|
||||||
for patch in "$GLUONDIR"/patches/$module/*.patch; do
|
for patch in "$GLUONDIR"/patches/$module/*.patch; do
|
||||||
if ! git -c user.name='Gluon Patch Manager' -c user.email='gluon@void.example.com' -c commit.gpgsign=false am --whitespace=nowarn --committer-date-is-author-date "$patch"; then
|
git -c user.name='Gluon Patch Manager' -c user.email='gluon@void.example.com' -c commit.gpgsign=false am --whitespace=nowarn --committer-date-is-author-date "$patch"
|
||||||
git am --abort
|
|
||||||
git checkout patched
|
|
||||||
git branch -D patching
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
git branch -M patched
|
|
||||||
|
cd "$GLUONDIR"/$module
|
||||||
|
git fetch "$PATCHDIR" 2>/dev/null
|
||||||
|
git checkout -B patched FETCH_HEAD
|
||||||
|
git submodule update --init --recursive
|
||||||
|
|
||||||
|
rm -rf "$PATCHDIR"
|
||||||
done
|
done
|
||||||
|
@ -14,8 +14,7 @@ for module in $GLUON_MODULES; do
|
|||||||
mkdir -p "$GLUONDIR"/$module
|
mkdir -p "$GLUONDIR"/$module
|
||||||
cd "$GLUONDIR"/$module
|
cd "$GLUONDIR"/$module
|
||||||
git init
|
git init
|
||||||
|
git config commit.gpgsign false
|
||||||
|
|
||||||
git checkout $commit 2>/dev/null || git fetch $repo $branch
|
git branch -f base $commit 2>/dev/null || git fetch -f $repo $branch:base
|
||||||
git checkout -B base $commit
|
|
||||||
git submodule update --init --recursive
|
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user