Skip to content

Support two-revision form of :Gvdiffsplit (VCSCommand parity) #2467

@t0w2

Description

@t0w2

Current behavior:

:Gvdiffsplit diffs the current buffer against . This covers the common case well (working file vs a commit).

Requested:

:Gvdiffsplit — open a vertical split showing :file on the left and :file on the right, where file is the current buffer's file.

This is the equivalent of VCSCommand's :VCSVimDiff rev1 rev2, which showed two arbitrary revisions of the current file side by side.

Use case:

When reviewing a file's history, I often want to compare two old revisions directly — not against the working copy. For example, comparing the state before and after a refactoring series:

" Today: requires manual Gedit + split + diffthis (5 commands)
:tabnew
:Gedit abc1234:path/to/file
:vertical rightbelow split
:Gedit def5678:path/to/file
:windo diffthis

" Requested: one command
:Gvdiffsplit abc1234 def5678

A range syntax like :Gvdiffsplit abc1234..def5678 would also work.

Context: I migrated from VCSCommand to fugitive. This is the only VCSCommand feature I haven't been able to replace with a native fugitive command — I currently have ~60 lines of custom Lua to work around it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions