You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdesdk/scripts/svnbackport

65 lines
1.6 KiB

#!/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