MCPcopy
hub / github.com/go-git/go-git / TestLinkedWorktree

Method TestLinkedWorktree

worktree_test.go:3124–3197  ·  view source on GitHub ↗
(c *C)

Source from the content-addressed store, hash-verified

3122}
3123
3124func (s *WorktreeSuite) TestLinkedWorktree(c *C) {
3125 fs := fixtures.ByTag("linked-worktree").One().Worktree()
3126
3127 // Open main repo.
3128 {
3129 fs, err := fs.Chroot("main")
3130 c.Assert(err, IsNil)
3131 repo, err := PlainOpenWithOptions(fs.Root(), &PlainOpenOptions{EnableDotGitCommonDir: true})
3132 c.Assert(err, IsNil)
3133
3134 wt, err := repo.Worktree()
3135 c.Assert(err, IsNil)
3136
3137 status, err := wt.Status()
3138 c.Assert(err, IsNil)
3139 c.Assert(len(status), Equals, 2) // 2 files
3140
3141 head, err := repo.Head()
3142 c.Assert(err, IsNil)
3143 c.Assert(string(head.Name()), Equals, "refs/heads/master")
3144 }
3145
3146 // Open linked-worktree #1.
3147 {
3148 fs, err := fs.Chroot("linked-worktree-1")
3149 c.Assert(err, IsNil)
3150 repo, err := PlainOpenWithOptions(fs.Root(), &PlainOpenOptions{EnableDotGitCommonDir: true})
3151 c.Assert(err, IsNil)
3152
3153 wt, err := repo.Worktree()
3154 c.Assert(err, IsNil)
3155
3156 status, err := wt.Status()
3157 c.Assert(err, IsNil)
3158 c.Assert(len(status), Equals, 3) // 3 files
3159
3160 _, ok := status["linked-worktree-1-unique-file.txt"]
3161 c.Assert(ok, Equals, true)
3162
3163 head, err := repo.Head()
3164 c.Assert(err, IsNil)
3165 c.Assert(string(head.Name()), Equals, "refs/heads/linked-worktree-1")
3166 }
3167
3168 // Open linked-worktree #2.
3169 {
3170 fs, err := fs.Chroot("linked-worktree-2")
3171 c.Assert(err, IsNil)
3172 repo, err := PlainOpenWithOptions(fs.Root(), &PlainOpenOptions{EnableDotGitCommonDir: true})
3173 c.Assert(err, IsNil)
3174
3175 wt, err := repo.Worktree()
3176 c.Assert(err, IsNil)
3177
3178 status, err := wt.Status()
3179 c.Assert(err, IsNil)
3180 c.Assert(len(status), Equals, 3) // 3 files
3181

Callers

nothing calls this directly

Calls 7

PlainOpenWithOptionsFunction · 0.85
WorktreeMethod · 0.80
RootMethod · 0.80
HeadMethod · 0.80
NameMethod · 0.65
ChrootMethod · 0.45
StatusMethod · 0.45

Tested by

no test coverage detected