]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: do not try to understand git fetch --depth=1 errors
authorRuss Cox <rsc@golang.org>
Fri, 10 Aug 2018 03:17:45 +0000 (23:17 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 10 Aug 2018 18:12:02 +0000 (18:12 +0000)
We used to try a git fetch --depth=1 of a specific hash and
distinguish between an error meaning
"that's not a hash I can give you directly"
(in which case we fall through and pull the whole repo)
and some other error like connection failure, bad ssh key
(in which case we give up).

We've had repeated problems trying to understand the
error meanings so just stop doing that, and fall back to
trying a full fetch on any error at all. If the error really
was some kind of network or auth or i/o problem, then
it will happen the second time and we can report it then.

Fixes #26894.

Change-Id: If1eaaddb87e8bfeff7a3894cce4ecef39802198c
Reviewed-on: https://go-review.googlesource.com/128904
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/internal/modfetch/codehost/git.go

index 06c452ff458798b2e287386291ab3545fe288782..87940a8f02c9c4dad2cd11c3058064ac1f08702b 100644 (file)
@@ -347,9 +347,9 @@ func (r *gitRepo) stat(rev string) (*RevInfo, error) {
                if err == nil {
                        return r.statLocal(rev, 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, err
-               }
+               // Don't try to be smart about parsing the error.
+               // It's too complex and varies too much by git version.
+               // No matter what went wrong, fall back to a complete fetch.
        }
 
        // Last resort.