Repository navigation
Commit bb378dd
test(repo): preserve carriage returns in blame fixtures
Windows CI with Git `2.56.0.windows.2` fails the historical-path regression
for its combined control-character filename under both `core.quotePath`
settings. The attributed original commit is
`e5ed22d659d5aa4ff5f7527069752d20f74fc2d9`, which a local Git reproduction
matches exactly when removing the carriage return from the original path.
Keeping that byte produces `73813b4d58d085503f9426c6e50ce5c201f715b6`.
The failure therefore comes from fixture creation losing the byte, rather
than incremental blame returning a different path from the stored tree.
Represent special paths as Git C-quoted text and feed the original tree
through `git mktree` instead of sending raw control bytes to `mktree -z`.
Git decodes the escapes while constructing the tree. This keeps carriage
returns out of the raw fixture input and retains coverage for every
control character, invalid UTF-8, literal escapes, and both quoting
settings. The parser implementation and expected results are unchanged.
The focused regression passes locally on both backends with all sixteen
subcases. Raw `git ls-tree -z HEAD~2` confirms the carriage return is
present, and the original commit retains its expected ID. ShellCheck,
`bash -n`, and `git diff --check` pass. Windows CI must verify the fixture
on its native Git/Bash combination.1 parent 874d8d9 commit bb378dd
1 file changed
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
| 3 | + | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
0 commit comments