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

Re: whither merge-tree?

From
Jeff King <peff@peff.net>
Date
Feb 23, 2016, 06:03 UTC
Message-ID
<20160223060338.GA2912@sigill.intra.peff.net>
In-Reply-To
<20160223051402.GA23375@sigill.intra.peff.net>
On Tue, Feb 23, 2016 at 12:14:02AM -0500, Jeff King wrote:
Show 18 quoted lines
> I dug this all the way down to your cb93c19 (merge-one-file: use common
> as base, instead of emptiness., 2005-11-09), which states that the goal
> is just to get:
> 
> 	common file contents...
> 	<<<<<< FILENAME
> 	version from our branch...
> 	======
> 	version from their branch...
> 	>>>>>> .merge_file_XXXXXX
> 	more common file contents...
> 
> But that seems to be what we produce now. Did all of this simply predate
> xdl_merge, and the crappy rcs merge did not bother minimizing the diff?
> That certainly seems to be the case in my tests.
> 
> If that is the case, I think we can get rid of the complex
> create_virtual_base(), as well.
So here is what I would propose:
  [1/3]: merge-one-file: use empty blob for add/add base
  [2/3]: merge-tree: drop generate_common strategy
  [3/3]: xdiff: drop XDL_EMIT_COMMON

I briefly wondered if there were any bugs in merge-one-file around this "no newline at end of file" issue. But there shouldn't be. It generates the common file by applying the diff to the first file with "--no-add", which should do the right thing, I think.

I stopped short of dropping the create_virtual_base function in the first patch, for reasons explained there. But if we were to do so, I suspect we could deprecated and eventually drop "apply --no-add", too.

-Peff
Previous: Jeff KingNext: Jeff King
Message 8 of 19 in “What's cooking in git.git (Feb 2016, #05; Wed, 17)”
  1. Junio C HamanoFeb 17, 2016
  2. Jeff KingFeb 17, 2016
  3. Junio C HamanoFeb 18, 2016
  4. whither merge-tree? (was: What's cooking in git.git (Feb 2016, #05; Wed, 17))Jeff King, Feb 22, 2016
  5. Junio C HamanoFeb 22, 2016
  6. Jeff KingFeb 23, 2016
  7. Jeff KingFeb 23, 2016
  8. Jeff KingFeb 23, 2016
  9. 1/3 merge-one-file: use empty blob for add/add baseJeff King, Feb 23, 2016
  10. 2/3 merge-tree: drop generate_common strategyJeff King, Feb 23, 2016
  11. 3/3 xdiff: drop XDL_EMIT_COMMONJeff King, Feb 23, 2016
  12. Junio C HamanoFeb 23, 2016
  13. Jeff KingFeb 23, 2016
  14. Stefan FrühwirthFeb 23, 2016
  15. Dennis KaarsemakerFeb 24, 2016
  16. Jeff KingFeb 24, 2016
  17. Jeff KingFeb 24, 2016
  18. Johannes SchindelinFeb 23, 2016
  19. Duy NguyenFeb 23, 2016

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.