Git Log - Default Format With Conventional Commit Bodies
The default `git log` format for the same six commits: full 40-character hashes, Author and Date headers, and message bodies indented by exactly four spaces with genuinely empty separator lines. One commit carries a `BREAKING CHANGE:` footer and another a `Fixes:` footer, which is the shape a changelog generator has to find.
commit b06c6299e8931725dd967c0724b45431be10adeb
Author: Ada Fernsby <ada.fernsby@example.invalid>
Date: Fri Mar 13 09:41:02 2026 +0000
feat(rounding)!: round half to even instead of half up
Long runs of half-up rounding drifted the reconciled balance upward by
about a cent every four thousand postings.
BREAKING CHANGE: Round() now returns the nearest even multiple on a tie.
Callers that depended on half-up must pass RoundHalfUp explicitly.
commit 232f14933b1be0ac53767164dba860ff46b3b342
Author: Priya Raman <priya.raman@example.invalid>
Date: Wed Mar 11 15:47:02 2026 +0000
fix(format): reject amounts with no digits
parseMinor returned NaN for input with no digits at all, and the caller
stored it as zero.
Fixes: #418
commit e178e16c31e4538b36372c954381ad69f33d5fc5
Author: Miguel Otero <miguel.otero@example.invalid>
Date: Mon Mar 9 16:30:00 2026 +0000
chore: the quarterly tidy-up
Adds, deletes, renames, copies, chmods and a binary in one commit.
commit 337d122a0cf0098c827cb00655cbb2eff5228874
Author: Priya Raman <priya.raman@example.invalid>
Date: Fri Mar 6 09:31:24 2026 +0000
docs: rename README to guide
Frees the name for the operator guide.
commit 4cea2b8114b64f5076e1e6b067586c6067c48017
Author: Miguel Otero <miguel.otero@example.invalid>
Date: Wed Mar 4 11:02:19 2026 +0000
feat(ledger): add banker's rounding helper
Half-up rounding drifts the balance upward over long runs.
commit 437e21e3ec5b252950b50e724b9522198aa02751
Author: Ada Fernsby <ada.fernsby@example.invalid>
Date: Mon Mar 2 09:14:03 2026 +0000Specifications
- Seed
- 20260807
- Command
- git log -6
- Commits
- 6
- Hash Length
- 40
- Message Indent
- 4
- Breaking Change Footers
- 1
- Issue Footers
- 1
- Line Endings
- LF
- Encoding
- UTF-8
Testing contract
Expected to pass- Scenario
- Split default git log output into commits and extract the footers from each message body.
- Expected result
- Six commits are recovered; the four-space indent is stripped without eating blank lines, and one BREAKING CHANGE footer plus one Fixes: #418 footer are found.
What is a .log file?
LOG files are plain-text records of events emitted by software, typically one entry per line with a timestamp, severity, and message. There is no single standard, so formats range from unstructured text to structured JSON lines. They are central to debugging, monitoring, and auditing.
How to use this file
Use an example LOG file to test log parsers, timestamp and severity extraction, line-oriented streaming, and ingestion into monitoring or analysis pipelines.
How to use this file for testing
“Git Log - Default Format With Conventional Commit Bodies” is a deterministic Novus Examples fixture for Log parsing, Visual diff / regression, Code parsing. Access logs and JSON-lines application logs — for testing log parsers, tailers, and ingestion pipelines.
Documented properties for this file: seed 20260807 · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Diff and patch fixtures name their target paths and the exact edge case they exercise — rename, mode change, binary hunk, CRLF↔LF, or missing trailing newline. Apply or render them against the documented before-state; every author, path, and hash is fictional.
Code examples
grep -i error git-log-conventional.log | head
awk '{print $1, $2, $NF}' git-log-conventional.log | headRelated files
- logGit Log - --name-status With Rename ScoresPer-commit file lists with single-letter status codes, tab-separated. Rename rows are the trap: `R100` is followed by TWO paths instead of one, so a splitter that takes field 2 as the filename reports the old path for renames and the new path for everything else.

- logGit Log - --oneline OutputSix commits as `git log --oneline` prints them: an abbreviated hash, a space, and the subject line. Every subject follows Conventional Commits, including one with a `!` breaking marker, so a release-notes generator can be scored against a known answer.

- logGit Status - Porcelain v1 With Every Status PairPorcelain v1 output covering staged-only, worktree-only, added, renamed, deleted, unmerged, untracked and ignored entries. The two status characters are positional and a space is meaningful, so trimming the line before parsing turns ' M' (modified but unstaged) into 'M' (staged).

- logGit Status - Porcelain v2 With Branch HeadersThe v2 format for the same working tree: `# branch.*` headers first, then one record per entry whose leading character selects a completely different field layout. Rename records put the new path first and separate the two paths with a TAB rather than an arrow, and unmerged records carry three object ids instead of two.

- txtCommit Message - Intentionally Invalid, Four Rule ViolationsAn intentionally invalid commit message that breaks four commitlint rules at once: no conventional type, a 116-character header, no blank line separating subject from body, and a body that starts mid-sentence. Every rule should fire independently, which is what makes this useful for checking that a linter reports all violations rather than stopping at the first.

- logGit Blame - Porcelain Format With Repeated Commit HeadersThe stable machine format of git blame: a full header block the first time a commit appears and a bare `<sha> <old> <new>` line every time after, with each source line following on a tab-prefixed line. A parser that expects the header on every group loses the author of every line after the first.

Generated by generation/version_control.py. Free for any use, no attribution required — license.