diff --git a/applyPatches.sh b/applyPatches.sh index 21a0eb6a5..589a0cc9a 100755 --- a/applyPatches.sh +++ b/applyPatches.sh @@ -10,21 +10,23 @@ function applyPatch { branch=$3 cd "$basedir/$what" git fetch - git branch -f upstream "$branch" >/dev/null + git reset --hard "$branch" + git branch -f upstream >/dev/null cd "$basedir" if [ ! -d "$basedir/$target" ]; then - git clone "$what" "$target" + git clone $1 $target -b upstream fi cd "$basedir/$target" echo "Resetting $target to $what..." - git remote add -f upstream ../$what >/dev/null 2>&1 + git remote rm upstream 2>/dev/null 2>&1 + git remote add upstream ../$what >/dev/null 2>&1 git checkout master >/dev/null 2>&1 git fetch upstream >/dev/null 2>&1 git reset --hard upstream/upstream echo " Applying patches to $target..." - git am --abort >/dev/null 2>&1 - git am --3way --ignore-whitespace "$basedir/${what}-Patches/"*.patch + git am --abort + git am --3way "$basedir/${what}-Patches/"*.patch if [ "$?" != "0" ]; then echo " Something did not apply cleanly to $target." echo " Please review above details and finish the apply then" @@ -35,5 +37,14 @@ function applyPatch { fi } -applyPatch Bukkit Spigot-API HEAD && applyPatch CraftBukkit Spigot-Server patched -applyPatch Spigot-API PaperSpigot-API HEAD && applyPatch Spigot-Server PaperSpigot-Server HEAD \ No newline at end of file +echo +echo "Applying SpigotMC patches to CraftBukkit and Bukkit" +echo +cd ../Bukkit +hash=$(git rev-parse HEAD) +git branch -f spigot "$hash" +applyPatch Bukkit Spigot-API origin/spigot && applyPatch CraftBukkit Spigot-Server origin/patched +echo +echo "Applying PaperSpigot patches to Spigot-Server and Spigot-API" +echo +applyPatch Spigot-API PaperSpigot-API && applyPatch Spigot-Server PaperSpigot-Server diff --git a/rebuildPatches.sh b/rebuildPatches.sh index e5743cd14..268aef04a 100755 --- a/rebuildPatches.sh +++ b/rebuildPatches.sh @@ -3,19 +3,23 @@ PS1="$" basedir=`pwd` echo "Rebuilding patch files from current fork state..." -git config core.safecrlf false function cleanupPatches { cd "$1" for patch in *.patch; do - echo "$patch" gitver=$(tail -n 2 $patch | grep -ve "^$" | tail -n 1) - diffs=$(git diff --staged $patch | grep -E "^(\+|\-)" | grep -Ev "(From [a-z0-9]{32,}|\-\-\- a|\+\+\+ b|Date\: |.index)") + diffs=$(git diff --staged $patch | grep -E "^(\+|\-)" | grep -Ev "(From [a-z0-9]{32,}|\-\-\- a|\+\+\+ b|.index)") testver=$(echo "$diffs" | tail -n 2 | grep -ve "^$" | tail -n 1 | grep "$gitver") if [ "x$testver" != "x" ]; then - diffs=$(echo "$diffs" | sed 'N;$!P;$!D;$d') + mingw=$(uname -s | grep "MINGW") + if [ "x$mingw" != "x" ]; then + diffs=$(echo "$diffs" | head -n $(($(echo "$diffs" | wc -l | sed -r 's/^ +//' | cut -d ' ' -f 1) - 2))) + else + diffs=$(echo "$diffs" | head -n -2) + fi fi + if [ "x$diffs" == "x" ] ; then git reset HEAD $patch >/dev/null @@ -27,16 +31,15 @@ function cleanupPatches { function savePatches { what=$1 target=$2 - echo "Formatting patches for $what..." cd "$basedir/$target" - git format-patch --no-stat -N -o "$basedir/${what}-Patches/" upstream/upstream >/dev/null + git format-patch --no-stat -N -o "$basedir/${what}-Patches/" upstream/upstream cd "$basedir" - git add -A "$basedir/${what}-Patches" + git add "$basedir/${what}-Patches" cleanupPatches "$basedir/${what}-Patches" echo " Patches saved for $what to $what-Patches/" } -if [ "$1" == "clean" ]; then - rm -rf Spigot-*-Patches -fi + +#savePatches Bukkit Spigot-API +#savePatches CraftBukkit Spigot-Server savePatches Spigot-API PaperSpigot-API -savePatches Spigot-Server PaperSpigot-Server \ No newline at end of file +savePatches Spigot-Server PaperSpigot-Server