On Thu, May 10, 2018 at 11:26 AM, Leif Middelschulte
<[email protected]> wrote:
> From: Leif Middelschulte <[email protected]>
Hi Leif!
thanks for following up with a patch!
> Warn the user about an automatically fast-forwarded submodule. The silent
> merge
> behavior was introduced by commit 68d03e4a6e44 ("Implement automatic
> fast-forward
> merge for submodules", 2010-07-07)).
>
> Signed-off-by: Leif Middelschulte <[email protected]>
> ---
> submodule.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/submodule.c b/submodule.c
> index 74d35b257..0198a72e6 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -1817,10 +1817,12 @@ int merge_submodule(struct object_id *result, const
> char *path,
> /* Case #1: a is contained in b or vice versa */
> if (in_merge_bases(commit_a, commit_b)) {
> oidcpy(result, b);
> + warning("Fast-forwarding submodule %s", path);
> return 1;
> }
> if (in_merge_bases(commit_b, commit_a)) {
> oidcpy(result, a);
> + warning("Fast-forwarding submodule %s", path);
> return 1;
> }
The code looks correct, however I think we can improve it.
(Originally I was just wondering if stderr is the right output,
which lead me to the thoughts below:)
Looking through the code of merge-recursive.c,
all the other merge outputs are done via 'output()'
that is able to buffer up the output as well as handles
the output for different verbosity settings.
So I would think we should make the output() function available
outside of merge-recursive.c. (and rename it to a be more concise
and descriptive in the global namespace) and make use of it.
Funnily we already have MERGE_WARNING in submodule.c
which outputs information for all the other cases. I would think
we ought to convert those to the output(), too.
Thanks,
Stefan