fix(but): print normalized name after creating branch#13159
fix(but): print normalized name after creating branch#13159
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
There was a problem hiding this comment.
Pull request overview
Fixes but branch new output so users see the normalized branch name that was actually created (instead of the original, non-normalized input).
Changes:
- Capture the normalized refname returned from
create_reference_with_perm()and print the normalized short name in human/JSON output. - Add e2e coverage for normalization behavior (human output + JSON output).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
crates/but/src/command/legacy/branch/mod.rs |
Uses the normalized refname for human output and JSON output after branch creation. |
crates/but/tests/but/command/branch/new.rs |
Adds tests asserting normalized-name behavior for human output and JSON output. |
5bdf2cc to
21dde80
Compare
`but branch new` always created the new branch with a normalized name, but name reported to users was the original non-normalized input, making it a li'l bit confusing.
21dde80 to
2b7c3f5
Compare
| let normalized_branch_name = normalized_branch_name.shorten(); | ||
| if let Some(out) = out.for_human() { | ||
| if normalized_branch_name != branch_name { | ||
| writeln!( |
There was a problem hiding this comment.
normalized_branch_name.shorten() returns a borrowed short name (e.g., &BStr) tied to the owned gix::refs::FullName. The current let normalized_branch_name = normalized_branch_name.shorten(); shadows and drops the owned FullName immediately, which makes the borrowed value invalid and typically won’t compile (borrowed value does not live long enough). Keep the owned FullName in a separate binding (e.g., normalized_refname) and derive normalized_branch_name from it, or convert the shortened name to an owned String before dropping the FullName.
but branch newalways created the new branch with a normalized name, but the name reported to users was the original non-normalized input, making it a li'l bit confusing.Also took the opportunity to notify the user that the branch name was normalized.
Before:
After:

TODO
Tests probably need revising as I realized that trailing dashes are actually fine by Git, it's just GitButler that strips them away for some reason. I think this is wrong.