Repository navigation
Commit 02b7ece
committed
fix(stats): split Git records at line feeds only
With `core.quotePath=false`, Git emits U+0085, U+2028 and U+2029 directly
in filenames. `Commit.stats` and `Stats._list_from_string` used
`str.splitlines()`, treating those filename characters as record endings
and raising `ValueError` instead of returning statistics.
Split only at the line feeds used by Git's protocol. Keep empty commits
and the generated text's trailing newline working by ignoring empty
records. No filename encoding or public return types change.
The regression uses real Git output for all three Unicode separators
and covers root, later and empty commits. It failed before this change.
The complete commit/statistics modules passed: 44 tests and 8 subtests.
Ruff lint/format, mypy for both changed source files, and `git diff
--check` also passed.1 parent ccc4811 commit 02b7ece
3 files changed
Lines changed: 25 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
405 | 405 | | |
406 | 406 | | |
407 | 407 | | |
| 408 | + | |
| 409 | + | |
408 | 410 | | |
409 | 411 | | |
410 | 412 | | |
| |||
413 | 415 | | |
414 | 416 | | |
415 | 417 | | |
416 | | - | |
| 418 | + | |
417 | 419 | | |
418 | 420 | | |
419 | 421 | | |
420 | 422 | | |
421 | | - | |
| 423 | + | |
422 | 424 | | |
423 | 425 | | |
424 | 426 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1111 | 1111 | | |
1112 | 1112 | | |
1113 | 1113 | | |
1114 | | - | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
1115 | 1117 | | |
1116 | 1118 | | |
1117 | 1119 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
203 | 221 | | |
204 | 222 | | |
205 | 223 | | |
| |||
0 commit comments