Re: Changed diff3 view from 2.36 → 2.67 for vimdiff

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> There exists at least one vimdiff bugfix [2] in git.git's current
> 'master' branch that is not yet in any released version. If you are able
> to build Git from source, you could try that version to see if it fixes
> your problem. As far as I understand, that patch relates to end-user vim
> settings, and you did write that you nuked your .vimrc, so maybe that
> patch doesn't quite match your problem, although from the original
> report [3], it does seem similar.

Hi Claudio.

As Martin just said, this looks *very* similar to the behaviour you would
experience if you had vim configured to open splits "in reverse" (when compared
to the default settings).

You can make this test to confirm whether this is the case or not: try to run
this command:

    vim -c "echo | split | vertical split | 1b | wincmd l | vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis" -c "tabfirst" local.txt base.txt remote.txt merged.txt

(note: this is the same command git 2.37 uses when running
`git mergetool -t vimdiff`)

It should open 4 windows with the following layout:

    -------------------------------
    |  local  |  base  |  remote  |
    -------------------------------
    |           merged            |
    -------------------------------

If you see something different, please then try to run this other command :

    vim -c "echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis" -c "tabfirst" local.txt base.txt remote.txt merged.txt

(note: this is the same command git will run in a *future* version)

Notice that this new command is exactly the same as the previous one but
including keyword `leftabove` before all `split` and `vertical split` commands.

If you run this command and this time it displays the expected layout, you have
two options:

    A) Wait for the next git version where this will be fixed :)
       (as Martin pointed out, the patch can be found in [1])

    B) Update your .vimrc to include these two lines:

         set nosplitbelow
         set nosplitright

       ...or, alternatively, update your .vimrc *not* to have these two lines
       (as both options are disabled by default):

         set splitbelow
         set splitright


> Since redirecting HOME works, I wonder if you do have some other config
> file after all. Maybe you have more than just one vimrc?

This is also what I suspect.

You can make this experiment to confirm this theory:

  1. Run "vim" and then ":set splitbelow?"

  2. Run "HOME= vim" and then ":set splitbelow?"

If the returned string is different ("splitbelow" in one case and "nosplitbelow"
in the other one) it means you have a ".vimrc" (or something else) somewhere in
your $HOME that is changing vim's default settings.

By the way, you can list all scripts "sourced" by a vim instance by running this
command from inside vim:

    :scriptnames

That will help you find the "rogue" script inside your $HOME.
Note that it could happen that some of the other vim scripts you have sets those
variables without you noticing!... in that case you can also change their value
back *at the end* of your "~/.vimrc"


Fernando.


[1] https://lore.kernel.org/git/20220708181024.45839-1-greenfoo@xxxxxx/




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux