2010-06-28 19 views
2

Я просто столкнулся с конфликтом во время работы в SVN, и мне не хватает функциональности от Mercurial. В Mercurial у меня есть vim -d, настроенный как инструмент diff. Мне интересно, есть ли способ заставить SVN работать подобным образом? Что-то вдоль линий:Простой способ использовать vim для конфликта svn?

$ svn resolve whatever.py 

Что бы вызвать Vim (в режиме дифф), позвольте мне исправить файл, а затем сделать svn resolved убирать. Я работаю исключительно в CLI (в основном, в SSH), поэтому графические инструменты сравнения не нужны.

Существует ли такая вещь?

Update:
Это, вероятно, стоит в том числе, где в процессе я. Я отредактировал файл (whatever.py), сохранил его и выполнил svn update, где кто-то еще также изменил файл. Так что мой svn stat выглядит так:

?  whatever.py.mine 
?  whatever.py.r7822 
?  whatever.py.r7908 
C  whatever.py 
+0

Вы посмотрели на svndiff? PS Просто погуглил и нашел это для vim: http://zevv.nl/play/code/vimscripts/ – pmod

+0

Кажется, что он сравнивает 'HEAD' с текущим.Не устранение конфликта. Я, вероятно, скачаю его, но он не решает эту проблему. –

+1

http://stackoverflow.com/questions/19678860/svn-using-vim-to-merge-conflicts/19678861#19678861 –

ответ

3

Всякий раз, когда у меня есть конфликт из svn update, я попросил полтора десятка вариантов, один из которых отредактировать файл в вопросе. Возможно, вам нужна более новая версия Subversion. Я выполняю 1.6.9.

+0

Это довольно старая версия подрывной деятельности, но вопрос по-прежнему применяется, если я решил отложить решение этой проблемы вопрос. –

+0

Итак ... Ты прав. Единственное, чего не хватает, это команда на самом деле выполнить слияние. Это 'svn merge'. Как только я получил обновленную версию, она сработала. Бросьте туда, чтобы я мог отметить это правильно. = -] –

1

В более поздних версиях клиента CLI subversion вы можете установить переменную среды SVN_MERGE=vim -d, а затем выбрать l для запуска внешнего инструмента при появлении контекстного меню во время обновления svn.

Я не уверен на 100%, если порядок параметров, переданный svn, соответствует тому, который требуется vim -d, поэтому вам может потребоваться написать сценарий оболочки вместо прямого вызова vim.

Руководство пользователя svn содержит полную информацию, конечно.

1

Попробуйте установить переменные окружения EDITOR или VISUAL в VIM

+0

Это работает для коммитов и т.п., но это не меняет разницу. Я уже использую vim как свой «РЕДАКТОР». –

4

набор ВИМ, как дифф инструмент для Черепахи, для win32 (работа для меня):

1) Tortoise SVN-> Настройки-> Внешний Programms- > дифф инструмент

набор Внешний C: \ программы \ GVim \ vim73 \ gvim.exe -d

набор Внешний C: \ программы \ GVim \ vim73 \ gvim.exe -d

2) единый Просмотрщика

C: \ Программы \ GVim \ vim73 \ gvim.exe

3) Merge Tool

«C: \ программы \ gVim \ vim73 \ gvim.exe "-f -d -c" wincmd J "-c" изменить размер 22%% объединено% их% мины% основания

+0

Я пошел с этим для слияния: '' C: \ Program Files (x86) \ Vim \ vim73 \ gvim.exe "-d --cmd" set lines = 999 columns = 999 "-c" wincmd J " %%%%%%%%% –