mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Add shell script to easily back-port commits in git-svn from trunk to other branches.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17856 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
ec886fd223
commit
efc19c85eb
30
util/git-backport.sh
Executable file
30
util/git-backport.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
REV=$1
|
||||||
|
: ${ORIGBRANCH=trunk}
|
||||||
|
: ${WHOAMI=`whoami`}
|
||||||
|
|
||||||
|
TMPFILE=tmplog.tmp
|
||||||
|
#TMPFILE2=tmplog2.tmp
|
||||||
|
|
||||||
|
# Cherry-pick the other commit
|
||||||
|
ORIGID=`git svn find-rev r${REV} ${ORIGBRANCH}`
|
||||||
|
if [ -z "${ORIGID}" ] ; then
|
||||||
|
echo "Revision ${REV} not found in branch ${ORIGBRANCH}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
git cherry-pick ${ORIGID}
|
||||||
|
|
||||||
|
# Create new log message by modifying the old one
|
||||||
|
git log --pretty=format:"[$REV] %s%n%n%b" HEAD^..HEAD \
|
||||||
|
| grep -v '^BP$' | grep -v 'git-svn-id:' > ${TMPFILE}
|
||||||
|
OTHERAUTHOR=`git log --pretty=format:"%an" HEAD^..HEAD`
|
||||||
|
if [ "${WHOAMI}" != "${OTHERAUTHOR}" ]; then
|
||||||
|
echo -e "\nOriginal commit by ${OTHERAUTHOR}." >> ${TMPFILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Commit new log message
|
||||||
|
git commit --amend -F ${TMPFILE}
|
||||||
|
|
||||||
|
# Clean up temporary files
|
||||||
|
rm -f ${TMPFILE}
|
Loading…
Reference in New Issue
Block a user