Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753766AbcCRQhh (ORCPT ); Fri, 18 Mar 2016 12:37:37 -0400 Received: from pb-smtp0.pobox.com ([208.72.237.35]:60852 "EHLO sasl.smtp.pobox.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751160AbcCRQhf (ORCPT ); Fri, 18 Mar 2016 12:37:35 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=dG7xfKHp3NMRcfVwk0/BPnY5JhUN/JRx XJLu5i8BkV2hiVRfaITEmXckCc3l+SXycSEAzThKH6cH4JhrpR5UmSi7mxA6eEeU Mbs09LUcY04aTbLPByQ/ZIXrHzVR+Si698XOra9tzqpVMIryxuCItPwuCZUw1voN Fk+7TaqI0X4= From: Junio C Hamano To: Linus Torvalds Cc: Johannes Schindelin , Laxman Dewangan , Linus Walleij , "linux-kernel\@vger.kernel.org" , "linux-gpio\@vger.kernel.org" , Git Mailing List Subject: Re: [GIT PULL] GPIO bulk changes for kernel v4.6 References: <56EB9B0C.4050507@nvidia.com> Date: Fri, 18 Mar 2016 09:37:31 -0700 In-Reply-To: (Linus Torvalds's message of "Fri, 18 Mar 2016 08:47:02 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: B6B68D68-ED27-11E5-A82D-79226BB36C07-77302942!pb-smtp0.pobox.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1099 Lines: 31 Linus Torvalds 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.