mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 02:33:33 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219290 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8e0fd8cd7c
commit
9e9c2aff71
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user