git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Derrick Stolee <stolee@gmail.com>
To: Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org
Cc: "Christian Couder" <chriscool@tuxfamily.org>,
	"Derrick Stolee" <dstolee@microsoft.com>,
	"Emily Shaffer" <emilyshaffer@google.com>,
	"Eric Sunshine" <sunshine@sunshineco.com>,
	"Jeff King" <peff@peff.net>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Jonathan Nieder" <jrnieder@gmail.com>,
	"Jonathan Tan" <jonathantanmy@google.com>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Phillip Wood" <phillip.wood@dunelm.org.uk>,
	"René Scharfe" <l.s.r@web.de>, "Taylor Blau" <me@ttaylorr.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Elijah Newren" <newren@gmail.com>
Subject: Re: [PATCH 0/2] [RFC] Switch default merge backend from recursive to ort
Date: Mon, 2 Aug 2021 11:05:44 -0400	[thread overview]
Message-ID: <ec1bb449-347a-924d-7462-3cef6facc0e9@gmail.com> (raw)
In-Reply-To: <pull.1055.git.git.1627776461.gitgitgadget@gmail.com>

On 7/31/2021 8:07 PM, Elijah Newren via GitGitGadget wrote:
> This is an RFC series designed to spur feedback about switching the default
> merge backend (reviewing the patches is of secondary importance at this
> point). Some questions:
> 
>  * Are there things others want before this series is considered for
>    inclusion?
>  * What kind of timeline do others think is reasonable?
>  * Would it be beneficial to let this series sit in 'next' for an extended
>    duration to gain more feedback?
> 
> Some potentially useful context in relation to the above:
> 
>  * I've personally used the ort backend for well over a year
>  * I have ~50 testers using ort as the default merge backend since Nov.
>    2020.
>  * ort fixes known bugs in recursive, and there are no known regressions
>    (more testers may change that)
>  * ort is significantly faster than recursive
>  * ort provides one new feature already, and enables more that are on the
>    way
>  * The commit message of patch 1 has more details about the last three items
>    above
> 
> So...thoughts?

I fully endorse this change as soon as possible. I've applied the patches
you supplied here and submitted a PR to microsoft/git [1] to take them.

[1] https://github.com/microsoft/git/pull/404

I've done my own share of testing on some of our private monorepos to see
how ORT compares to the recursive algorithm. My data is not perhaps as
rigorous as yours, but I did notice that the ORT algorithm was consistently
within the 5-6 second range while the recursive algorithm would vary within
the 7-20 second range (and some outliers near 30s).

Of course, I'm particularly excited about the benefits to the sparse index
work. I also have a prototype of a 'git merge' integration with sparse
index which was not very hard because the ORT strategy does not use the
index as a data structure. With that change, my tests dropped to between
0.5s and 1.5 seconds. (This shows just how much my earlier timings were
stuck on index reads and writes.) Now, the largest indicator of time is
how long it takes to resolve text conflicts.

Thanks! What a monumental effort.

-Stolee

  parent reply	other threads:[~2021-08-02 15:05 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-01  0:07 [PATCH 0/2] [RFC] Switch default merge backend from recursive to ort Elijah Newren via GitGitGadget
2021-08-01  0:07 ` [PATCH 1/2] Change " Elijah Newren via GitGitGadget
2021-08-02 15:55   ` Ævar Arnfjörð Bjarmason
2021-08-02 16:33     ` Elijah Newren
2021-08-02 22:46   ` Johannes Schindelin
2021-08-03  1:04     ` Elijah Newren
2021-08-03  2:56   ` Philippe Blain
2021-08-03  3:39     ` Elijah Newren
2021-08-01  0:07 ` [PATCH 2/2] Update docs for change of default merge backend Elijah Newren via GitGitGadget
2021-08-02 14:59   ` Derrick Stolee
2021-08-03 14:39   ` Elijah Newren
2021-08-02 15:05 ` Derrick Stolee [this message]
2021-08-02 16:27   ` [PATCH 0/2] [RFC] Switch default merge backend from recursive to ort Elijah Newren
2021-08-02 18:03     ` Derrick Stolee
2021-08-03 15:56 ` Jeff King
2021-08-03 16:57   ` Elijah Newren
2021-08-03 17:13     ` Jeff King
2021-08-03 22:08   ` Junio C Hamano
2021-08-03 22:37     ` Jeff King
2021-08-03 22:48       ` Elijah Newren
2021-08-03 22:46     ` Elijah Newren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ec1bb449-347a-924d-7462-3cef6facc0e9@gmail.com \
    --to=stolee@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=dstolee@microsoft.com \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=jrnieder@gmail.com \
    --cc=l.s.r@web.de \
    --cc=me@ttaylorr.com \
    --cc=newren@gmail.com \
    --cc=peff@peff.net \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).