Revert accidental changes from r258805
[oota-llvm.git] / utils / release / merge.sh
index a6b716e3d32d87e34533401c2d9399d070b4bc49..93e08c7ce135735064cf68697676bccf5025beb1 100755 (executable)
@@ -16,11 +16,13 @@ set -e
 
 rev=""
 proj=""
+revert="no"
 
 function usage() {
     echo "usage: `basename $0` [OPTIONS]"
     echo "  -proj PROJECT  The project to merge the result into"
     echo "  -rev NUM       The revision to merge into the project"
+    echo "  -revert        Revert rather than merge the commit"
 }
 
 while [ $# -gt 0 ]; do
@@ -36,6 +38,9 @@ while [ $# -gt 0 ]; do
         -h | -help | --help )
             usage
             ;;
+        -revert | --revert )
+            revert="yes"
+            ;;
         * )
             echo "unknown option: $1"
             echo ""
@@ -60,13 +65,27 @@ fi
 
 tempfile=`mktemp /tmp/merge.XXXXXX` || exit 1
 
-echo "Merging r$rev:" > $tempfile
+if [ $revert = "yes" ]; then
+    echo "Reverting r$rev:" > $tempfile
+else
+    echo "Merging r$rev:" > $tempfile
+fi
 svn log -c $rev http://llvm.org/svn/llvm-project/$proj/trunk >> $tempfile 2>&1
 
 cd $proj.src
-echo "# Merging r$rev into $proj"
-svn merge -c $rev https://llvm.org/svn/llvm-project/$proj/trunk . || exit 1
-echo "# Committing changes"
-svn commit -F $tempfile || exit 1
-rm -f $tempfile
+echo "# Updating tree"
+svn up
+
+if [ $revert = "yes" ]; then
+    echo "# Reverting r$rev in $proj locally"
+    svn merge -c -$rev . || exit 1
+else
+    echo "# Merging r$rev into $proj locally"
+    svn merge -c $rev https://llvm.org/svn/llvm-project/$proj/trunk . || exit 1
+fi
+
+echo
+echo "# To commit, run the following in $proj.src/:"
+echo svn commit -F $tempfile
+
 exit 0