git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/2] Custom low-level merge driver support.

From
Junio C Hamano <junkio@cox.net>
Date
Apr 18, 2007, 19:00 UTC
Message-ID
<7vzm55fqyv.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<alpine.LFD.0.98.0704181136360.2828@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 13 quoted lines
> On Wed, 18 Apr 2007, Junio C Hamano wrote:
>> 
>> While I agree with all of the above, I am currently fighting
>> with a back-to-drawing-board design problem.
>> 
>> The series made the low-level 3-way merge machinery
>> customizable, which is a progress, but I think merge-recursive
>> needs a hook to affect middle-level merge decision, similar to
>> what git-merge-one-file does.
>
> Hmm. I think that it's not so much a "hook", as a "recursive merge is a 
> separate merge policy altogether, that just *defaults* to the same final 
> merge policy".
I suspect I did not state my problem clearly.
> For example, for a three-way merge, it makes sense to do the three-way 
> merge for the "internal" merge too. But it might be that that isn't true 
> for all strategies.

Yes, that is what I alluded to in one of my previous message, but I think the "foo-recursive" idea is a good one. I was planning to give only "3-way" or "pick ancestor" choice to external low-level merge drivers.

But I think that is a separate issue.

The logic I said I wanted to override in the message you are responding to is the big toplevel if () else if () ... chain in process_entry(), and the nested if () else if () ... logic in merge_file(). They roughly implement what git-merge-one-file does.

Currently low-level 3-way merge drivers are invoked only in some cases, exactly where git-merge-one-file used to invoke "RCS merge". The specific case of RelNotes symlink I wanted to override is one of the cases that ll_merge() is not even invoked.

Previous: Linus TorvaldsNext: Junio C Hamano
Message 13 of 23 in “Custom low-level merge driver support.”
  1. 0/2 Custom low-level merge driver support.Junio C Hamano, Apr 18, 2007
  2. 1/2 Custom low-level merge driver support.Junio C Hamano, Apr 18, 2007
  3. Johannes SixtApr 18, 2007
  4. Johannes SchindelinApr 18, 2007
  5. 2/2 Allow the default low-level merge driver to be configured.Junio C Hamano, Apr 18, 2007
  6. Johannes SchindelinApr 18, 2007
  7. Martin WaitzApr 18, 2007
  8. Junio C HamanoApr 18, 2007
  9. Martin WaitzApr 18, 2007
  10. Linus TorvaldsApr 18, 2007
  11. Junio C HamanoApr 18, 2007
  12. Linus TorvaldsApr 18, 2007
  13. Junio C HamanoApr 18, 2007
  14. Junio C HamanoApr 18, 2007
  15. Linus TorvaldsApr 18, 2007
  16. Linus TorvaldsApr 18, 2007
  17. Junio C HamanoApr 18, 2007
  18. Linus TorvaldsApr 18, 2007
  19. David LangApr 18, 2007
  20. Junio C HamanoApr 18, 2007
  21. Martin WaitzApr 19, 2007
  22. Junio C HamanoApr 19, 2007
  23. Custom low-level merge driver: change the configuration scheme.Junio C Hamano, Apr 18, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.