Skip to content

fix(but): print normalized name after creating branch#13159

Draft
slarse wants to merge 2 commits intomasterfrom
GB-1247/branch-new-print-normalized-name
Draft

fix(but): print normalized name after creating branch#13159
slarse wants to merge 2 commits intomasterfrom
GB-1247/branch-new-print-normalized-name

Conversation

@slarse
Copy link
Copy Markdown
Contributor

@slarse slarse commented Apr 2, 2026

but branch new always 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:

before

After:
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.

Copilot AI review requested due to automatic review settings April 2, 2026 11:48
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
gitbutler-web Ignored Ignored Preview Apr 2, 2026 5:59pm

Request Review

@github-actions github-actions bot added rust Pull requests that update Rust code CLI The command-line program `but` labels Apr 2, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@slarse slarse force-pushed the GB-1247/branch-new-print-normalized-name branch from 5bdf2cc to 21dde80 Compare April 2, 2026 11:58
`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.
Copilot AI review requested due to automatic review settings April 2, 2026 12:02
@slarse slarse force-pushed the GB-1247/branch-new-print-normalized-name branch from 21dde80 to 2b7c3f5 Compare April 2, 2026 12:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment on lines +133 to +136
let normalized_branch_name = normalized_branch_name.shorten();
if let Some(out) = out.for_human() {
if normalized_branch_name != branch_name {
writeln!(
Copy link

Copilot AI Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@slarse slarse marked this pull request as draft April 2, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLI The command-line program `but` rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants