Интегрируем TortoiseSVN в Total Commander

в 10:03, , рубрики: tortoisesvn, Total Commander, интеграция, разработка, Системы управления версиями, Софт, метки: , ,

Интегрируем TortoiseSVN в Total Commander
Преамбула:
Имеем в наличии TortoiseSVN и Total Commander, и активно их используем в работе.
Практически все действия в Total Commander'e успешно совершаются одной только клавиатурой, без использования мышки, какими-либо горячими клавишами. Главное их найти/знать/привыкнуть, и работа становится в разы проще и быстрее.
TortoiseSVN же из коробки предоставляет нам только пункты в контекстном меню, до которого можно добраться двумя способами:

  • Мышкой. При активной работе, тянуться каждый раз до мышки, реально начинает напрягать уже через пару дней/часов/минут работы (зависит от крепости нервов разработчика) и времени занимает это довольно много.
  • Через клавишу контекстного меню + стрелок. Этот вариант конечно чем-то проще и быстрее (ибо не надо тянуться за мышкой), но всё так же не удобен и всё такой же медленный.

Хочется все действия с TortoiseSVN выполнять так же быстро, как и действия в самом Total Commander'e.
Т.е. через горячие клавиши, в одно нажатие.

Облазив просторы интернета, не смог найти ни одной инструкции, как можно по-человечески интегрировать TortoiseSVN в Total Commander и сделать это возможным.
Поэтому решил написать свой небольшой простенький мануал.


Реализация.
По факту, всё достаточно просто.
В комплекте с TortoiseSVN идёт exe'шник, как раз для автоматизации: TortoiseProc.exe
Он то нам и нужен. Полный список параметров для него доступен на официальном сайте.
В Total Commander'e, в свою очередь, имеется возможность создавать кастомные команды.
Сделать это можно несколькими способами:

  • Через меню настроек: Инструменты -> Список команд ТС…
    Интегрируем TortoiseSVN в Total Commander
    Тут всё достаточно очевидно.
    Заполняем нужные поля для каждой новой команды.
    (можно использовать кнопку копирования, и править только параметры запуска.)

  • Вбить вручную в файл 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 клик:
Интегрируем TortoiseSVN в Total Commander

Для этого в редакторе панели, проделываем для каждой команды нехитрые манипуляции, целиком и полностью изображённые на скриншоте ниже:
Интегрируем TortoiseSVN в Total Commander
(После назначения горячих клавиш (об этом чуть ниже), лично у меня необходимость кнопок на панели отпала. Но решил на всякий случай описать и эту возможность. Все люди разные, может кому-то так удобнее окажется.)

И самое главное. Мы можем назначить горячие клавиши на эти команды!
Открываем настройки Total Commander'a -> Разное. Смотрим раздел «Переопределить горячие клавиши»
Интегрируем TortoiseSVN в Total Commander
Для себя я остановился на следующем списке сочетаний:
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


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js