diff --git a/pkg/commands/models/branch.go b/pkg/commands/models/branch.go index 1bf7369d9..49bb801fa 100644 --- a/pkg/commands/models/branch.go +++ b/pkg/commands/models/branch.go @@ -18,6 +18,10 @@ type Branch struct { UpstreamBranch string } +func (b *Branch) FullRefName() string { + return "refs/heads/" + b.Name +} + func (b *Branch) RefName() string { return b.Name } diff --git a/pkg/commands/models/commit.go b/pkg/commands/models/commit.go index 0ca6a4365..3502fab4f 100644 --- a/pkg/commands/models/commit.go +++ b/pkg/commands/models/commit.go @@ -29,6 +29,10 @@ func (c *Commit) ShortSha() string { return utils.ShortSha(c.Sha) } +func (c *Commit) FullRefName() string { + return c.Sha +} + func (c *Commit) RefName() string { return c.Sha } diff --git a/pkg/commands/models/remote_branch.go b/pkg/commands/models/remote_branch.go index e36592749..6a26f05f9 100644 --- a/pkg/commands/models/remote_branch.go +++ b/pkg/commands/models/remote_branch.go @@ -10,6 +10,10 @@ func (r *RemoteBranch) FullName() string { return r.RemoteName + "/" + r.Name } +func (r *RemoteBranch) FullRefName() string { + return "refs/remotes/" + r.FullName() +} + func (r *RemoteBranch) RefName() string { return r.FullName() } diff --git a/pkg/commands/models/stash_entry.go b/pkg/commands/models/stash_entry.go index d15bfd2eb..e70dfbf09 100644 --- a/pkg/commands/models/stash_entry.go +++ b/pkg/commands/models/stash_entry.go @@ -8,6 +8,10 @@ type StashEntry struct { Name string } +func (s *StashEntry) FullRefName() string { + return s.RefName() +} + func (s *StashEntry) RefName() string { return fmt.Sprintf("stash@{%d}", s.Index) } diff --git a/pkg/commands/models/tag.go b/pkg/commands/models/tag.go index 60b53e659..25d8754f5 100644 --- a/pkg/commands/models/tag.go +++ b/pkg/commands/models/tag.go @@ -5,6 +5,10 @@ type Tag struct { Name string } +func (t *Tag) FullRefName() string { + return "refs/tags/" + t.RefName() +} + func (t *Tag) RefName() string { return t.Name } diff --git a/pkg/gui/branches_panel.go b/pkg/gui/branches_panel.go index 959085645..86580fb2e 100644 --- a/pkg/gui/branches_panel.go +++ b/pkg/gui/branches_panel.go @@ -6,7 +6,7 @@ func (gui *Gui) branchesRenderToMain() error { if branch == nil { task = NewRenderStringTask(gui.c.Tr.NoBranchesThisRepo) } else { - cmdObj := gui.git.Branch.GetGraphCmdObj(branch.Name) + cmdObj := gui.git.Branch.GetGraphCmdObj(branch.FullRefName()) task = NewRunPtyTask(cmdObj.GetCmd()) } diff --git a/pkg/gui/controllers/switch_to_sub_commits_controller.go b/pkg/gui/controllers/switch_to_sub_commits_controller.go index b41d122ed..5d89ebad7 100644 --- a/pkg/gui/controllers/switch_to_sub_commits_controller.go +++ b/pkg/gui/controllers/switch_to_sub_commits_controller.go @@ -62,7 +62,7 @@ func (self *SwitchToSubCommitsController) viewCommits() error { Limit: true, FilterPath: self.modes.Filtering.GetPath(), IncludeRebaseCommits: false, - RefName: ref.RefName(), + RefName: ref.FullRefName(), }, ) if err != nil { diff --git a/pkg/gui/remote_branches_panel.go b/pkg/gui/remote_branches_panel.go index 3f23f0646..48e272584 100644 --- a/pkg/gui/remote_branches_panel.go +++ b/pkg/gui/remote_branches_panel.go @@ -6,7 +6,7 @@ func (gui *Gui) remoteBranchesRenderToMain() error { if remoteBranch == nil { task = NewRenderStringTask("No branches for this remote") } else { - cmdObj := gui.git.Branch.GetGraphCmdObj(remoteBranch.FullName()) + cmdObj := gui.git.Branch.GetGraphCmdObj(remoteBranch.FullRefName()) task = NewRunCommandTask(cmdObj.GetCmd()) } diff --git a/pkg/gui/tags_panel.go b/pkg/gui/tags_panel.go index 9757fdc77..371b533fe 100644 --- a/pkg/gui/tags_panel.go +++ b/pkg/gui/tags_panel.go @@ -6,7 +6,7 @@ func (self *Gui) tagsRenderToMain() error { if tag == nil { task = NewRenderStringTask("No tags") } else { - cmdObj := self.git.Branch.GetGraphCmdObj(tag.Name) + cmdObj := self.git.Branch.GetGraphCmdObj(tag.FullRefName()) task = NewRunCommandTask(cmdObj.GetCmd()) } diff --git a/pkg/gui/types/ref.go b/pkg/gui/types/ref.go index 49a15b275..e83d91b65 100644 --- a/pkg/gui/types/ref.go +++ b/pkg/gui/types/ref.go @@ -1,6 +1,7 @@ package types type Ref interface { + FullRefName() string RefName() string ParentRefName() string Description() string