From 7c8b28718642b8e0f77b1c11d698e90bdebd882f Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Fri, 1 Jul 2016 14:30:06 +0100 Subject: [PATCH] tools: gen-rpi-kodi-patch.sh supports rebase script --- tools/RPi/gen-rpi-kodi-patch.sh | 33 +++++++++++++++++++++++++++------ tools/RPi/rpi-kodi-rebase.sh | 16 ++++++++++++++++ 2 files changed, 43 insertions(+), 6 deletions(-) create mode 100755 tools/RPi/rpi-kodi-rebase.sh diff --git a/tools/RPi/gen-rpi-kodi-patch.sh b/tools/RPi/gen-rpi-kodi-patch.sh index 48ec2ab569..1586c4d633 100755 --- a/tools/RPi/gen-rpi-kodi-patch.sh +++ b/tools/RPi/gen-rpi-kodi-patch.sh @@ -18,6 +18,7 @@ usage() echo echo "Example: ${me} jarvis_rbp_backports d11fabefb909e75e7186bd9ecd0cbff9e8b24577" echo "Example: ${me} jarvis_rbp_backports Jarvis" + echo "Example: ${me} newclock5 master" echo echo "For sha, see https://github.com/xbmc/xbmc/compare/Jarvis...popcornmix:jarvis_rbp_backports (replace branches as appropriate)" exit 1 @@ -58,9 +59,20 @@ else BASEREV="xbmc/${BASEREV}" fi +# Apply the following config change to reduce chance of duplicate hashes +git config --local core.abbrev 40 + git fetch --all --depth=${DEPTH} git reset --hard origin/${BRANCH} +TOPREV="$(git log --oneline --grep "UNSTABLE: This is a placeholder. Commits after this point are considered experimental." | awk '{print $1}')" +if [ -n "${TOPREV}" ]; then + echo "Found UNSTABLE placeholder with rev ${TOPREV}, making this the new HEAD" + git reset --hard ${TOPREV} +else + echo "WARNING: UNSTABLE placeholder not found, assuming it is not present in branch ${BRANCH}" +fi + if [ -d addons/skin.confluence ]; then SKIN1=skin.confluence SKIN2=kodi-theme-Confluence @@ -69,6 +81,7 @@ else SKIN2=kodi-theme-Estuary fi +GIT_SEQUENCE_EDITOR=${BIN}/rpi-kodi-rebase.sh git rebase -i ${BASEREV} git format-patch --no-signature --stdout ${BASEREV} -- addons/${SKIN1} | sed -E 's#addons/skin\.[^/]*/##g' >/tmp/skin.patch git format-patch --no-signature --stdout ${BASEREV} -- . ":!addons/${SKIN1}" >/tmp/kodi.patch @@ -89,13 +102,21 @@ echo "git checkout -b somebranch" BRANCH="${BRANCH//_/-}" echo -echo "cp /tmp/skin.patch projects/RPi/patches/${SKIN2}/${SKIN2}-001-${BRANCH}.patch" -echo "cp /tmp/skin.patch projects/RPi2/patches/${SKIN2}/${SKIN2}-001-${BRANCH}.patch" -echo "git commit -am \"RPi/RPi2: Update ${SKIN2} support patches\"" +if [ -s /tmp/skin.patch ]; then + echo "cp /tmp/skin.patch projects/RPi/patches/${SKIN2}/${SKIN2}-001-backport.patch" + echo "cp /tmp/skin.patch projects/RPi2/patches/${SKIN2}/${SKIN2}-001-backport.patch" + echo "git commit -am \"RPi/RPi2: Update ${SKIN2} support patches\"" +else + echo "NO SKIN PATCH REQUIRED" +fi echo -echo "cp /tmp/kodi.patch projects/RPi/patches/kodi/kodi-001-${BRANCH}.patch" -echo "cp /tmp/kodi.patch projects/RPi2/patches/kodi/kodi-001-${BRANCH}.patch" -echo "git commit -am \"RPi/RPi2: Update kodi support patches\"" +if [ -s /tmp/kodi.patch ]; then + echo "cp /tmp/kodi.patch projects/RPi/patches/kodi/kodi-001-backport.patch" + echo "cp /tmp/kodi.patch projects/RPi2/patches/kodi/kodi-001-backport.patch" + echo "git commit -am \"RPi/RPi2: Update kodi support patches\"" +else + echo "NO KODI PATCH REQUIRED" +fi echo diff --git a/tools/RPi/rpi-kodi-rebase.sh b/tools/RPi/rpi-kodi-rebase.sh new file mode 100755 index 0000000000..85eeeeabce --- /dev/null +++ b/tools/RPi/rpi-kodi-rebase.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +TODO=$1 + +# Drop commits not used +DROP_COMMITS=" +THIS_IS_A_PLACEHOLDER, REPLACE WITH COMMIT DESCRIPTION ONCE THERE IS SOMETHING TO BE DROPPED! +" + +IFS=$'\n' +for COMMIT in $DROP_COMMITS; do + sed -i -E "s/^pick ([0-9a-f]+) (${COMMIT}.*)/drop \1 \2/g" $TODO +done + +grep -E "^drop " $TODO > /tmp/dropped +sed -i -E "/^drop /d" $TODO