diff options
author | Máximo Cuadros <mcuadros@gmail.com> | 2019-02-13 17:44:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-13 17:44:51 +0100 |
commit | 4d8bd13a73d6efd41b6be0b2eba5130c498fae0d (patch) | |
tree | c66ae7ca3b29f8b9d5be869d0de4f0f98591c2d6 /repository_test.go | |
parent | 2ab6d5cd72b59cfd36b08078ddeebd1efb0d2254 (diff) | |
parent | 2b248220113c6eb8699da4aebdb6665b9751f471 (diff) | |
download | go-git-4d8bd13a73d6efd41b6be0b2eba5130c498fae0d.tar.gz |
Merge pull request #1067 from ajnavarro/fix/log-all-missing-objects
Ignore missing references/objects on log --all
Diffstat (limited to 'repository_test.go')
-rw-r--r-- | repository_test.go | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/repository_test.go b/repository_test.go index 2a56dd2..1549737 100644 --- a/repository_test.go +++ b/repository_test.go @@ -1256,8 +1256,18 @@ func (s *RepositorySuite) TestLogAll(c *C) { err := r.clone(context.Background(), &CloneOptions{ URL: s.GetBasicLocalRepositoryURL(), }) + c.Assert(err, IsNil) + + rIter, err := r.Storer.IterReferences() + c.Assert(err, IsNil) + refCount := 0 + err = rIter.ForEach(func(ref *plumbing.Reference) error { + refCount++ + return nil + }) c.Assert(err, IsNil) + c.Assert(refCount, Equals, 5) cIter, err := r.Log(&LogOptions{ All: true, @@ -1286,6 +1296,58 @@ func (s *RepositorySuite) TestLogAll(c *C) { cIter.Close() } +func (s *RepositorySuite) TestLogAllMissingReferences(c *C) { + r, _ := Init(memory.NewStorage(), nil) + err := r.clone(context.Background(), &CloneOptions{ + URL: s.GetBasicLocalRepositoryURL(), + }) + c.Assert(err, IsNil) + err = r.Storer.RemoveReference(plumbing.HEAD) + c.Assert(err, IsNil) + + rIter, err := r.Storer.IterReferences() + c.Assert(err, IsNil) + + refCount := 0 + err = rIter.ForEach(func(ref *plumbing.Reference) error { + refCount++ + return nil + }) + c.Assert(err, IsNil) + c.Assert(refCount, Equals, 4) + + err = r.Storer.SetReference(plumbing.NewHashReference(plumbing.ReferenceName("DUMMY"), plumbing.NewHash("DUMMY"))) + c.Assert(err, IsNil) + + rIter, err = r.Storer.IterReferences() + c.Assert(err, IsNil) + + refCount = 0 + err = rIter.ForEach(func(ref *plumbing.Reference) error { + refCount++ + return nil + }) + c.Assert(err, IsNil) + c.Assert(refCount, Equals, 5) + + cIter, err := r.Log(&LogOptions{ + All: true, + }) + c.Assert(cIter, NotNil) + c.Assert(err, IsNil) + + cCount := 0 + cIter.ForEach(func(c *object.Commit) error { + cCount++ + return nil + }) + c.Assert(cCount, Equals, 9) + + _, err = cIter.Next() + c.Assert(err, Equals, io.EOF) + cIter.Close() +} + func (s *RepositorySuite) TestLogAllOrderByTime(c *C) { r, _ := Init(memory.NewStorage(), nil) err := r.clone(context.Background(), &CloneOptions{ |