🚧 Update commit message format

This commit is contained in:
Jonas Bengtsson
2026-09-12 11:49:03 +02:00
parent 17596907f5
commit e773703ed3
8 changed files with 153 additions and 82 deletions
+31 -30
View File
@@ -526,10 +526,21 @@ If the staged change set does not match the expected change set, the commit shal
Commit messages shall be human-readable while retaining a predictable structure that can later be parsed automatically.
Each changed file shall occupy exactly one line, in the style of `git diff --name-status`. A single-letter change type is followed by the file path, the last modifying user and the filesystem last-modified time, with the parts joined by a configurable separator (see Section 26, `commit.file_separator`; default `;`).
Line grammar:
```text
A <sep> <path> <sep> <author> <sep> <modified-at> added
M <sep> <path> <sep> <author> <sep> <modified-at> modified
R <sep> <old-path> -> <new-path> renamed (bare)
D <sep> <path> deleted (bare)
```
Recommended format:
```text
SCADA automatic change capture - 2026-09-11 18:00:03
SCADA automatic change capture - 2026-09-11 18:00:03+02:00
Summary:
Added: 2
@@ -537,31 +548,19 @@ Summary:
Deleted: 1
Renamed: 0
Added:
Stations/PS101/pump2.xml
Last modified by: DOMAIN\jsmith
Modified at: 2026-09-11 15:41:22
Stations/PS104/settings.xml
Last modified by: DOMAIN\adoe
Modified at: 2026-09-11 16:02:14
Modified:
Stations/PS101/project.xml
Last modified by: DOMAIN\jsmith
Modified at: 2026-09-11 15:42:09
Stations/PS103/alarm.xml
Last modified by: DOMAIN\adoe
Modified at: 2026-09-11 16:13:54
System/global.xml
Last modified by: UNKNOWN
Deleted:
Stations/PS027/old-config.xml
Changes:
A ; Stations/PS101/pump2.xml ; DOMAIN\jsmith ; 2026-09-11 15:41:22+02:00
A ; Stations/PS104/settings.xml ; DOMAIN\adoe ; 2026-09-11 16:02:14+02:00
M ; Stations/PS101/project.xml ; DOMAIN\jsmith ; 2026-09-11 15:42:09+02:00
M ; Stations/PS103/alarm.xml ; DOMAIN\adoe ; 2026-09-11 16:13:54+02:00
M ; System/global.xml ; UNKNOWN ; 2026-09-11 16:20:01+02:00
D ; Stations/PS027/old-config.xml
```
Deleted files are listed without author or time information (FR-013). Renames use git's `old -> new` arrow notation and stay bare: a pure rename preserves the original modification time, so a timestamp would be misleading. The time column is the filesystem last-modified time (Section 12: `file_timestamp`) rendered in local time with an explicit UTC offset, matching the log timestamp style (Section 22).
The one-line format keeps the message proportional to the number of changed files, which matters for large collections.
---
# 16. Commit Subject
@@ -609,12 +608,9 @@ One execution may contain changes made by multiple individuals.
Example:
```text
Modified:
plant1.xml
Last modified by: DOMAIN\jsmith
plant2.xml
Last modified by: DOMAIN\adoe
Changes:
M ; plant1.xml ; DOMAIN\jsmith ; 2026-09-11 15:42:09+02:00
M ; plant2.xml ; DOMAIN\adoe ; 2026-09-11 16:02:14+02:00
```
The application shall therefore store attribution per file rather than per commit.
@@ -838,6 +834,11 @@ author_resolution:
minimum_confidence: probable
fallback: unknown
commit:
# Separator between the parts of a one-line file entry (Section 15).
# Must not occur inside paths, author identifiers or timestamps.
file_separator: ";"
logging:
level: INFO
console: true