summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2014-10-08 09:32:47 +0000
committerRenato Golin <renato.golin@linaro.org>2014-10-08 09:32:47 +0000
commitdbcc2a9fdb6196570c876e9a07fe3ecd769995ba (patch)
tree8afe43f71bdb8990eb6d2417538e50264ca40392
parent9804fa5d482a8917274a4f35fdba345563fc7ff7 (diff)
downloadbcm5719-llvm-dbcc2a9fdb6196570c876e9a07fe3ecd769995ba.tar.gz
bcm5719-llvm-dbcc2a9fdb6196570c876e9a07fe3ecd769995ba.zip
Update git-svnrevert to accept git and svn revisions
Interchangeable commit ids can now be used on this git-svnrevert, which will figure out what kind of commit that is (if you use format rNNNN for SVN commits) and make sure the right ids are used in the right places. It's a little bit more robust and user-friendly. llvm-svn: 219290
-rwxr-xr-xllvm/utils/git-svn/git-svnrevert25
1 files changed, 16 insertions, 9 deletions
diff --git a/llvm/utils/git-svn/git-svnrevert b/llvm/utils/git-svn/git-svnrevert
index 06a9c440915..f15e7abfb3f 100755
--- a/llvm/utils/git-svn/git-svnrevert
+++ b/llvm/utils/git-svn/git-svnrevert
@@ -2,7 +2,7 @@
if [ $# -ne 1 ]; then
echo "Invalid arguments!"
- echo "$0 <commit to revert>"
+ echo "$0 <rNNNNNN | git-hash>"
exit 1
fi
@@ -13,20 +13,27 @@ if [ -n "$(git status -uno -s --porcelain)" ]; then
fi
COMMIT=$1
-
-SVN_REVISION=$(git svn find-rev "$COMMIT")
+OTHER=$(git svn find-rev "$COMMIT")
if [ $? -ne 0 ]; then
- echo "Error! Could not find an svn revision for commit $COMMIT!"
+ echo "Error! Could not find an svn/git revision for commit $COMMIT!"
exit 1
fi
+if [ -n "$(echo $COMMIT | grep '^r[0-9]\+')" ]; then
+ SVN=`echo $COMMIT | sed -e 's/^r//'`
+ GIT=$OTHER
+else
+ SVN=$OTHER
+ GIT=$COMMIT
+fi
+
# Grab the one line message for our revert commit message.
-ONE_LINE_MSG=$(git log --oneline $COMMIT -1 | cut -f2- -d " ")
+ONE_LINE_MSG=$(git log --oneline $GIT -1 | cut -f2- -d " ")
# Revert the commit.
-git revert --no-commit $COMMIT 2>/dev/null
+git revert --no-commit $GIT 2>/dev/null
if [ $? -ne 0 ]; then
- echo "Error! Failed to revert commit $COMMIT. Resetting to head."
+ echo "Error! Failed to revert commit r$SVN. Resetting to head."
git reset --hard HEAD
exit 1
fi
@@ -36,13 +43,13 @@ TEMPLATE="`git rev-parse --git-dir`/git-svn-revert-template"
cat > $TEMPLATE <<EOF
Revert "$ONE_LINE_MSG"
-This reverts commit r$SVN_REVISION.
+This reverts commit r$SVN.
EOF
# Begin the commit but give our user an opportunity to edit it.
git commit --file="$TEMPLATE" --edit
if [ $? -ne 0 ]; then
- echo "Error! Failed to commit reverting commit for commit $COMMIT. Reverting to head."
+ echo "Error! Failed to commit reverting commit for commit r$SVN. Reverting to head."
git reset --hard HEAD
rm -rf $TEMPLATE
exit 1
OpenPOWER on IntegriCloud