summaryrefslogtreecommitdiff
path: root/submodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'submodule.c')
-rw-r--r--submodule.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/submodule.c b/submodule.c
index 21cf50ca15..2cfaba0599 100644
--- a/submodule.c
+++ b/submodule.c
@@ -994,7 +994,7 @@ static int submodule_needs_pushing(struct repository *r,
if (start_command(&cp))
die("Could not run 'git rev-list <commits> --not --remotes -n 1' command in submodule %s",
path);
- if (strbuf_read(&buf, cp.out, 41))
+ if (strbuf_read(&buf, cp.out, the_hash_algo->hexsz + 1))
needs_pushing = 1;
finish_command(&cp);
close(cp.out);
@@ -1548,6 +1548,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)