aboutsummaryrefslogtreecommitdiffstats
path: root/repository.go
diff options
context:
space:
mode:
authorJavi Fontan <jfontan@gmail.com>2018-11-30 13:07:57 +0100
committerJavi Fontan <jfontan@gmail.com>2018-11-30 13:11:44 +0100
commitfdc18d60b0e0eb7c0df2cdba03e081fee3e7292c (patch)
treea104cab678cfa181dbea5f7917b6eef6b848b67d /repository.go
parent8f52c5099e7fe4a2519920a7bbf5a9bb52ff9cec (diff)
downloadgo-git-fdc18d60b0e0eb7c0df2cdba03e081fee3e7292c.tar.gz
git: return better error message when packfile cannot be downloaded
Previously the error message when the connection was closed while fetching was "object not found" and was misleading. Now when the packfile size is 0 the error "unable to fetch packfile" is returned. Signed-off-by: Javi Fontan <jfontan@gmail.com>
Diffstat (limited to 'repository.go')
-rw-r--r--repository.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/repository.go b/repository.go
index 97134ec..1f64b9f 100644
--- a/repository.go
+++ b/repository.go
@@ -41,6 +41,8 @@ var (
ErrTagExists = errors.New("tag already exists")
// ErrTagNotFound an error stating the specified tag does not exist
ErrTagNotFound = errors.New("tag not found")
+ // ErrFetching is returned when the packfile could not be downloaded
+ ErrFetching = errors.New("unable to fetch packfile")
ErrInvalidReference = errors.New("invalid reference, should be a tag or a branch")
ErrRepositoryNotExists = errors.New("repository does not exist")
@@ -858,6 +860,8 @@ func (r *Repository) fetchAndUpdateReferences(
remoteRefs, err := remote.fetch(ctx, o)
if err == NoErrAlreadyUpToDate {
objsUpdated = false
+ } else if err == packfile.ErrEmptyPackfile {
+ return nil, ErrFetching
} else if err != nil {
return nil, err
}