score_trees(): fix iteration over trees with missing entries
[gitweb.git] / unpack-trees.c
index bf8b6029013c31000d83d6292f83ce0d0021d5d4..96c3327f19de4b1060ed43ef291a57a76ff2b8cc 100644 (file)
@@ -2139,6 +2139,9 @@ int oneway_merge(const struct cache_entry * const *src,
                            ie_match_stat(o->src_index, old, &st, CE_MATCH_IGNORE_VALID|CE_MATCH_IGNORE_SKIP_WORKTREE))
                                update |= CE_UPDATE;
                }
+               if (o->update && S_ISGITLINK(old->ce_mode) &&
+                   should_update_submodules() && !verify_uptodate(old, o))
+                       update |= CE_UPDATE;
                add_entry(o, old, update, 0);
                return 0;
        }