Date: Mon, 4 Jan 2021 08:06:33 -0800 From: Mark Millard <marklmi@yahoo.com> To: FreeBSD Current <freebsd-current@freebsd.org> Cc: david@catwhisker.org, ohartmann@walstatt.org Subject: Re: CURRENT, usr/src on git, howto "mergemaster"? Message-ID: <F9B34E2E-6897-4A4D-8FA9-11BF90E470BA@yahoo.com> References: <F9B34E2E-6897-4A4D-8FA9-11BF90E470BA.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
David Wolfskill david at catwhisker.org wrote on Mon Jan 4 12:29:45 UTC 2021 : > After trying to use mergemaster for a couple of weeks (after the = switch > to sources from git, vs. svn) of daily tracking of head & stable/12 on = a > pair of machines (and weekly tracking of stable/12 on another 4), I = gave > up and switched to etcupdate. >=20 > Note that each of mergemaster and etcupdate has a "-p" flag; it is > functionally equivalent between the two, but called slightly > differently: >=20 > * mergemaster: 'Pre-buildworld mode' >=20 > * etcupdate: '=E2=80=9Cpre-world=E2=80=9D mode' >=20 > And note that per src/UPDATING, "mergemaster -Fp" is invoked after = "make > buildworld" but before "make installworld" (under "To rebuild = everything > and install it on the current system.", under "COMMON ITEMS:"). I'm still experimenting but man etcupdate reports: QUOTE Bootstrapping The etcupdate utility may need to be bootstrapped before it can be = used. The diff command will fail with an error about a missing reference = tree if bootstrapping is needed. Bootstrapping etcupdate requires a source tree that matches the = currently installed world. The easiest way to ensure this is to bootstrap etcupdate before updating the source tree to start the next world = upgrade cycle. First, generate a reference tree: etcupdate extract Second, use the diff command to compare the reference tree to your current files in /etc. Undesired differences should be removed = using an editor, patch(1), or by copying files from the reference tree = (located at /var/db/etcupdate/current by default) If the tree at /usr/src is already newer than the currently = installed world, a new tree matching the currently installed world can be = checked out to a temporary location. The reference tree for etcupdate can = then be generated via: etcupdate extract -s /path/to/tree The diff command can be used as above to remove undesired = differences. Afterwards, the changes in the tree at /usr/src can be merged via a regular merge. END QUOTE I do not remember mergemaster having a bootstrap stage in setting it up, a stage that should be executed before /usr/src (or whatever) is updated. So the procedures are different overall. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F9B34E2E-6897-4A4D-8FA9-11BF90E470BA>