Skip site navigation (1)Skip section navigation (2)
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>