aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--remote.go7
-rw-r--r--remote_test.go11
2 files changed, 15 insertions, 3 deletions
diff --git a/remote.go b/remote.go
index 1894fdc..c3fa042 100644
--- a/remote.go
+++ b/remote.go
@@ -355,7 +355,8 @@ func getWants(spec []config.RefSpec, localStorer Storer, remoteRefs storer.Refer
}
hash := ref.Hash()
- exists, err := commitExists(localStorer, hash)
+
+ exists, err := objectExists(localStorer, hash)
if err != nil {
return err
}
@@ -378,8 +379,8 @@ func getWants(spec []config.RefSpec, localStorer Storer, remoteRefs storer.Refer
return result, nil
}
-func commitExists(s storer.EncodedObjectStorer, h plumbing.Hash) (bool, error) {
- _, err := s.EncodedObject(plumbing.CommitObject, h)
+func objectExists(s storer.EncodedObjectStorer, h plumbing.Hash) (bool, error) {
+ _, err := s.EncodedObject(plumbing.AnyObject, h)
if err == plumbing.ErrObjectNotFound {
return false, nil
}
diff --git a/remote_test.go b/remote_test.go
index 02ff690..7f40979 100644
--- a/remote_test.go
+++ b/remote_test.go
@@ -171,6 +171,17 @@ func (s *RemoteSuite) TestFetchWithPackfileWriter(c *C) {
func (s *RemoteSuite) TestFetchNoErrAlreadyUpToDate(c *C) {
url := s.GetBasicLocalRepositoryURL()
+ s.doTestFetchNoErrAlreadyUpToDate(c, url)
+}
+
+func (s *RemoteSuite) TestFetchNoErrAlreadyUpToDateWithNonCommitObjects(c *C) {
+ fixture := fixtures.ByTag("tags").One()
+ url := s.GetLocalRepositoryURL(fixture)
+ s.doTestFetchNoErrAlreadyUpToDate(c, url)
+}
+
+func (s *RemoteSuite) doTestFetchNoErrAlreadyUpToDate(c *C, url string) {
+
sto := memory.NewStorage()
r := newRemote(sto, nil, &config.RemoteConfig{Name: "foo", URL: url})