diff options
| -rw-r--r-- | git-codereview/branch.go | 4 | ||||
| -rw-r--r-- | git-codereview/branch_test.go | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/git-codereview/branch.go b/git-codereview/branch.go index 37da5fa..c9b21a0 100644 --- a/git-codereview/branch.go +++ b/git-codereview/branch.go @@ -402,6 +402,10 @@ func LocalBranches() []*Branch { // (git rev-parse --abbrev-ref HEAD returns 'HEAD'). s = current.Name } + // + marks a branch checked out in a worktree. Worktrees in detached + // HEAD mode don't appear in the "git branch" output, so this is always + // a normal name. + s = strings.TrimPrefix(s, "+ ") branches = append(branches, &Branch{Name: s}) } return branches diff --git a/git-codereview/branch_test.go b/git-codereview/branch_test.go index d7db6ee..2ac3c03 100644 --- a/git-codereview/branch_test.go +++ b/git-codereview/branch_test.go @@ -5,6 +5,7 @@ package main import ( + "path/filepath" "reflect" "strings" "testing" @@ -83,6 +84,11 @@ func TestLocalBranches(t *testing.T) { t.Logf("detached head mode") trun(t, gt.client, "git", "checkout", "HEAD^0") checkLocalBranches(t, "HEAD", "main", "newbranch") + + t.Logf("worktree") + wt := filepath.Join(gt.tmpdir, "git-worktree") + trun(t, gt.client, "git", "worktree", "add", "-b", "wtbranch", wt) + checkLocalBranches(t, "HEAD", "main", "newbranch", "wtbranch") } func checkLocalBranches(t *testing.T, want ...string) { |
