diff options
| author | Stefan Beller <sbeller@google.com> | 2018-01-05 12:03:03 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2018-01-05 12:35:35 -0800 |
| commit | ad17312e1170715a15651b3185dae9ebc6b6b8ef (patch) | |
| tree | 572ede7e7432e4a9415282111df15f9f8711c93b | |
| parent | t/lib-submodule-update.sh: fix test ignoring ignored files in submodules (diff) | |
| download | git-ad17312e1170715a15651b3185dae9ebc6b6b8ef.tar.gz git-ad17312e1170715a15651b3185dae9ebc6b6b8ef.zip | |
unpack-trees: oneway_merge to update submodules
When there is a one way merge, each submodule needs to be one way merged
as well, if we're asked to recurse into submodules.
In case of a submodule, check if it is up-to-date, otherwise set the
flag CE_UPDATE, which will trigger an update of it in the phase updating
the tree later.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | unpack-trees.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/unpack-trees.c b/unpack-trees.c index bf8b602901..96c3327f19 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -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; } |
