Как я могу разделить две ветки с беглецом?

В fugitive я могу получить статус git в новом окне с помощью :Gstatus и в этом окне D в файле, чтобы получить разницу в новом разделении.

Также можно получить все версии файла с помощью :Glog, и я могу загрузить все предыдущие коммиты с помощью :Glog --.

Что я хотел бы сделать, так это получить окно Gstatus для сравнения двух ветвей. Например, моя ветка topic и development, чтобы я мог сравнить все измененные файлы.

Можно ли получить интерактивное окно со всеми файлами, которые изменились между двумя фиксациями?


person tidbeck    schedule 09.11.2012    source источник
comment
Как упоминает ZyX, может быть удобно добавить команду fugitive, чтобы вытащить git diff --name-status {REV1}..{REV2} в окно. Или, может быть, есть какой-то лучший рабочий процесс... буду звездой и буду следить за любым волшебством.   -  person Dan Fitch    schedule 10.11.2012


Ответы (1)


Поскольку git не поддерживает статус mercurial/bazaar между двумя ревизиями, ни один беглец не может этого сделать. Вместо этого у Git есть git diff --name-status, но простой grep показывает, что эта функция никогда не используется в fugitive, за исключением проверки того, что какой-то файл является чистым (т.е. немодифицированным) при выполнении :Gw и др.


Если вы не боитесь несколько экспериментального кода, вы можете попробовать мой aurum, он может вывести вам окно состояния с

AuStatus rev topic wdrev development

и увидеть vimdiff определенного файла с C (по умолчанию закрывает окно состояния, используйте let g:aurum_statwincmd='k', чтобы избежать).

Примечание: с hg-git и vim, скомпилированным с +python, aurum будет использовать более стабильный код, поскольку mercurial — это основная VCS, которую я использую.


Другая идея заключается в использовании vcscommand, mercurial/bazaar и hg-git/bzr-git. Затем статус будет просматриваться с помощью

VCSStatus -r topic -r development

(mercurial, не помню как на базаре). Я не знаком с vcscommand, поэтому не могу сказать, предлагает ли он столько же интерактивных функций в буфере состояния, сколько fugitive или aurum (кажется, нет: nmap <buffer> в буфере состояния git ничего не показывает). Приведенный выше код должен работать в соответствии с документацией, но я не проверял.

person ZyX    schedule 09.11.2012