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

Re: [PATCH v2 0/9] mergetools: vimdiff: regression fix and reorg

From
Fernando Ramos <greenfoo@u92.eu>
Date
Aug 7, 2022, 18:39 UTC
Message-ID
<YvAGycJR8Yq3hxOh@zacax395.localdomain>
In-Reply-To
<CAMP44s2s7QV9+Pgkchfk9=X-6Vwz_QZP0Vd145-euT-SR9Xw6Q@mail.gmail.com>
On 22/08/07 10:39AM, Felipe Contreras wrote:
>
> That's because the diff mode only highlights differences between the
> windows in the tab. If you do something like "BASE,MERGED" the diff
> won't show colors for LOCAL or REMOTE.

That's right. I've been looking into this in detail today and I think I finally have a good solution which...

    - Makes vimdiff3 work as any other layout (no special case, not even an
      extra "if" to handle it)
    - Makes colors work *in all cases*: single tab with single window and also
      multiple tabs where one or more of them contain one single window (in that
      case the diff is made agains all buffers)
    - Works even with an empty .vimrc
I'll post the patch as a reply to this message.
> That's why I don't like any mode other than vimdiff3 (and occasionally
> vimdiff): because I want to see the diff for all the files, even if I
> don't see those files. If I open mergetool with vimdiff and I close
> the BASE window I get something better than vimdiff2.

You can keep using vimdiff3 but now, also, after this fix, you can use any layout you want and append "+ MERGED" at the end (or beginning) and that particular tab (and only that) will behave the same as "vimdiff3" :)

> To me if I configure "BASE,MERGED" and I close the first window, I
> should end up with the same view as "MERGED", but I don't, which is
> why I fundamentally don't like this layout approach.

This won't work. Not even after the fix. If you want to modify the layout (ex: by closing a window) vim won't automatically update the list of buffers to consider for the diff.

You can always manually update the list later *or* use "+ MERGED" as previously described.

The root cause for this is that, when opening vim, we must decide what to diff on each tab, and the logic after my patch works like this:

    - If there are more than 1 window, diff among opened windows.
    - If there is only 1 window, diff among all buffers
Seems to be the best of both worlds :)
Let me know what you think.
Thanks.
Previous: Felipe ContrerasNext: Fernando Ramos
Message 16 of 28 in “mergetools: vimdiff: regression fix and reorg”
  1. 0/9 mergetools: vimdiff: regression fix and reorgFelipe Contreras, Aug 7, 2022
  2. 1/9 mergetools: vimdiff: fix commentFelipe Contreras, Aug 7, 2022
  3. 2/9 mergetools: vimdiff: shuffle single window caseFelipe Contreras, Aug 7, 2022
  4. Fernando RamosAug 7, 2022
  5. Felipe ContrerasAug 7, 2022
  6. 3/9 mergetools: vimdiff: add get_buf() helperFelipe Contreras, Aug 7, 2022
  7. 4/9 mergetools: vimdiff: make vimdiff3 actually workFelipe Contreras, Aug 7, 2022
  8. 6/9 mergetools: vimdiff: fix for diffoptFelipe Contreras, Aug 7, 2022
  9. 5/9 mergetools: vimdiff: silence annoying messagesFelipe Contreras, Aug 7, 2022
  10. 7/9 mergetools: vimdiff: cleanup cruftFelipe Contreras, Aug 7, 2022
  11. 8/9 mergetools: vimdiff: fix single window modeFelipe Contreras, Aug 7, 2022
  12. 9/9 mergetools: vimdiff: use vimdiff for vimdiff3Felipe Contreras, Aug 7, 2022
  13. Fernando RamosAug 7, 2022
  14. Fernando RamosAug 7, 2022
  15. Felipe ContrerasAug 7, 2022
  16. Fernando RamosAug 7, 2022
  17. 1/2 vimdiff: fix single tab mode, single window mode and colorsFernando Ramos, Aug 7, 2022
  18. 2/2 vimdiff: update unit testsFernando Ramos, Aug 7, 2022
  19. Felipe ContrerasAug 7, 2022
  20. 0/3 mergetools: vimdiff: regression fix (vimdiff3 mode)Fernando Ramos, Aug 8, 2022
  21. 1/3 mergetools: vimdiff: fix commentFernando Ramos, Aug 8, 2022
  22. 2/3 mergetools: vimdiff: fix single tab mode, single window mode and colorsFernando Ramos, Aug 8, 2022
  23. Felipe ContrerasAug 8, 2022
  24. Fernando RamosAug 8, 2022
  25. Felipe ContrerasAug 8, 2022
  26. Fernando RamosAug 8, 2022
  27. Felipe ContrerasAug 9, 2022
  28. 3/3 mergetools: vimdiff: update unit testsFernando Ramos, Aug 8, 2022

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.