aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorMathieu Arnold <mat@FreeBSD.org>2017-01-03 18:33:19 +0000
committerMathieu Arnold <mat@FreeBSD.org>2017-01-03 18:33:19 +0000
commit6f4d50b30644d7013629b71e407dd3a3af422242 (patch)
tree904f13fab3e3b45edfe55ca1132f417db77504aa /Tools
parentdb38412adcbcbd572502b6c86ff0f8c2ba19367c (diff)
downloadports-6f4d50b30644d7013629b71e407dd3a3af422242.tar.gz
ports-6f4d50b30644d7013629b71e407dd3a3af422242.zip
Make sure the merge is done on the latest branch.
Also, make the branch argument optional. Discussed with: swills Sponsored by: Absolight
Notes
Notes: svn path=/head/; revision=430495
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/scripts/mfh35
1 files changed, 24 insertions, 11 deletions
diff --git a/Tools/scripts/mfh b/Tools/scripts/mfh
index a8b4cc323beb..6d393c19f02c 100755
--- a/Tools/scripts/mfh
+++ b/Tools/scripts/mfh
@@ -55,9 +55,31 @@ ask() {
return 1
}
-[ $# -lt 2 ] && err "$(basename $0) requires at least 2 arguments: <branch> <revnumber> [<revnumber>...]"
+: ${svnserver:="svn+ssh://repo.FreeBSD.org"}
+
+if [ -n "$(type svn 2>/dev/null)" ]; then
+ svn=svn
+elif [ -n "$(type svnlite 2>/dev/null)" ]; then
+ svn=svnlite
+else
+ err "Neither svn(1) nor svnlite(1) found. Please install devel/subversion."
+fi
+
+latest_branch=$("${svn}" ls ${svnserver}/ports/branches/|sed -ne '/^2.*Q./s|/$||p'|tail -1)
+
+[ $# -lt 1 ] && err "$(basename $0) requires at least 1 arguments: [<branch>] <revnumber> [<revnumber>...]"
branch=$1
-shift
+
+# I sure hope by 2030 we'll be doing something else. Yes, famous last words.
+if expr ${branch} : '20[12][0-9]Q[1-4]' > /dev/null; then
+ shift
+ if [ ${latest_branch} != ${branch} ]; then
+ ask "/!\\ The latest branch is ${latest_branch}, do you really want to commit to ${branch}?" || exit 1
+ fi
+else
+ branch=${latest_branch}
+fi
+
revs=""
for rev in $@
do
@@ -67,15 +89,6 @@ do
esac
done
-: ${svnserver:="svn+ssh://repo.FreeBSD.org"}
-
-if [ -n "$(type svn 2>/dev/null)" ]; then
- svn=svn
-elif [ -n "$(type svnlite 2>/dev/null)" ]; then
- svn=svnlite
-else
- err "Neither svn(1) nor svnlite(1) found. Please install devel/subversion."
-fi
trap "rc=\$? ; rm -rf \"\${dir}\" ; exit \$rc" EXIT
dir=$(mktemp -d /tmp/merge.XXXXXX)