git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Fernando Ramos <greenfoo@u92.eu>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v2 0/9] mergetools: vimdiff: regression fix and reorg
Date: Sun, 7 Aug 2022 20:39:05 +0200	[thread overview]
Message-ID: <YvAGycJR8Yq3hxOh@zacax395.localdomain> (raw)
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.

  reply	other threads:[~2022-08-07 18:39 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-07  2:49 [PATCH v2 0/9] mergetools: vimdiff: regression fix and reorg Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 1/9] mergetools: vimdiff: fix comment Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 2/9] mergetools: vimdiff: shuffle single window case Felipe Contreras
2022-08-07 14:46   ` Fernando Ramos
2022-08-07 15:44     ` Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 3/9] mergetools: vimdiff: add get_buf() helper Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 4/9] mergetools: vimdiff: make vimdiff3 actually work Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 5/9] mergetools: vimdiff: silence annoying messages Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 6/9] mergetools: vimdiff: fix for diffopt Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 7/9] mergetools: vimdiff: cleanup cruft Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 8/9] mergetools: vimdiff: fix single window mode Felipe Contreras
2022-08-07  2:49 ` [PATCH v2 9/9] mergetools: vimdiff: use vimdiff for vimdiff3 Felipe Contreras
2022-08-07 14:46   ` Fernando Ramos
2022-08-07  7:54 ` [PATCH v2 0/9] mergetools: vimdiff: regression fix and reorg Fernando Ramos
2022-08-07 15:39   ` Felipe Contreras
2022-08-07 18:39     ` Fernando Ramos [this message]
2022-08-07 18:43       ` [PATCH 1/2] vimdiff: fix single tab mode, single window mode and colors Fernando Ramos
2022-08-07 18:43         ` [PATCH 2/2] vimdiff: update unit tests Fernando Ramos
2022-08-07 22:27       ` [PATCH v2 0/9] mergetools: vimdiff: regression fix and reorg Felipe Contreras
2022-08-08  5:34 ` [PATCH v3 0/3] mergetools: vimdiff: regression fix (vimdiff3 mode) Fernando Ramos
2022-08-08  5:34   ` [PATCH v3 1/3] mergetools: vimdiff: fix comment Fernando Ramos
2022-08-08  5:34   ` [PATCH v3 2/3] mergetools: vimdiff: fix single tab mode, single window mode and colors Fernando Ramos
2022-08-08  6:37     ` Felipe Contreras
2022-08-08 18:14       ` Fernando Ramos
2022-08-08 21:00         ` Felipe Contreras
2022-08-08 21:51           ` Fernando Ramos
2022-08-09  0:59             ` Felipe Contreras
2022-08-08  5:34   ` [PATCH v3 3/3] mergetools: vimdiff: update unit tests Fernando Ramos

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=YvAGycJR8Yq3hxOh@zacax395.localdomain \
    --to=greenfoo@u92.eu \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).