diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/merge-all.sh | 63 | ||||
-rwxr-xr-x | scripts/merge.sh | 39 |
2 files changed, 102 insertions, 0 deletions
diff --git a/scripts/merge-all.sh b/scripts/merge-all.sh new file mode 100755 index 0000000000..74502a0533 --- /dev/null +++ b/scripts/merge-all.sh @@ -0,0 +1,63 @@ +#!/bin/bash +FROM=$1 +AUTOMERGE=$2 +if [ "$FROM" = "" ] +then + echo "Usage: $0 <from version> [automerge]" + exit +fi +if [ "$AUTOMERGE" = "automerge" ] +then + AUTOCOMMIT="autocommit" +fi + +svn up +localchanges=`svn stat|wc -l` +if [ "$localchanges" != "0" ] && [ "$IGNOREDIRTY" != "ignoredirty" ] +then + echo "You must have a clean working space copy" + exit +fi + +currentrepowithoutversion=`svn info|grep URL|sed "s/URL: //"|sed "s/\/[^\/]*$//"` + +sourceurl="$currentrepowithoutversion/$FROM" + +if [ "$unmerged" = "" ] +then + echo "No changes to merge" + exit 0 +fi +echo "Unmerged changes" +echo "================" +for revision in $unmerged +do + echo -n "[$revision] " + svn log $sourceurl -r $revision --xml|grep "<msg>"|sed "s/<msg>//"|sed "s/<\/msg>//" +done + +cmd="" +for revision in $unmerged +do + thiscmd=`dirname $0`"/merge.sh $FROM $revision $AUTOCOMMIT $IGNOREDIRTY" + cmd="$thiscmd && " + if [ "$AUTOMERGE" = "automerge" ] + then + echo "Merging [$revision]..." + $thiscmd + if [ "$?" != "0" ] + then + echo "Merge of [$revision] failed, aborting..." + exit 1 + fi + fi +done +cmd="$cmd true" +if [ "$AUTOMERGE" != "automerge" ] +then + echo + echo "Merge command:" + echo + echo $cmd +fi + diff --git a/scripts/merge.sh b/scripts/merge.sh new file mode 100755 index 0000000000..775bc6a839 --- /dev/null +++ b/scripts/merge.sh @@ -0,0 +1,39 @@ +#!/bin/bash +FROM=$1 +REVISION=$2 +AUTOCOMMIT=$3 + +if [ "$FROM" = "" ] || [ "$REVISION" = "" ] +then + echo "Usage: $0 <from version> <changeset> [autocommit]" + exit 2 +fi + +localchanges=`svn stat|wc -l` +if [ "$localchanges" != "0" ] +then + echo "You must have a clean working space copy" + exit 2 +fi + +svn up + +msg=`svn log http://dev.vaadin.com/svn/versions/$FROM -r $REVISION --xml|grep "<msg>"|sed "s/<msg>//"|sed "s/<\/msg>//"` +svn merge http://dev.vaadin.com/svn/versions/$FROM . -c $REVISION +msg="[merge from $FROM] $msg" +if [ "$AUTOCOMMIT" = "autocommit" ] +then + echo "Trying to commit..." + svn commit -m "$msg" + RET=$? + if [ "$RET" != "0" ] + then + exit 1 + fi + exit 0 +else + echo "Run the following command to commit..." + echo svn commit -m \"$msg\" + exit 1 +fi + |