Re: [PATCH] git-submodule.sh: try harder to fetch a submodule
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- May 11, 2018, 23:28 UTC
- Message-ID
- <20180511232840.GB41222@aiede.svl.corp.google.com>
- In-Reply-To
- <20180511231751.162855-1-sbeller@google.com>
Hi,
Stefan Beller wrote:
> This is the logical continuum of fb43e31f2b4 (submodule: try harder to > fetch needed sha1 by direct fetching sha1, 2016-02-23) and fixes it as > some assumptions were not correct.
Interesting.
I think what would help most is an example set of commands I can use to reproduce this (bonus points if in the form of a test).
> > If $sha1 was not part of the default fetch ... fail ourselves here > assumes that the fetch_in_submodule only fails when the serverside does
I'm having some trouble with the formatting here. Is the part preceded by '>' a quote, and if so a quote from what?
Show 5 quoted lines
> not support fetching by sha1. > > There are other failures, why such a fetch may fail, such as > fatal: Couldn't find remote ref HEAD > which can happen if the remote side doesn't advertise HEAD. Not advertising
nit: it can be useful to have a blank line before and after such example output to help both my eyes and tools like "git log --format='%w(100)%b'" to understand the formatting.
> HEAD is allowed by the protocol spec and would happen, if HEAD points at a > ref, that this user cannot see (due to ACLs for example).
A more typical example would be if the ref simply doesn't exist (i.e., is a branch yet to be born).
Show 17 quoted lines
> So do try even harder for a submodule by ignoring the exit code of the > first fetch and rather relying on the following is_tip_reachable to > see if we try fetching again. > > Signed-off-by: Stefan Beller <sbeller@google.com> > --- > git-submodule.sh | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/git-submodule.sh b/git-submodule.sh > index 24914963ca2..13b378a6c8f 100755 > --- a/git-submodule.sh > +++ b/git-submodule.sh > @@ -614,7 +614,6 @@ cmd_update() > # is not reachable from a ref. > is_tip_reachable "$sm_path" "$sha1" || > fetch_in_submodule "$sm_path" $depth ||
Is keeping the '||' at the end of this line intended?
Show 7 quoted lines
> - die "$(eval_gettext "Unable to fetch in submodule path '\$displaypath'")" > > # Now we tried the usual fetch, but $sha1 may > # not be reachable from any of the refs > is_tip_reachable "$sm_path" "$sha1" || > fetch_in_submodule "$sm_path" $depth "$sha1" || > die "$(eval_gettext "Fetched in submodule path '\$displaypath', but it did not contain \$sha1. Direct fetching of that commit failed.")"
Should this error message be changed?
Thanks, Jonathan