3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-15 02:50:09 +01:00

Improve upstream merge script to rebuild patches

this will help ensure that upstreams apply as cleanly as it does manually

the filtering makes the patches more fragile, but usually not an issue for small updates.

this will unfilter, apply the cleanest patches, then the next rebuild will
filter out unnecessary changes
Dieser Commit ist enthalten in:
Aikar 2019-04-02 23:20:10 -04:00
Ursprung 747e70a90d
Commit 96f8b1af6c
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 401ADFC9891FAAFE
2 geänderte Dateien mit 22 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -8,7 +8,10 @@ source "$basedir/scripts/functions.sh"
gitcmd="git -c commit.gpgsign=false -c core.safecrlf=false" gitcmd="git -c commit.gpgsign=false -c core.safecrlf=false"
echo "Rebuilding patch files from current fork state..." echo "Rebuilding patch files from current fork state..."
nofilter="0"
if [ "$2" = "nofilter" ]; then
nofilter="1"
fi
function cleanupPatches { function cleanupPatches {
cd "$1" cd "$1"
for patch in *.patch; do for patch in *.patch; do
@ -56,7 +59,9 @@ function savePatches {
$gitcmd format-patch --no-stat -N -o "$basedir/${what_name}-Patches/" upstream/upstream >/dev/null $gitcmd format-patch --no-stat -N -o "$basedir/${what_name}-Patches/" upstream/upstream >/dev/null
cd "$basedir" cd "$basedir"
$gitcmd add -A "$basedir/${what_name}-Patches" $gitcmd add -A "$basedir/${what_name}-Patches"
cleanupPatches "$basedir/${what_name}-Patches" if [ "$nofilter" == "0" ]; then
cleanupPatches "$basedir/${what_name}-Patches"
fi
echo " Patches saved for $what to $what_name-Patches/" echo " Patches saved for $what to $what_name-Patches/"
} }

Datei anzeigen

@ -7,11 +7,21 @@ basedir="$(cd "$1" && pwd -P)"
workdir="$basedir/work" workdir="$basedir/work"
gitcmd="git -c commit.gpgsign=false" gitcmd="git -c commit.gpgsign=false"
updated="0"
function getRef {
git ls-tree $1 $2 | cut -d' ' -f3 | cut -f1
}
function update { function update {
cd "$workdir/$1" cd "$workdir/$1"
$gitcmd fetch && $gitcmd clean -fd && $gitcmd reset --hard origin/master $gitcmd fetch && $gitcmd clean -fd && $gitcmd reset --hard origin/master
refRemote=$(git rev-parse HEAD)
cd ../ cd ../
$gitcmd add $1 $gitcmd add $1
refHEAD=$(getRef HEAD "$workdir/$1")
echo "$1 $refHEAD - $refRemote"
if [ "$refHEAD" != "$refRemote" ]; then
export updated="1"
fi
} }
update Bukkit update Bukkit
@ -22,4 +32,9 @@ if [[ "$2" = "all" || "$2" = "a" ]] ; then
update BuildData update BuildData
update Paperclip update Paperclip
fi fi
if [ "$updated" == "1" ]; then
echo "Rebuilding patches without filtering to improve apply ability"
cd "$basedir"
scripts/rebuildPatches.sh "$basedir" nofilter 1>/dev/null|| exit 1
fi
) )