diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2021-12-10 06:49:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-10 06:49:09 +0100 |
commit | 39f97ab86a776dd8acd58a79a660d0cfdb7068c0 (patch) | |
tree | 119b9f5b10f2fd1053c430e1891b0e33d927615b /repository_test.go | |
parent | c71074e855b42c817c6ecb6cba7e6b62eafc08d3 (diff) | |
parent | f92011d95f98f5deea4959c7d432704a4300d3a8 (diff) | |
download | go-git-39f97ab86a776dd8acd58a79a660d0cfdb7068c0.tar.gz |
Merge pull request #410 from john-cai/jc-sparse
Worktree: Checkout, simplified sparse checkout
Diffstat (limited to 'repository_test.go')
-rw-r--r-- | repository_test.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/repository_test.go b/repository_test.go index 2bc5c90..668828e 100644 --- a/repository_test.go +++ b/repository_test.go @@ -210,6 +210,37 @@ func (s *RepositorySuite) TestCloneWithTags(c *C) { c.Assert(count, Equals, 3) } +func (s *RepositorySuite) TestCloneSparse(c *C) { + fs := memfs.New() + r, err := Clone(memory.NewStorage(), fs, &CloneOptions{ + URL: s.GetBasicLocalRepositoryURL(), + }) + c.Assert(err, IsNil) + + w, err := r.Worktree() + c.Assert(err, IsNil) + + sparseCheckoutDirectories := []string{"go", "json", "php"} + c.Assert(w.Checkout(&CheckoutOptions{ + Branch: "refs/heads/master", + SparseCheckoutDirectories: sparseCheckoutDirectories, + }), IsNil) + + fis, err := fs.ReadDir(".") + c.Assert(err, IsNil) + for _, fi := range fis { + c.Assert(fi.IsDir(), Equals, true) + var oneOfSparseCheckoutDirs bool + + for _, sparseCheckoutDirectory := range sparseCheckoutDirectories { + if strings.HasPrefix(fi.Name(), sparseCheckoutDirectory) { + oneOfSparseCheckoutDirs = true + } + } + c.Assert(oneOfSparseCheckoutDirs, Equals, true) + } +} + func (s *RepositorySuite) TestCreateRemoteAndRemote(c *C) { r, _ := Init(memory.NewStorage(), nil) remote, err := r.CreateRemote(&config.RemoteConfig{ |