Backups: a revision chain belongs to a PC, not just a machine

This commit is contained in:
2026-08-10 15:03:00 -04:00
parent d40be9ca68
commit 28b1dfb89e
6 changed files with 376 additions and 16 deletions

View File

@@ -21,6 +21,17 @@ ADR-007 and ADR-002.
number now identifies the machine only. A new PC takes its hostname as its
asset number, which is what the existing data already does, and an existing
PC's asset number is never overwritten.
- Configuration backups piled up duplicate revisions on any machine number
reported by more than one PC. A posted config was compared against the latest
revision for the machine, so where several PCs share a number - the part
markers do, and their configs differ by COM port - each PC's post differed
from whichever PC posted last, nothing deduped, and the table grew by a row
per PC per collection cycle. A backup chain is now per source PC, so an
unchanged config is a no-op again and each PC keeps its own history against
the machine it belongs to. Retention prunes each chain separately, so a busy
PC's revisions can no longer push out a quiet PC's only backup, and the
revision diff compares against the same PC's previous revision rather than
another PC's.
- A backup export containing a value with an empty right-hand side (`Name=`)
failed to parse, and with it the whole file, so that machine could never be
backed up. The form is not strictly legal but occurs in real exports. It is