aboutsummaryrefslogtreecommitdiffstats
path: root/remote_test.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2018-04-17 14:22:57 +0200
committerGitHub <noreply@github.com>2018-04-17 14:22:57 +0200
commit60fd949ef638cf688029c5784a0a449f4c562bc7 (patch)
treec30d529a8ffc695d69523ac95eb0875074187464 /remote_test.go
parenteec77c36c26558e470a3d882fb6c0d457f92891f (diff)
parent75da83739f25f528bf242341d62e01b773329470 (diff)
downloadgo-git-60fd949ef638cf688029c5784a0a449f4c562bc7.tar.gz
Merge pull request #810 from jfontan/fix/update-shallow
git: remote, Add shallow commits instead of substituting. Fixes #412
Diffstat (limited to 'remote_test.go')
-rw-r--r--remote_test.go52
1 files changed, 52 insertions, 0 deletions
diff --git a/remote_test.go b/remote_test.go
index e586e7a..82ec1fc 100644
--- a/remote_test.go
+++ b/remote_test.go
@@ -9,6 +9,7 @@ import (
"gopkg.in/src-d/go-git.v4/config"
"gopkg.in/src-d/go-git.v4/plumbing"
+ "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp"
"gopkg.in/src-d/go-git.v4/plumbing/storer"
"gopkg.in/src-d/go-git.v4/storage"
"gopkg.in/src-d/go-git.v4/storage/filesystem"
@@ -741,3 +742,54 @@ func (s *RemoteSuite) TestList(c *C) {
c.Assert(found, Equals, true)
}
}
+
+func (s *RemoteSuite) TestUpdateShallows(c *C) {
+ hashes := []plumbing.Hash{
+ plumbing.NewHash("0000000000000000000000000000000000000001"),
+ plumbing.NewHash("0000000000000000000000000000000000000002"),
+ plumbing.NewHash("0000000000000000000000000000000000000003"),
+ plumbing.NewHash("0000000000000000000000000000000000000004"),
+ plumbing.NewHash("0000000000000000000000000000000000000005"),
+ plumbing.NewHash("0000000000000000000000000000000000000006"),
+ }
+
+ tests := []struct {
+ hashes []plumbing.Hash
+ result []plumbing.Hash
+ }{
+ // add to empty shallows
+ {hashes[0:2], hashes[0:2]},
+ // add new hashes
+ {hashes[2:4], hashes[0:4]},
+ // add some hashes already in shallow list
+ {hashes[2:6], hashes[0:6]},
+ // add all hashes
+ {hashes[0:6], hashes[0:6]},
+ // add empty list
+ {nil, hashes[0:6]},
+ }
+
+ remote := newRemote(memory.NewStorage(), &config.RemoteConfig{
+ Name: DefaultRemoteName,
+ })
+
+ shallows, err := remote.s.Shallow()
+ c.Assert(err, IsNil)
+ c.Assert(len(shallows), Equals, 0)
+
+ resp := new(packp.UploadPackResponse)
+ o := &FetchOptions{
+ Depth: 1,
+ }
+
+ for _, t := range tests {
+ resp.Shallows = t.hashes
+ err = remote.updateShallow(o, resp)
+ c.Assert(err, IsNil)
+
+ shallow, err := remote.s.Shallow()
+ c.Assert(err, IsNil)
+ c.Assert(len(shallow), Equals, len(t.result))
+ c.Assert(shallow, DeepEquals, t.result)
+ }
+}