From 65eac0c3d5131505234feb1be33ba44e9b369388 Mon Sep 17 00:00:00 2001
From: Spigot <noreply+git-spigot@papermc.io>
Date: Wed, 16 Jan 2013 12:08:09 -0500
Subject: [PATCH] Add cleanup Patches function to not modify patches with no
 changes

By: Aikar <aikar@aikar.co>
---
 rebuildPatches.sh | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/rebuildPatches.sh b/rebuildPatches.sh
index 354c289791..1d90529d12 100755
--- a/rebuildPatches.sh
+++ b/rebuildPatches.sh
@@ -2,14 +2,24 @@
 
 basedir=$(dirname $(readlink -f $0))
 echo "Rebuilding patch files from current fork state..."
-
+function cleanupPatches {
+    cd $1
+    for patch in *.patch; do
+        lines=$(git diff --staged $patch | grep -E "^(\+|\-)" | grep -Ev "(From [a-z0-9]{32,}|--- a|+++ b)" | wc -l)
+        if [ "$lines" == "0" ] ; then
+            git reset HEAD $patch >/dev/null
+            git checkout -- $patch >/dev/null
+        fi
+    done
+}
 function savePatches {
     what=$1
     target=$2
     cd $basedir/$target/
-    git format-patch -o $basedir/${what}-Patches/ upstream/master
+    git format-patch -N -o $basedir/${what}-Patches/ upstream/master
     cd $basedir
     git add $basedir/${what}-Patches
+    cleanupPatches $basedir/${what}-Patches
     echo "  Patches saved for $what to $what-Patches/"
 }