diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2022-12-14 17:34:59 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2023-03-02 20:50:57 +0000 |
| commit | a6c6edbe9d37caf1dbc81f918adf8c1f451a534e (patch) | |
| tree | 3fb2bdec828a1f4c5a0dd2ff6294487e4badaa49 | |
| parent | 4ec0ecb2ad69f461f59e47070229bfd86794e969 (diff) | |
| download | src-a6c6edbe9d37caf1dbc81f918adf8c1f451a534e.tar.gz src-a6c6edbe9d37caf1dbc81f918adf8c1f451a534e.zip | |
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
Approved by: re (cperciva)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37703
(cherry picked from commit ceb5f28ba5fcfa69de7410d2327d4a5abf2a421f)
(cherry picked from commit c7e3703352037a5afacdc4126725f351fe7da72b)
| -rw-r--r-- | usr.sbin/freebsd-update/freebsd-update.sh | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 078043326115..ca043de20f62 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 |
