From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS53758 23.128.96.0/24 X-Spam-Status: No, score=-4.0 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by dcvr.yhbt.net (Postfix) with ESMTP id 409571F852 for ; Wed, 12 Jan 2022 18:07:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356017AbiALSGY (ORCPT ); Wed, 12 Jan 2022 13:06:24 -0500 Received: from pb-smtp21.pobox.com ([173.228.157.53]:65261 "EHLO pb-smtp21.pobox.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356001AbiALSGU (ORCPT ); Wed, 12 Jan 2022 13:06:20 -0500 Received: from pb-smtp21.pobox.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id 83EB216B1AB; Wed, 12 Jan 2022 13:06:17 -0500 (EST) (envelope-from junio@pobox.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=PaKKsK+36fwB SY8z+dgcoEHATB+6UG3GyMtYc0ck16k=; b=Of0s9rNmFORE+F+mXX+hhoBDhYhr XVLEN0NySv+CE43PfCzVfLMM5/5OwDZuCK8cBWtBn0cwOu0pn06U86o2qa0SCNB6 TwR3WhOUMVOvssbFO8+AxeMv8w5fWQ/YNJMpk4tUkQ88ibILGZYokMnybkcWMZlG mYqvweKQ1yJx3x0= Received: from pb-smtp21.sea.icgroup.com (unknown [127.0.0.1]) by pb-smtp21.pobox.com (Postfix) with ESMTP id 7D34F16B1AA; Wed, 12 Jan 2022 13:06:17 -0500 (EST) (envelope-from junio@pobox.com) Received: from pobox.com (unknown [104.133.2.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pb-smtp21.pobox.com (Postfix) with ESMTPSA id E3EFB16B1A9; Wed, 12 Jan 2022 13:06:14 -0500 (EST) (envelope-from junio@pobox.com) From: Junio C Hamano To: Elijah Newren Cc: =?utf-8?B?w4Z2YXIgQXJuZmrDtnLDsA==?= Bjarmason , Johannes Schindelin , Christian Couder , Git Mailing List , Christian Couder , Taylor Blau Subject: Re: [RFC PATCH 0/2] Introduce new merge-tree-ort command References: <20220105163324.73369-1-chriscool@tuxfamily.org> <220111.86mtk2xb1y.gmgdl@evledraar.gmail.com> Date: Wed, 12 Jan 2022 10:06:13 -0800 In-Reply-To: (Elijah Newren's message of "Tue, 11 Jan 2022 14:25:56 -0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-Pobox-Relay-ID: 551613DE-73D2-11EC-9FF4-CBA7845BAAA9-77302942!pb-smtp21.pobox.com Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Elijah Newren writes: >> And isn't any doubt around that even more reason to just go with >> Elijah's plan of introducing new plumbing? I.e. is it really costing u= s >> to just leave these "legacy merge" plumbing built-ins > > I definitely think it's worth guiding users away from the old `git > merge-tree` behavior in documentation (i.e. deprecating it). That may > also lead towards its eventual removal, but I'm not as worried about > that. Yup, promising users that we will remove it and telling them that they should migrate away from it is necessary. Doing anything else is simply irresponsible. I however suspect that =C3=86var didn't mean by "legacy merge plumbing built-in" the strategy backends. IOW, I had an impression that what is on the chopping block is merge-tree and not merge-recursive. But since you brought up deprecation of recursive, let's spend a few minutes on the topic. > `git merge-recursive` was actively used in various places, including > in `git cherry-pick`. I had used it a few times myself in a script. > I don't see a need to deprecate it currently, which naturally would > push its removal (if anyone is pushing for it) even further away. I suspect that we may be able to just invoke ort when recursive is invoked, and such a wrapping may even be easier than wrapping "git blame" to replace "git annotate" (where a command line option or two needs to change behaviour). I doubt there is -X that affects recursive that ORT does not understand, so it may be quite simple to deprecate "merge -s recursive". As you say, replacing the internal implementation is a different matter. > * `merge-recursive.c` is still hard-coded in three places in the > code; you can't even set a configuration option to choose merge-ort.c > in those places: builtin/am, builtin/merge-recursive, and > builtin/stash. > > More details on that second point: All three of these use > merge_recursive_generic() and need that usage to be replaced. It's on > my TODO list. Yes, I do recall mentioning that when we were reviewing the series that added ort.