Bug 244218

Summary: mergemaster: audit the code to make sure -U still work without RCS ID
Product: Base System Reporter: Xin LI <delphij>
Component: binAssignee: 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 freebsd_committer freebsd_triage 2020-02-18 21:00:38 UTC
We would like to make sure that mergemaster won't be affected when RCS ID is removed.
Comment 1 Xin LI freebsd_committer freebsd_triage 2020-02-19 07:19:44 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.