diff options
Diffstat (limited to 'scripts/svnbackport')
-rwxr-xr-x | scripts/svnbackport | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/scripts/svnbackport b/scripts/svnbackport new file mode 100755 index 00000000..cdecdcb4 --- /dev/null +++ b/scripts/svnbackport @@ -0,0 +1,64 @@ +#!/bin/sh +# Backport the last change in HEAD, to a branch. +# Usage: svnbackport <files> +# WARNING: the branch tag is hardcoded into the script, make sure to check it! +# +# This is a port of the "cvsbackport" script: +# Initial author: Dirk Mueller +# Support for multiple command-line arguments: David Faure +# Ported to SVN: Till Gerken +# Help message: Thomas Zander +# +# It is a straight port and not very sophisticated. It might break. I hope +# that someone else with more knowledge about Subversion will pick it up. +# It needs to be used from within the repository so that it can guess +# the remote URL correctly. +# + +#REPOSITORY=https://svn.kde.org/home/kde + +if test -z "$1" -o "$1" = "-h" -o "$1" = "--help"; then + echo "Usage: svnbackport recentlyCommittedFile"; + exit; +fi + +BRANCH=3.5 + +SRC_REMOTE=`svn info | grep URL: | cut -c6-` +TARGET_REMOTE=`echo $SRC_REMOTE | sed "s|trunk/KDE|branches/KDE/$BRANCH|"` + + +echo "Backporting to $BRANCH" +TMPFILE=`mktemp svnbackport.XXXXXX` || exit 1 +files=$* +until test $# -eq 0; do + + echo "looking for last change to $1..." + svnlastchange $1 > $TMPFILE + echo "browsing last change to $1..." + less $TMPFILE + + FILE_PATH=$1 + FROM_URL=$SRC_REMOTE/$1 + TO_URL=$TARGET_REMOTE/$1 + + echo "switching to branch..." + svn switch $TO_URL $FILE_PATH + patch $FILE_PATH $TMPFILE + rm -f $TMPFILE + echo "showing diff for $1..." + svn diff $FILE_PATH | less + + shift +done + +kdialog --yesno "Do you want to commit all changes?" +if [ $? = 0 ]; then + svn ci $files +fi + +echo "switching back to trunk..." +for file in $files +do + svn switch $SRC_REMOTE/$file $file +done |