From eaa64983aa4d7b0ec816b6922e79c606f12beb6d Mon Sep 17 00:00:00 2001 From: mirfalltnixein <22786734+mirfalltnixein@users.noreply.github.com> Date: Tue, 27 Oct 2026 22:23:55 +0100 Subject: [PATCH] fix: push branches by full refname so a tag with the same name does not make them ambiguous (#2402) Co-Authored-By: Claude Opus 5.5 --- src/Commands/Push.cs | 4 ++-- src/ViewModels/Push.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Commands/Push.cs b/src/Commands/Push.cs index e04e81ef94..5981e2d88f 100644 --- a/src/Commands/Push.cs +++ b/src/Commands/Push.cs @@ -23,7 +23,7 @@ public Push(string repo, Models.Branch local, Models.Remote remote, Models.Branc if (noVerify) builder.Append("--no-verify "); - builder.Append(remote.Name).Append(' ').Append(local.Name).Append(':').Append(remoteBranch.Name); + builder.Append(remote.Name).Append(" refs/heads/").Append(local.Name).Append(":refs/heads/").Append(remoteBranch.Name); Args = builder.ToString(); } @@ -38,7 +38,7 @@ public Push(string repo, Models.Commit revision, Models.Remote remote, Models.Br if (force) builder.Append("--force-with-lease "); - builder.Append(remote.Name).Append(' ').Append(revision.SHA).Append(':').Append(remoteBranch.Name); + builder.Append(remote.Name).Append(' ').Append(revision.SHA).Append(":refs/heads/").Append(remoteBranch.Name); Args = builder.ToString(); } diff --git a/src/ViewModels/Push.cs b/src/ViewModels/Push.cs index ca704eee8d..c0b2efa9cb 100644 --- a/src/ViewModels/Push.cs +++ b/src/ViewModels/Push.cs @@ -296,7 +296,7 @@ private void PostSelectedRemoteChanged() { target = new Models.Branch() { - Name = mergeTarget, + Name = mergeTarget.StartsWith("refs/heads/", StringComparison.Ordinal) ? mergeTarget.Substring(11) : mergeTarget, Remote = _selectedRemote.Name, Head = "---", // Not used by `git push` command but used by Views };