[О блоге] [наверх] [пред] [2020-05-27 20:50:27+03:00] [535810b401ae3a23b2059399ad0cd2fa3bad175b]
Темы: [git][tip]

Узнал про git difftool команду

Которая просто сохраняет старые версии файла во временный файл и
натравливает на него и более свежий заданную утилиту, например vimdiff.
Так в Vim-е можно смотреть на коммиты полноценно, но только пофайлово.

Но для меня fugitive оно не заменяет. В нём, всегда можно нажать "C" и
ты попадёшь на объект коммита, в котором можно ходить по деревьям (tree)
и открывать файлы даже которые не попали в "патч" коммита. difftool для
каждого файла задаст вопрос хочу ли я его открыть, а в fugitive нажав
"C" я снова попаду на коммит и перемещусь на любой файл какой надо.
Хочется полностью увидеть старую версию файла до применения коммита:
просто нажать CR на "-" строке патча. Новую версию: на "+" строке.
Открыть файл сразу в vimdiff режиме со старой версией: нажать на diff
строке файла. Для меня всё же удобнее и быстрее.

И заменить его :Gdiff пока нечем в Vim-е. git add -p команда не так
удобна, особенно когда нужно добавить/отредактировать то, что не
умещается целиком в hunk. Без fugitive я пока не понимаю как достичь
такого же результата. difftool позволяет на изменённый (tracked,
modified) файл показать vimdiff, однако dp/do не приводят же к
добавлению hunk-а в индекс.

    [оставить комментарий]
    комментарий 0:
    From: Tim Perevezentsev
    Date: 2020-05-29 11:43:35Z
    
    > ... difftool для каждого файла задаст вопрос хочу ли я его открыть ...
    
      $ git config set difftool.prompt false
    
    Тогда git перестанет спрашивать и будет сразу открывать следующий файл в
    vimdiff, но в таком случае я не знаю как выйти посреди просмотра.
    Напротив, когда git спрашивает будем ли мы смотреть следующий файл,
    можно выйти при помощи Ctrl-C.
    
    комментарий 1:
    From: Sergey Matveev
    Date: 2020-05-29 11:56:20Z
    
    *** Tim Perevezentsev [2020-05-29 14:25]:
    >Тогда git перестанет спрашивать и будет сразу открывать следующий файл в
    >vimdiff, но в таком случае я не знаю как выйти посреди просмотра.
    
    Вот и я первым делом выставил prompt=false, но быстро наткнулся на то,
    что не знаю как прервать просмотр.