From: Leif Middelschulte <Leif.Middelschulte@xxxxxxxxx> Silent fast-forwarding might lead to inconveniences in cases where submodules are expected to have a certain revision, because 'more recent' (therefore fast-forwardable) versions might break behavior/contain regressions. A use-case is the integration (merge) phase as part of the feature-centric 'git-flow' workflow [0]. I.e. a feature might be well-tested with a certain submodule revision, but break because of regressions (or changes in general) within an updated version of the sourced submodule. This change tries to support the integrator by telling her about another possible source of unexpected behavior (differing submodule versions) she might see during integration tests. [0] http://nvie.com/posts/a-successful-git-branching-model/ Signed-off-by: Leif Middelschulte <Leif.Middelschulte@xxxxxxxxx> --- merge-recursive.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/merge-recursive.c b/merge-recursive.c index a4b91d17f..e2c99924d 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -1093,10 +1093,26 @@ static int merge_submodule(struct merge_options *o, /* Case #1: a is contained in b or vice versa */ if (in_merge_bases(commit_a, commit_b)) { oidcpy(result, b); + if (show(o, 3)) { + output(o, 3, _("Fast-forwarding submodule %s to the following commit:"), path); + output_commit_title(o, commit_b); + } else if (show(o, 2)) + output(o, 2, _("Fast-forwarding submodule %s to %s"), path, oid_to_hex(b)); + else + ; /* no output */ + return 1; } if (in_merge_bases(commit_b, commit_a)) { oidcpy(result, a); + if (show(o, 3)) { + output(o, 3, _("Fast-forwarding submodule %s to the following commit:"), path); + output_commit_title(o, commit_a); + } else if (show(o, 2)) + output(o, 2, _("Fast-forwarding submodule %s to %s"), path, oid_to_hex(a)); + else + ; /* no output */ + return 1; } -- 2.15.1 (Apple Git-101)