февраля 25, 2010

TortoiseSVN из командной строки

При всем моем уважении к командной строке, TortoiseSVN по своей наглядности не заменяем ни одним консольным клиентом.

Но даже и TortoiseSVN можно запускать из консоли, избегая контекстное меню, вызовом

TortoiseProc /command:сюда имя команды /path:сюда путь для которого выполнить команду

для директории, либо
TortoiseProc /command:сюда имя команды /pathfile:сюда путь до файла для которого выполнить команду

для файла. В частности, вот две самые частоиспользуемые команды
TortoiseProc /command:update /path:"d:\proj\svn"
TortoiseProc /command:commit /path:"d:\proj\svn"

Я создал два bat-файла c этими действиями и раскидал по нужным мне директориям. Каждый раз переписывать в этих бат-файлах значение переменной /path: не хочется, к счастью, можно воспользоваться возможностями бат-файла. А именно, не вдаваясь в подробности, %~dp0 возвращает текущую директорию. Поэтому udate.bat и commit.bat окончательно выглядят так:
TortoiseProc /command:update /path:"%~dp0"

TortoiseProc /command:commit /path:"%~dp0"



Кроме того, гораздо удобнее не переходя к командной строке, а прямо из редактора (имею ввиду vim, под которым все делаю) горячими клавишами коммитить и апдейтить. Я выбрал клавиши F3 и F4 и прописал для них следующие две строки в _vimrc:
map <F3> :!<нужная директория>\commit.bat<CR>
map <F4> :!<нужная директория>\update.bat<CR>


Конечно, это не гибкое решение, так как не получится команды использовать из двух проектов, впрочем мне это и не надо. Если такое необходимо, то можно проделать следующее: 1) запускать TortoiseProc прямо для текущей директории (в которой открыт vim) - мне этого явно недостаточно 2) написать функцию setsvn, которая будет ставить директорию, для которой запускать TortoiseProc - мне это делать явно влом.

Так же стоит посмотреть в сторону всяких плагинов под вим, облегчающих работу с свн, например этот
vcscommand.vim

У приведенных выше маппингов есть недостаток, даже два: после выполнения манипуляций с свн потребуется дважды нажать на Enter (в cmd и vim). Этого можно избежать, переписав команды менее наглядным образом
map <F3> :!start cmd /c <нужная директория>\commit.bat<CR><CR>
map <F4> :!start cmd /c <нужная директория>\update.bat<CR><CR>


Подробнее можно почитать тут: Автоматизация TortoiseSVN.


Комментариев нет:

Отправить комментарий

Постоянные читатели

Обо мне

Моя фотография
Мой e-mail: vitek_03(at)mail(dot)ru