svn commit: r339185 - head/Tools/scripts

Lars Engels lme at FreeBSD.org
Wed Jan 8 22:43:21 UTC 2014


Author: lme
Date: Wed Jan  8 22:43:21 2014
New Revision: 339185
URL: http://svnweb.freebsd.org/changeset/ports/339185

Log:
  - Allow a leading "r" in the svn revision
  - Use a variable for the Subversion server
  - Consistently use ${} around variables
  - Bail out if neither svn(1) nor svnlite(1) are installed
  
  Approved by:	bapt

Modified:
  head/Tools/scripts/mfh   (contents, props changed)

Modified: head/Tools/scripts/mfh
==============================================================================
--- head/Tools/scripts/mfh	Wed Jan  8 22:34:40 2014	(r339184)
+++ head/Tools/scripts/mfh	Wed Jan  8 22:43:21 2014	(r339185)
@@ -53,35 +53,47 @@ ask() {
 
 [ $# -ne 2 ] && err "Takes 2 arguments: <branch> <revnumber>"
 branch=$1
-rev=$2
-case $rev in
+rev=${2##r} # remove a leading "r"
+case ${rev} in
 ''|*[!0-9]*) err "revision should be a number" ;;
 esac
 
+svnserver="svn.FreeBSD.org"
+
+if [ -n "$(type svn 2>/dev/null)" ]; then
+	svn=svn
+elif [ -n "$(type svnlite 2>/dev/null)" ]; then
+	svn=svnlite
+else
+	err "svn(1) and svnlite(1) not found. please install devel/subversion"
+fi
+
+
 dir=$(mktemp -d /tmp/merge.XXX)
-cd $dir
-svn co --depth=empty svn+ssh://svn.FreeBSD.org/ports/branches/${branch}
+cd ${dir}
+${svn} co --depth=empty svn+ssh://${svnserver}/ports/branches/${branch}
 filelist=""
-for f in $(svn diff --summarize -c $rev svn://svn.FreeBSD.org/ports/head); do
+# svn:// is faster than svn+ssh://. Use it wherever it's possible.
+for f in $(${svn} diff --summarize -c ${rev} svn://${svnserver}/ports/head); do
 	case ${f} in
 	*/*) ;;
 	*)continue;;
 	esac
 	f=${f#*/ports/head/}
 	f=${f%/*}
-	filelist="$filelist\n$f"
+	filelist="${filelist}\n${f}"
 done
-filelist=$(echo -e $filelist | sort -u)
-echo "MFH: r$rev" > commit.txt
-svn log -r$rev svn://svn.freebsd.org/ports/head | sed '1,2d;$d;/^MFH:/d' >> commit.txt
+filelist=$(echo -e ${filelist} | sort -u)
+echo "MFH: r${rev}" > commit.txt
+${svn} log -r${rev} svn://${svnserver}/ports/head | sed '1,2d;$d;/^MFH:/d' >> commit.txt
 for f in ${filelist}; do
-	svn up --parents ${branch}/${f}
+	${svn} up --parents ${branch}/${f}
 done
-svn up --quiet ${branch}
-svn merge -c r${rev} ^/head/ ${branch}
-svn up --quiet ${branch}
-svn diff ${branch}
+${svn} up --quiet ${branch}
+${svn} merge -c r${rev} ^/head/ ${branch}
+${svn} up --quiet ${branch}
+${svn} diff ${branch}
 ask "Do you want to commit?" || clean
 ${EDITOR:-vi} commit.txt
-svn ci -F commit.txt ${branch}
-rm -rf $dir
+${svn} ci -F commit.txt ${branch}
+rm -rf ${dir}


More information about the svn-ports-all mailing list