Subject: Re: Git in Outreachy December 2019?

From: Jeff King <[email-masked]>
Date: Mon, 23 Sep 2019 14:07:51 -0400

On Tue, Sep 17, 2019 at 01:23:18PM +0200, Johannes Schindelin wrote:

> The only slightly challenging aspect might be that `merge-one-file` is
> actually not a merge strategy, but it is used as helper to be passed to
> `git merge-index` via the `-o <helper>` option, which makes it slightly
> awkward to be implemented as a built-in. A better approach would
> therefore be to special-case this value in `merge-index` and execute the
> C code directly, without the detour of spawning a built-in.

I think it could make sense for merge-index to be able to directly run
the merge-one-file code[1]. But I think we'd want to keep its ability to
run an arbitrary script, and for people to call merge-one-file
separately, since right now you can do:

  git merge-index my-script

and have "my-script" do some processing of its own, then hand off more
work to merge-one-file.

So the weird calling convention is actually a user-visible and
potentially useful interface. So it would need a deprecation period
before being removed.

-Peff

[1] Certainly doing it in-process would be faster for the common case of
    "git merge-index git-merge-one-file", but I wonder if anybody really
    does that. These days most people would just merge-recursive anyway.