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