git: ceb5f28ba5fc - main - freebsd-update: re-edit files if merge conflict markers remain
Date: Thu, 02 Mar 2023 01:21:32 UTC
The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=ceb5f28ba5fcfa69de7410d2327d4a5abf2a421f commit ceb5f28ba5fcfa69de7410d2327d4a5abf2a421f Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2022-12-14 17:34:59 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-03-02 01:20:33 +0000 freebsd-update: re-edit files if merge conflict markers remain freebsd-update will open ${EDITOR} if conflicts occur while merging updates to config files. Inform the user if they've left conflict markers behind, and go back to editing the file. PR: 185546 PR: 229689 Reviewed by: delphij Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37703 --- usr.sbin/freebsd-update/freebsd-update.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index b6cd241c4a48..225d1e31e3ec 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -2543,8 +2543,21 @@ The following file could not be merged automatically: ${F} Press Enter to edit this file in ${EDITOR} and resolve the conflicts manually... EOF - read dummy </dev/tty - ${EDITOR} `pwd`/merge/new/${F} < /dev/tty + while true; do + read dummy </dev/tty + ${EDITOR} `pwd`/merge/new/${F} < /dev/tty + + if ! egrep -q '^(<<<<<<<|=======|>>>>>>>)([[:space:]].*)?$' $(pwd)/merge/new/${F} ; then + break + fi + cat <<-EOF + +Merge conflict markers remain in: ${F} +These must be resolved for the system to be functional. + +Press Enter to return to editing this file. + EOF + done done < failed.merges rm failed.merges