Update merge-flow config for vs18.7 release branch#13643
Update merge-flow config for vs18.7 release branch#13643
Conversation
There was a problem hiding this comment.
Pull request overview
Updates MSBuild’s merge-flow configuration to include the upcoming vs18.7 release branch in the servicing merge chain, enabling automated forward merges to flow vs18.6 → vs18.7 → main once the branch exists.
Changes:
- Insert
vs18.7into the merge chain as the target forvs18.6. - Add a new
vs18.7configuration that forwards merges tomain.
| } | ||
| } | ||
| } | ||
| // IMPORTANT: This file is read by the merge flow from main branch only. |
There was a problem hiding this comment.
Line 1 has trailing whitespace after the period. Repo formatting rules (see .editorconfig trim_trailing_whitespace = true) expect trimming trailing spaces; please remove the extra space at end of the comment line to avoid churn in diffs and keep formatting consistent.
| // IMPORTANT: This file is read by the merge flow from main branch only. | |
| // IMPORTANT: This file is read by the merge flow from main branch only. |
There was a problem hiding this comment.
Review Summary
The semantic change is correct — inserting vs18.7 between vs18.6 and main in the merge chain is exactly what's needed for the 18.7 release, and the comments are accurate.
Issue: CRLF line endings stored in git blob
Severity: Should fix before merge
The committed blob changed from LF to CRLF line endings. This is confirmed by comparing git cat-file -p output between origin/main and the PR branch — the old blob uses 0a (LF) while the new blob uses 0d 0a (CRLF). File sizes: 1929 bytes (old, LF) → 2170 bytes (new, CRLF).
This causes:
- The diff shows a full-file rewrite (46 deletions, 50 additions) instead of the ~4-line actual change
- Inconsistency with the repo's
* text=auto.gitattributessetting, which expects LF in the object store - Unnecessary git history churn
The fix is simple: re-normalize the file so LF endings are stored in the blob (see inline comment for commands).
Merge prerequisite ✅
The PR description correctly warns: "Do not merge until vs18.7 branch exists." Confirmed that vs18.7 does not yet exist — this is expected and properly documented.
Generated by Expert Code Review (on open) for issue #13643 · ● 2.7M
| } | ||
| } | ||
| } | ||
| // IMPORTANT: This file is read by the merge flow from main branch only. |
There was a problem hiding this comment.
Bug: Line endings changed from LF to CRLF in the committed blob
The original file stored LF (\n) line endings in the git object store (confirmed via git cat-file -p). This PR replaces them with CRLF (\r\n) in the blob itself. This causes the diff to show a full-file rewrite (46 deletions, 50 additions) instead of the ~4-line semantic change.
The repo's .gitattributes has * text=auto, which should normalize to LF on commit. This suggests the commit was created with a git configuration that bypassed normalization (e.g., core.autocrlf=false on Windows, or the file was staged in a way that preserved CRLF).
To fix: re-normalize the file before committing. For example:
# Ensure proper normalization
git rm --cached .config/git-merge-flow-config.jsonc
git add .config/git-merge-flow-config.jsonc
git commit --amendOr simply ensure core.autocrlf=true (or core.eol=lf) is set and re-add the file.
While this won't break the merge-flow tooling (JSON parsers handle both), it creates unnecessary churn in git history and makes the actual change harder to review.
| }, | ||
| // Automate opening PRs to merge msbuild's vs18.6 (VS, SDK 10.0.3xx) into vs18.7 (VS, SDK 10.0.4xx) | ||
| "vs18.6": { |
There was a problem hiding this comment.
✅ Logical change is correct. The new vs18.6 → vs18.7 link and vs18.7 → main entry properly insert vs18.7 into the merge chain. The comment annotations with SDK version info (SDK 10.0.3xx for vs18.6, SDK 10.0.4xx for vs18.7) are accurate and consistent with the pattern used upstream in the chain.
Phase 1.3 of MSBuild Release Checklist 18.7.
Insert
vs18.7as the last entry beforemainin the merge chain so that fixes flowvs18.6 → vs18.7 → mainaftervs18.7is branched.cc @rainersigwald