Summary: | mergemaster: audit the code to make sure -U still work without RCS ID | ||
---|---|---|---|
Product: | Base System | Reporter: | Xin LI <delphij> |
Component: | bin | Assignee: | Xin LI <delphij> |
Status: | Closed Works As Intended | ||
Severity: | Affects Some People | CC: | bapt, emaste, gjb, glebius, imp, uqs |
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any |
Description
Xin LI
2020-02-18 21:00:38 UTC
My conclusion is that $FreeBSD$ ID doesn't really matter for mergemaster. For -U, the code basically sets AUTO_UPGRADE, which causes mergemaster to install new file if it's not user-modified (by comparing the current etc/ tree against saved mtree file). It works regardless if $FreeBSD$ is present. For -F, the code does a comparison with diff -q -I '[$]FreeBSD.*[$]' and installs new version if the file only differs in $FreeBSD$ tag. If we stop expanding $FreeBSD$ or have it removed, the code would fall back to the traditional way of compare and when -U is present, it would correctly handle non-modified configuration files as usual. |