svn commit: r303784 - head/usr.sbin/etcupdate

Baptiste Daroussin bapt at FreeBSD.org
Fri Aug 5 19:22:34 UTC 2016


Author: bapt
Date: Fri Aug  5 19:22:33 2016
New Revision: 303784
URL: https://svnweb.freebsd.org/changeset/base/303784

Log:
  etcupdate: directly use diff3(1) instead of merge(1)
  
  During the last attempt to rmeove GNU rcs, 2 blockers were spotted:
  We need an ident(1) and etcupdate(8) uses merge(1).
  
  Now nothing should prevent to remove rcs from base
  
  Reviewed by:	jhb
  Differential Revision:	https://reviews.freebsd.org/D7401

Modified:
  head/usr.sbin/etcupdate/etcupdate.sh

Modified: head/usr.sbin/etcupdate/etcupdate.sh
==============================================================================
--- head/usr.sbin/etcupdate/etcupdate.sh	Fri Aug  5 19:14:55 2016	(r303783)
+++ head/usr.sbin/etcupdate/etcupdate.sh	Fri Aug  5 19:22:33 2016	(r303784)
@@ -814,15 +814,17 @@ merge_file()
 	local res
 
 	# Try the merge to see if there is a conflict.
-	merge -q -p ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1 >/dev/null 2>&3
+	diff3 -E -m ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1 > /dev/null 2>&3
 	res=$?
 	case $res in
 		0)
 			# No conflicts, so just redo the merge to the
 			# real file.
-			log "merge ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1"
+			log "diff3 -E -m ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1"
 			if [ -z "$dryrun" ]; then
-				merge ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1
+				temp=$(mktemp -t etcupdate)
+				diff3 -E -m ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1 > ${temp}
+				mv -f ${temp} ${DESTDIR}$1
 			fi
 			post_install_file $1
 			echo "  M $1"
@@ -832,10 +834,10 @@ merge_file()
 			# the conflicts directory.
 			if [ -z "$dryrun" ]; then
 				install_dirs $NEWTREE $CONFLICTS $1
-				log "cp -Rp ${DESTDIR}$1 ${CONFLICTS}$1"
-				cp -Rp ${DESTDIR}$1 ${CONFLICTS}$1 >&3 2>&1
-				merge -A -q -L "yours" -L "original" -L "new" \
-				    ${CONFLICTS}$1 ${OLDTREE}$1 ${NEWTREE}$1
+				log "diff3 -m -A ${DESTDIR}$1 ${CONFLICTS}$1"
+				diff3 -m -A -L "yours" -L "original" -L "new" \
+				    ${DESTDIR}$1 ${OLDTREE}$1 ${NEWTREE}$1 > \
+				    ${CONFLICTS}$1
 			fi
 			echo "  C $1"
 			;;


More information about the svn-src-head mailing list