Linus Torvalds <torva...@linux-foundation.org> writes:

> It's literally just the fact that "git merge" does it with no extra
> flags or checks. I'd like people to have to be aware of what they are
> doing when they merge two different projects, not do it by mistake.
>
> So making it conditional on a flag like "--no-common-root" is what I'd look 
> for.

I think I said essentially the same thing in a separate message; I
am not sure "--no-common-root" is a good name, but I think it is
better to be more explicit than tying this to a strategy.

> I don't think the original "resolve" did it, for example. You can't do
> a three-way merge without a base.

Yes, and that continues to this day:

        # Give up if we are given two or more remotes -- not handling octopus.
        case "$remotes" in
        ?*' '?*)
                exit 2 ;;
        esac

        # Give up if this is a baseless merge.
        if test '' = "$bases"
        then
                exit 2
        fi

This is a tangent but I wonder if we should say why we refuse to
the standard error before calling these two "exit"s.

Reply via email to