| 3122 | } |
| 3123 | |
| 3124 | func (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 | |