Skip to content

Normalise MetadataPage.xaml's line endings, and remove the two stray carriage returns that blocked it - #56

Merged
revtex merged 1 commit into
mainfrom
normalize-metadata-page-eol
Sep 4, 2026
Merged

Normalise MetadataPage.xaml's line endings, and remove the two stray carriage returns that blocked it#56
revtex merged 1 commit into
mainfrom
normalize-metadata-page-eol

Conversation

@revtex

@revtex revtex commented Sep 4, 2026

Copy link
Copy Markdown
Owner

MetadataPage.xaml was the only XAML in Views/Pages whose blob git stored unnormalised. git ls-files --eol reported i/-text where its four siblings all reported i/lf, so any edit to it — on any machine with core.autocrlf=true — produced a diff showing all 873 lines as changed, burying the real change in noise.

The cause was not that the file predates .gitattributes. It contained two lone CR bytes: "\r\r\n sequences, stray trailing whitespace after a closing attribute quote on the AutomationProperties.Name lines for the album-artist and genre fields. A lone CR makes git classify a blob as binary, and text=auto declines to normalise a binary file, so the clean filter had been silently skipping this one all along. git add --renormalize on its own is a no-op here — it leaves the blob i/-text.

Removing those two bytes lets the filter do its job. Both sat between attributes inside a tag, outside any quoted value, so XML never saw them as anything but separator whitespace.

Verification

  • git diff -w against main is empty — zero content change.
  • git ls-files --eol now reports i/lf, matching its four siblings.
  • The file still parses; Offstream.App builds clean.

The 873-line churn here is the one-time cost of the normalisation. It is in its own PR, alone, so that no future change has to pay it — the immediate beneficiary is #(the quality-badge PR stacked on this one), whose diff on this file drops from 1768 changed lines to 22.

Not user-visible, hence the no-changelog label.

🤖 Generated with Claude Code

…carriage returns that blocked it

This file was the only XAML in Views/Pages whose blob git stored
unnormalised: `git ls-files --eol` reported `i/-text` where its four
siblings all reported `i/lf`. The effect was that any edit to it, on any
machine with core.autocrlf=true, produced a diff showing all 873 lines as
changed, burying the real change in noise.

The cause was not that the file predates .gitattributes. It contained two
lone CR bytes -- `"\r\r\n` sequences, stray trailing whitespace after a
closing attribute quote on the AutomationProperties.Name lines for the
album-artist and genre fields. A lone CR makes git classify a blob as
binary, and `text=auto` declines to normalise a binary file, so the clean
filter had been silently skipping this one all along. `git add
--renormalize` on its own is a no-op here; it leaves the blob `i/-text`.

Removing those two bytes lets the filter do its job. Both sat between
attributes inside a tag, outside any quoted value, so XML never saw them
as anything but separator whitespace: the old blob with the two CRs
stripped is byte-identical to the new one, `git diff --cached -w` is
empty, and the file still parses.

The 873-line churn in this commit is the one-time cost of the
normalisation. It is here, alone, so that no future change has to pay it.

Not user-visible, so no changelog entry -- label this `no-changelog`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@revtex revtex added the no-changelog This PR changes nothing a user would see, so CHANGELOG.md stays as it is label Sep 4, 2026
@revtex
revtex merged commit 2c9108f into main Sep 4, 2026
6 checks passed
@revtex
revtex deleted the normalize-metadata-page-eol branch September 4, 2026 16:08
@revtex
revtex restored the normalize-metadata-page-eol branch September 4, 2026 16:10
@revtex
revtex deleted the normalize-metadata-page-eol branch September 4, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR changes nothing a user would see, so CHANGELOG.md stays as it is

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant