Repository navigation
fix(bootstrap): stop reporting freshly cloned repos as dirty with core.autocrlf - #14225
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Entire-Checkpoint: 01M4G4GX0Z4JCRE991ZSDCD8HT
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughGit command helpers no longer override the configured ChangesRepository status
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to No actionable issue remains in the supplied change; it is ready to merge after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
<!-- entire-trail-link-start --> https://entire.io/gh/jdx/mise/trails/613 <!-- entire-trail-link-end --> ### 🚀 Features - **(upgrade)** add tool_update.global_auto to update every global tool by @jdx in [#14237](#14237) - reuse downloads the server confirms are unchanged by @jdx in [#14222](#14222) ### 🐛 Bug Fixes - **(backend)** stop list() and get() panicking while the tool map reloads by @jdx in [#14240](#14240) - **(bootstrap)** stop reporting freshly cloned repos as dirty with core.autocrlf by @jdx in [#14225](#14225) - **(cargo)** lock the same rust homes the rust plugin resolves by @wislertt in [#14219](#14219) - **(doctor)** show dotfiles repo and origin when history is disabled by @jdx in [#14244](#14244) - **(dotfiles)** replace a junction target when a symlink source changes by @jdx in [#14226](#14226) - **(env)** keep backslashes literal in single-quoted dotenv values by @jdx in [#14228](#14228) - **(env)** join adjacent quoted and unquoted dotenv value parts again by @jdx in [#14231](#14231) - **(history)** describe tracked variant changes by @oppegard in [#14194](#14194) - **(lock)** apply aqua version prefixes before selecting overrides by @nettlesh in [#14218](#14218) - **(rust)** treat rustup profile aliases like their full names by @JamBalaya56562 in [#14220](#14220) - **(schema)** accept task references in a task array by @JamBalaya56562 in [#14229](#14229) - **(self-update)** keep showing the auto-update hint until it is disabled by @jdx in [#14233](#14233) ### 🚜 Refactor - **(lock)** skip aqua prefix ambiguity pass without override prefixes by @jdx in [#14232](#14232) ### 📚 Documentation - explain auto_update's release delay and prefer mise settings KEY=VALUE by @jdx in [#14235](#14235) ### New Contributors - @wislertt made their first contribution in [#14219](#14219) - @oppegard made their first contribution in [#14194](#14194)
Instruction counts
No instruction-count regression above 1%. Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.
|
https://entire.io/gh/jdx/mise/trails/610
On Windows with
core.autocrlf=true,mise bootstrap repos statusreported every freshly cloned repo asdirtyeven thoughgit statuswas clean.repos applyclones with the user's git config, so files are checked out with CRLF line endings. Every later git call mise made on the repo forced-c core.autocrlf=false, so git compared the CRLF files against LF blobs and saw them all as modified. This removes the override from the repo git helpers (and the printed dry-run command), so checks read the repo under the same config it was cloned with.Added a unit test that clones with
core.autocrlf=trueand expects the repo to becurrent.Fixes #14223
AI-assisted — Tool: Claude Code; model: anthropic/claude-sonnet-5-5; version: 2.1.293.
🤖 Generated with Claude Code
Note
Low Risk
Narrow change to bootstrap repo status/cleanliness checks; restores alignment with clone config rather than altering clone or auth behavior.
Overview
Fixes false dirty repo status on Windows (and similar setups) when clones use
core.autocrlf=true.Bootstrap repo git helpers (
git_output,git_success,git_run, and dry-runprint_git_command) no longer pass-c core.autocrlf=false. Clones follow the user’s git config (often CRLF in the worktree, LF in blobs); forcingautocrlf=falseon latergit statusmade every file look modified. Checks now use the repo’s own config, consistent with how the checkout was created.Adds
crlf_checkout_is_not_dirty_with_autocrlf_true, which clones withcore.autocrlf=trueand assertsRepoState::Current.Reviewed by Cursor Bugbot for commit 5178e83. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
core.autocrlf=true.