From owner-svn-ports-all@FreeBSD.ORG Wed Jan 8 22:43:21 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D8618769; Wed, 8 Jan 2014 22:43:21 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AA9B01953; Wed, 8 Jan 2014 22:43:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s08MhLcb004003; Wed, 8 Jan 2014 22:43:21 GMT (envelope-from lme@svn.freebsd.org) Received: (from lme@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s08MhLsI004002; Wed, 8 Jan 2014 22:43:21 GMT (envelope-from lme@svn.freebsd.org) Message-Id: <201401082243.s08MhLsI004002@svn.freebsd.org> From: Lars Engels Date: Wed, 8 Jan 2014 22:43:21 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r339185 - head/Tools/scripts X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Jan 2014 22:43:21 -0000 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=$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}