Merge pull request #2355 from jlebon/pr/etc-merge-moar-docs

docs: Add more details about 3-way merge
This commit is contained in:
Dan Nicholson 2021-04-30 10:14:52 -06:00 committed by GitHub
commit af723f9a2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 4 deletions

View File

@ -69,10 +69,26 @@ given commit is deployed more than once, it will be incremented.
This is supported because the previous deployment may have This is supported because the previous deployment may have
configuration in `/etc` that we do not want to use or overwrite. configuration in `/etc` that we do not want to use or overwrite.
Now that we have a deployment directory, a 3-way merge is Now that we have a deployment directory, a 3-way merge is performed
performed between the (by default) currently booted deployment's between the (by default) currently booted deployment's `/etc`, its
`/etc`, its default default configuration, and the new deployment (based on its `/usr/etc`).
configuration, and the new deployment (based on its `/usr/etc`).
How it works is:
- Files in the currently booted deployment's `/etc` which were modified
from the default `/usr/etc` (of the same deployment) are retained.
- Files in the currently booted deployment's `/etc` which were not
modified from the default `/usr/etc` (of the same deployment) are
upgraded to the new defaults from the new deployment's `/etc/etc`.
Roughly, this means that as soon as you modify or add a file in `/etc`,
this file will be propagated forever as is (though there is a
corner-case, where if your modification eventually exactly matches a
future default file, then the file will go back to following future
default updates from that point on).
You can use `ostree admin config-diff` to see the differences between
your booted deployment's `/etc` and the OSTree defaults. A command like
`diff {/usr,}/etc` will additional print line-level differences.
## Atomically swapping boot configuration ## Atomically swapping boot configuration