From owner-svn-src-head@FreeBSD.ORG Wed Mar 18 21:51:12 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77B79106579B; Wed, 18 Mar 2009 21:51:12 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 45CBE8FC15; Wed, 18 Mar 2009 21:51:12 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILpCU7038757; Wed, 18 Mar 2009 21:51:12 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILpCrM038756; Wed, 18 Mar 2009 21:51:12 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <200903182151.n2ILpCrM038756@svn.freebsd.org> From: Doug Barton Date: Wed, 18 Mar 2009 21:51:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189992 - head/usr.sbin/mergemaster X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2009 21:51:15 -0000 Author: dougb Date: Wed Mar 18 21:51:11 2009 New Revision: 189992 URL: http://svn.freebsd.org/changeset/base/189992 Log: Add a new -F option to automatically install files that differ only by version control Id strings Modified: head/usr.sbin/mergemaster/mergemaster.sh Modified: head/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- head/usr.sbin/mergemaster/mergemaster.sh Wed Mar 18 21:51:02 2009 (r189991) +++ head/usr.sbin/mergemaster/mergemaster.sh Wed Mar 18 21:51:11 2009 (r189992) @@ -15,7 +15,7 @@ PATH=/bin:/usr/bin:/usr/sbin display_usage () { VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4` echo "mergemaster version ${VERSION_NUMBER}" - echo 'Usage: mergemaster [-scrvahipCPU]' + echo 'Usage: mergemaster [-scrvahipFCPU]' echo ' [-m /path] [-t /path] [-d] [-u N] [-w N] [-A arch] [-D /path]' echo "Options:" echo " -s Strict comparison (diff every pair of files)" @@ -26,6 +26,7 @@ display_usage () { echo " -h Display more complete help" echo ' -i Automatically install files that do not exist in destination directory' echo ' -p Pre-buildworld mode, only compares crucial files' + echo ' -F Install files that differ only by revision control Id ($FreeBSD$)' echo ' -C Compare local rc.conf variables to the defaults' echo ' -P Preserve files that are overwritten' echo " -U Attempt to auto upgrade files that have not been user modified" @@ -264,11 +265,14 @@ MTREEFILE="${MTREEDB}/mergemaster.mtree" # Check the command line options # -while getopts ":ascrvhipCPm:t:du:w:D:A:U" COMMAND_LINE_ARGUMENT ; do +while getopts ":ascrvhipCPm:t:du:w:D:A:FU" COMMAND_LINE_ARGUMENT ; do case "${COMMAND_LINE_ARGUMENT}" in A) ARCHSTRING='TARGET_ARCH='${OPTARG} ;; + F) + FREEBSD_ID=yes + ;; U) AUTO_UPGRADE=yes ;; @@ -1021,6 +1025,19 @@ for COMPFILE in `find . -type f -size +0 # Use more if not. # Use unified diffs by default. Context diffs give me a headache. :) # + # If the user chose the -F option, test for that before proceeding + # + if [ -n "$FREEBSD_ID" ]; then + if diff -q -I'[$]FreeBSD:.*$' "${DESTDIR}${COMPFILE#.}" "${COMPFILE}" > \ + /dev/null 2>&1; then + if mm_install "${COMPFILE}"; then + echo "*** Updated revision control Id for ${DESTDIR}${COMPFILE#.}" + else + echo "*** Problem installing ${COMPFILE}, it will remain to merge by hand later" + fi + continue + fi + fi case "${AUTO_RUN}" in '') # prompt user to install/delete/merge changes