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"
                        ;;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to