aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git-codereview/branch.go4
-rw-r--r--git-codereview/branch_test.go6
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) {