Date: Mon, 29 Apr 2019 12:55:44 +0100 From: Matthew Seaman <matthew@FreeBSD.org> To: freebsd-stable@freebsd.org Subject: Re: CFT: FreeBSD Package Base Message-ID: <701337aa-9236-a089-db11-85405642ead7@FreeBSD.org> In-Reply-To: <20190429105240.GB2396@elch.exwg.net> References: <002901d4fdfb$e52eb890$af8c29b0$@ixsystems.com> <15583041-1D56-44BE-8E88-ECC11C935A09@gromit.dlib.vt.edu> <34C3A77A-7B18-487E-9BC4-5B1087FEEBEA@bway.net> <20190429100104.GX62338@e.0x20.net> <20190429105240.GB2396@elch.exwg.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 29/04/2019 11:52, Christoph Moench-Tegeder wrote: > This situation should be improved. Given that etcupdate is in all > supported releases, we can even update UPDATING and the Handbook. > So, does anyone have a pointer to the official procedure? Basically run: # etcupdate towards the end of your standard update-from-src process. Pretty much all the available arguments to etcupdate have sane defaults, so it's quite likely you can just run the bare command. (Obv. check the man page for details though) It will automatically do a 3-way merge between the latest sources, the sources from the previous time you ran etcupdate and your deployed configuration in /etc Most of the time, that's all you need to do. Occasionally however etcupdate will run into a merge conflict. When that happens etcupdate will display a SVN-like status report showing the conflicting files and refuse to do anything until the conflicts have been resolved. Which you do by: # etcupdate resolve That's an interactive process which runs through all of the conflicts and allows you to examine the differences and select either your own or the upstream version, or to just edit the files and merge the conflicts manually. Should be pretty familiar if you've ever used git or svn... Once everything has been marked as resolved, etcupdate reverts back to the usual behaviour and will automatically merge in any new updates as far as possible. Most of the time using etcupdate just boils down to a single, non-interactive command to keep everything up to date during the update process. Much less faff than using mergemaster. Occasionally you may need to run: # etcupdate -p before you 'make buildworld' -- that's in exactly the same circumstances where you'ld previously have run 'mergemaster -p' and it does the same job: apply any necessary changes to allow your build to succeed. The times you need to do this should be flagged in UPDATING. Cheers, Matthew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?701337aa-9236-a089-db11-85405642ead7>