Настройка горячих клавиш Tortoise SVN Windows 7

#windows #svn #windows-7 #tortoisesvn #hotkeys

#Windows #svn #windows-7 #tortoisesvn #горячие клавиши

Вопрос:

Как можно настроить некоторые горячие клавиши для часто используемых действий SVN, таких как diff?

В настоящее время для просмотра diff мне нужно выбрать файл (ы), затем щелкнуть правой кнопкой мыши, перейти к TortoiseSVN и затем выбрать действие Diff. Довольно много шагов для того, что часто используется.

Вместо этого я хотел бы выбрать файл и использовать горячую клавишу (например, Ctrl-Alt-F), чтобы выполнить то же действие Diff.

В поисках решений я обнаружил, что некоторые люди запускают скрипты AutoHotkey для выполнения аналогичных действий, но это кажется излишеством.

Я создал ярлык горячих клавиш (используя стандартный метод Win 7 создания ярлыка с последующей настройкой его свойств) для запуска TortoiseMerge, который является инструментом, отображающим разницу, но такой ярлык игнорирует текущий выбор файла и выводит пустое TortoiseMerge.

Есть идеи попробовать?

Ответ №1:

Вы можете изменить контекстное меню TortoiseSVN и поместить ваши любимые команды в корень контекстного меню. Таким образом, вам нужно всего лишь дважды щелкнуть для изменения. Я думаю, не так уж много.

Настройки TortoiseSVN - контекстное меню

Другим вариантом было бы использовать расширенный файловый менеджер (например, Total Commander или FreeCommander), который позволяет определять пользовательские команды меню с помощью пользовательских горячих клавиш.

В Total Commander это было бы «Изменить меню пуск»:

  • Команда: C:Program Files (x86)TortoiseSVNbinTortoiseProc.exe
  • Параметры: /command:diff /path:%P%N
  • Сочетание клавиш: CRTL ALT F1

Для запуска команды TortoiseSVN, будь то контекстное меню командной строки или горячая клавиша, потребуется не менее 2 шагов:

  1. Выберите файл (выбор и щелчок правой кнопкой мыши для открытия контекстного меню — это одно действие)
  2. Запустите команду (щелкните по пункту контекстного меню или нажмите комбинацию клавиш)

С этой точки зрения это всего лишь вопрос ваших личных предпочтений: должен ли я щелкнуть дважды или мне следует щелкнуть один раз и оставить мышь для нажатия клавиши? ;-)

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

1. Разве это не помешало бы цели использования Tortoise в первую очередь, поскольку это расширение оболочки Explorer?

2. Да, но операционная система запрашивает именно такое использование.

3. @splash не так, как я это прочитал. «Перейти к Tortoise SVN» относится к пункту вложенного контекстного меню. Я согласен, что это непросто сделать. Вы просто хотите выбрать файл в проводнике, нажать функциональную клавишу, скажем, и появится разница.

4. @David: Использование инструмента с горячими клавишами, который подделывает ввод в Explorer, кажется мне странным, потому что он захватывает горячую клавишу, затем подделывает ввод в explorer, который вызывает расширение оболочки, которое вызывает TortoiseProc.exe …

5. Параметры: для TotalCommander не требуют обратной косой черты между %P и %N , поэтому /command:diff /path:%P%N этого достаточно. Хотя это также работает с обратной косой чертой для TortoiseSVN, это не работает для TortoiseGit — там вам нужно использовать параметры: /command:diff /path:%P%N (и TortoiseGitProc.exe ), чтобы заставить его работать.

Ответ №2:

Для одной клавиши автозапуск является излишеством, но вы можете собрать горячие клавиши для действий, которые вы могли бы выполнять в любом типе окна, в одном скрипте. В результате горячие клавиши могут выполнять довольно сложные действия в одном классе окон, и те же горячие клавиши выполняют различные действия в другом типе окна, используя директиву ‘#IfWinActive’.

Например, в этом URL упоминается добавление горячих клавиш для фиксации и обновления; вы могли бы добавить ключ для ваших нужд в diff и, возможно, один для log или какой-либо другой опции svn, которую вы часто используете.

По какой-то причине у меня медленно открывается контекстное меню Explorer в Windows 7. Добавление этих горячих клавиш действительно улучшило мой рабочий процесс.

Примечание: вы также можете добавить в пример кода этого URL-адреса следующий префикс:

 GroupAdd explorers, ahk_class ExploreWClass
GroupAdd explorers, ahk_class CabinetWClass

#IfWinActive ahk_group explorers
  

И дополните его:

 #IfWinActive
  

И эти конкретные горячие клавиши будут выполнять команды, специфичные для TortoiseSVN, когда проводник Windows находится в фокусе, и будут передаваться во всех других случаях.

Ответ №3:

Вы могли бы попробовать напрямую вызвать процесс с правильными параметрами вместо того, чтобы беспокоиться о контекстных меню, вызываемых правой кнопкой мыши.

Например, я смог настроить ярлык непосредственно для следующего элемента:

 "C:Program FilesTortoiseSVNbinTortoiseProc.exe" /command:update /path:"c:Source"
  

Оттуда вы можете вызвать этот ярлык из своей программы горячих клавиш или, если вы предпочитаете готовое решение, сопоставить папку непосредственно с панелью задач (я обозначил свою «o» для эстетики) и вставить этот ярлык в эту папку.

Теоретически у вас может быть один ярлык для каждой операции в репозитории.

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

1. Вы также можете найти текущие команды контекстного меню, находящиеся в реестре, выполнив поиск TortoiseProc.exe /command

2. Спасибо @MichaelVickers, оба хороших совета. Следуя последнему, я обнаружил, что здесь перечислены другие команды вместе с их аргументами .

Ответ №4:

Рассматривая проблему в более общем плане, я бы сказал, что это проблема рабочего процесса. Предположительно, причина, по которой вы хотите найти более быстрый способ поиска различий, заключается в том, что вы хотите сделать это для нескольких файлов. В этом случае перейдите в корневой каталог вашей рабочей копии и выберите TortoiseSVN -> Check for modifications . Это покажет вам список измененных файлов. Получите различия, просто дважды щелкните на каждом.

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

1. На самом деле, мне нравится проверять различия перед выполнением фиксации. (Я делаю много коммитов). Таким образом, сочетание клавиш имеет смысл для меня.

2. Но вам все равно придется перейти к каталогу в проводнике, выбрать файл и затем вызвать ярлык. Навигация — это медленная часть. Если вместо этого вы используете представление «проверить наличие изменений», то отпадает необходимость в навигации, и вы можете просто дважды щелкнуть, чтобы получить разницу, затем выбрать несколько файлов для фиксации и зафиксировать их прямо из этого окна.

Ответ №5:

Установите StExBar, затем добавьте команды для diff / update /commit/… и укажите соответствующие TortoiseProc.exe команда. И, конечно, назначьте горячую клавишу для команды.

Ответ №6:

Вы можете использовать сочетания клавиш контекстного меню. Просто откройте папку code в проводнике и используйте приведенное ниже:

 Commit: alt   F   C
update: alt   F   U
Check for updates: alt   F   T   F
  

Таким образом, вы можете нажимать вышеуказанные сочетания клавиш для фиксации вместо того, чтобы щелкать правой кнопкой мыши каталог, а затем нажимать «зафиксировать».