cmd/go/internal/modfetch/gitrepo: Support "dumb http" transport
The "dumb http" git transport is useful to host git repositories on a
static HTTP(s) server. Unfortunately, using git fetch --depth against
them is not supported, and fails with the error:
fatal: dumb http transport does not support shallow capabilities
vgo currently fails on such repositories because of this.
This patch makes vgo identify this error, and retry the fetch without
--depth.
Change-Id: Id19396288f785f1c1f588e4fc1ff99eebc58bad9
Reviewed-on: https://go-review.googlesource.com/114820
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/vendor/cmd/go/internal/modfetch/gitrepo/fetch.go b/vendor/cmd/go/internal/modfetch/gitrepo/fetch.go
index 635f1a0..7212e8f 100644
--- a/vendor/cmd/go/internal/modfetch/gitrepo/fetch.go
+++ b/vendor/cmd/go/internal/modfetch/gitrepo/fetch.go
@@ -258,7 +258,7 @@
if _, err = codehost.Run(r.dir, "git", "fetch", "--depth=1", r.remote, name); err == nil {
goto Found
}
- if !strings.Contains(err.Error(), "unadvertised object") && !strings.Contains(err.Error(), "no such remote ref") {
+ if !strings.Contains(err.Error(), "unadvertised object") && !strings.Contains(err.Error(), "no such remote ref") && !strings.Contains(err.Error(), "does not support shallow") {
return nil, nil, err
}
}