summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-submodule.sh2
-rw-r--r--submodule.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/git-submodule.sh b/git-submodule.sh
index b5f2beee60..cc750b57b2 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -593,7 +593,7 @@ cmd_update()
# is not reachable from a ref.
is_tip_reachable "$sm_path" "$sha1" ||
fetch_in_submodule "$sm_path" $depth ||
- say "$(eval_gettext "Unable to fetch in submodule path '\$displaypath'")"
+ say "$(eval_gettext "Unable to fetch in submodule path '\$displaypath'; trying to directly fetch \$sha1:")"
# Now we tried the usual fetch, but $sha1 may
# not be reachable from any of the refs
diff --git a/submodule.c b/submodule.c
index 934ecfa294..b6f6fa72d7 100644
--- a/submodule.c
+++ b/submodule.c
@@ -1544,6 +1544,13 @@ static int fetch_finish(int retvalue, struct strbuf *err,
struct oid_array *commits;
if (retvalue)
+ /*
+ * NEEDSWORK: This indicates that the overall fetch
+ * failed, even though there may be a subsequent fetch
+ * by commit hash that might work. It may be a good
+ * idea to not indicate failure in this case, and only
+ * indicate failure if the subsequent fetch fails.
+ */
spf->result = 1;
if (!task || !task->sub)