aboutsummaryrefslogtreecommitdiffstats
path: root/worktree_test.go
diff options
context:
space:
mode:
authorDan Hoizner <dan.hoizner@gmail.com>2023-11-22 12:51:45 -0500
committerDan Hoizner <dan.hoizner@gmail.com>2023-11-27 11:06:59 -0500
commit861009f70a5b68d1ee134fea7bc1d893088388bb (patch)
treedaaa23be15280c8ae4b36e19e8492c02ab994874 /worktree_test.go
parentfecea417bfc18648757a1bde30ca384548b55197 (diff)
downloadgo-git-861009f70a5b68d1ee134fea7bc1d893088388bb.tar.gz
git: stop iterating at oldest shallow when pulling. Fixes #305
Diffstat (limited to 'worktree_test.go')
-rw-r--r--worktree_test.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/worktree_test.go b/worktree_test.go
index 180bfb0..8805079 100644
--- a/worktree_test.go
+++ b/worktree_test.go
@@ -313,6 +313,42 @@ func (s *WorktreeSuite) TestPullDepth(c *C) {
c.Assert(err, Equals, nil)
}
+func (s *WorktreeSuite) TestPullAfterShallowClone(c *C) {
+ tempDir, clean := s.TemporalDir()
+ defer clean()
+ remoteURL := filepath.Join(tempDir, "remote")
+ repoDir := filepath.Join(tempDir, "repo")
+
+ remote, err := PlainInit(remoteURL, false)
+ c.Assert(err, IsNil)
+ c.Assert(remote, NotNil)
+
+ _ = CommitNewFile(c, remote, "File1")
+ _ = CommitNewFile(c, remote, "File2")
+
+ repo, err := PlainClone(repoDir, false, &CloneOptions{
+ URL: remoteURL,
+ Depth: 1,
+ Tags: NoTags,
+ SingleBranch: true,
+ ReferenceName: "master",
+ })
+ c.Assert(err, IsNil)
+
+ _ = CommitNewFile(c, remote, "File3")
+ _ = CommitNewFile(c, remote, "File4")
+
+ w, err := repo.Worktree()
+ c.Assert(err, IsNil)
+
+ err = w.Pull(&PullOptions{
+ RemoteName: DefaultRemoteName,
+ SingleBranch: true,
+ ReferenceName: plumbing.NewBranchReferenceName("master"),
+ })
+ c.Assert(err, IsNil)
+}
+
func (s *WorktreeSuite) TestCheckout(c *C) {
fs := memfs.New()
w := &Worktree{