Преамбула:
Имеем в наличии TortoiseSVN и Total Commander, и активно их используем в работе.
Практически все действия в Total Commander'e успешно совершаются одной только клавиатурой, без использования мышки, какими-либо горячими клавишами. Главное их найти/знать/привыкнуть, и работа становится в разы проще и быстрее.
TortoiseSVN же из коробки предоставляет нам только пункты в контекстном меню, до которого можно добраться двумя способами:
- Мышкой. При активной работе, тянуться каждый раз до мышки, реально начинает напрягать уже через пару дней/часов/минут работы (зависит от крепости нервов разработчика) и времени занимает это довольно много.
- Через клавишу контекстного меню + стрелок. Этот вариант конечно чем-то проще и быстрее (ибо не надо тянуться за мышкой), но всё так же не удобен и всё такой же медленный.
Хочется все действия с TortoiseSVN выполнять так же быстро, как и действия в самом Total Commander'e.
Т.е. через горячие клавиши, в одно нажатие.
Облазив просторы интернета, не смог найти ни одной инструкции, как можно по-человечески интегрировать TortoiseSVN в Total Commander и сделать это возможным.
Поэтому решил написать свой небольшой простенький мануал.
Реализация.
По факту, всё достаточно просто.
В комплекте с TortoiseSVN идёт exe'шник, как раз для автоматизации: TortoiseProc.exe
Он то нам и нужен. Полный список параметров для него доступен на официальном сайте.
В Total Commander'e, в свою очередь, имеется возможность создавать кастомные команды.
Сделать это можно несколькими способами:
- Через меню настроек: Инструменты -> Список команд ТС…
Тут всё достаточно очевидно.
Заполняем нужные поля для каждой новой команды.
(можно использовать кнопку копирования, и править только параметры запуска.) - Вбить вручную в файл usercmd.ini, расположенный в папке Commander'a.
Вот мой список основных команд:[em_svnDiff]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,16
cmd=TortoiseProc.exe
param=/command:diff /path:%P%N[em_svnLog]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,17
cmd=TortoiseProc.exe
param=/command:log /path:%P%N[em_svnCheckForModifications]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,24
cmd=TortoiseProc.exe
param=/command:repostatus /path:%P%N[em_svnRevert]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,6
cmd=TortoiseProc.exe
param=/command:revert /path:%P%N[em_svnCommit]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,4
cmd=TortoiseProc.exe
param=/command:commit /path:%P%N[em_svnUpdate]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,3
cmd=TortoiseProc.exe
param=/command:update /path:%P%N[em_svnRepoBrowser]
button=C:Program FilesTortoiseSVNbinTortoiseProc.exe,106
cmd=TortoiseProc.exe
param=/command:repobrowser /path:%P%N
Теперь, когда у нас есть список команд для Total Commander'a, мы можем начать ими пользоваться.
Тем, кто привык работать с кнопками на панели, можно добавить все эти команды на отдельную панель и вызывать их ровно в 1 клик:
Для этого в редакторе панели, проделываем для каждой команды нехитрые манипуляции, целиком и полностью изображённые на скриншоте ниже:
(После назначения горячих клавиш (об этом чуть ниже), лично у меня необходимость кнопок на панели отпала. Но решил на всякий случай описать и эту возможность. Все люди разные, может кому-то так удобнее окажется.)
И самое главное. Мы можем назначить горячие клавиши на эти команды!
Открываем настройки Total Commander'a -> Разное. Смотрим раздел «Переопределить горячие клавиши»
Для себя я остановился на следующем списке сочетаний:
Ctrl + Alt + Shift + D = em_svnDiff
Ctrl + Alt + Shift + L = em_svnLog
Ctrl + Alt + Shift + R = em_svnRevert
Ctrl + Alt + Shift + C = em_svnCommit
Ctrl + Alt + Shift + U = em_svnUpdate
Ctrl + Alt + Shift + E = em_svnCheckForModifications
Ctrl + Alt + Shift + S = em_svnRepoBrowser
Теперь работа с TortoiseSVN стала намного быстрее, проще и приятнее.
P.S. Надеюсь, для кого-нибудь эта статья станет полезной и привнесёт ещё немного спокойствия и умиротворения в процесс разработки ;)
Автор: AV_Zibarev