1 |
On Wed, Oct 26, 2022 at 1:15 PM Neil Bothwick <neil@××××××××××.uk> wrote: |
2 |
> |
3 |
> On Wed, 26 Oct 2022 10:21:06 -0600, Grant Taylor wrote: |
4 |
> |
5 |
> > > dispatch-conf even gives you the opportunity to edit it before |
6 |
> > > applying. |
7 |
> > |
8 |
> > Yep. |
9 |
> > |
10 |
> > I almost always reject the changes suggested on config files that I've |
11 |
> > modified and accept them on files that I've not modified. |
12 |
> > |
13 |
> > I really do wish that there was a better way to manage this, likely |
14 |
> > involving diffs / deltas. E.g. what changed between the N distribution |
15 |
> > file and the N+1 distribution file. Can that same change be safely |
16 |
> > applied to the N' distribution file to create the N'+1 file? |
17 |
> |
18 |
> conf-update allows you to merge the new and old files, prompting you to |
19 |
> pick which to use on each differing section, with a further option to |
20 |
> edit the lines. That way you can keep your changed lines but still add |
21 |
> lines relating to new config options. |
22 |
> |
23 |
|
24 |
It could really use an overhaul but cfg-update does 3-way diffs and |
25 |
auto-merges based on them. Ie, if in a block of text you make a |
26 |
change, and in a new update that particular block of text hasn't |
27 |
changed, then your previous change will get auto-merged. If the |
28 |
upstream file changed in that block of text then you can do a 3-way |
29 |
diff. |
30 |
|
31 |
The tool is really old and barely maintained (I'm caretaking it but |
32 |
don't really want to deal with that - patches welcome). It also uses |
33 |
RCS to store the change history for 3-way merging and that could |
34 |
probably be switched to git or something more modern. If you use an |
35 |
x11-based merge tool then it will also refuse to attempt an automatic |
36 |
merge if X11 isn't available. (Obviously you can't actually run the |
37 |
manual merge if the tool uses X11 and that isn't available.) |
38 |
|
39 |
Using it I find that maybe 95% of my config file changes involve no prompts. |
40 |
|
41 |
Another useful tool is etckeeper which is basically just some |
42 |
integrations for portage around maintaining /etc in git. You can of |
43 |
course just do that manually but it will auto-commit changes if you |
44 |
forget to do so before an update. |
45 |
|
46 |
-- |
47 |
Rich |