aboutsummaryrefslogtreecommitdiffstats
path: root/repository_test.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2019-02-13 17:44:51 +0100
committerGitHub <noreply@github.com>2019-02-13 17:44:51 +0100
commit4d8bd13a73d6efd41b6be0b2eba5130c498fae0d (patch)
treec66ae7ca3b29f8b9d5be869d0de4f0f98591c2d6 /repository_test.go
parent2ab6d5cd72b59cfd36b08078ddeebd1efb0d2254 (diff)
parent2b248220113c6eb8699da4aebdb6665b9751f471 (diff)
downloadgo-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.go62
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{