#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 и поместить ваши любимые команды в корень контекстного меню. Таким образом, вам нужно всего лишь дважды щелкнуть для изменения. Я думаю, не так уж много.
Другим вариантом было бы использовать расширенный файловый менеджер (например, Total Commander или FreeCommander), который позволяет определять пользовательские команды меню с помощью пользовательских горячих клавиш.
В Total Commander это было бы «Изменить меню пуск»:
- Команда:
C:Program Files (x86)TortoiseSVNbinTortoiseProc.exe
- Параметры:
/command:diff /path:%P%N
- Сочетание клавиш:
CRTL ALT F1
Для запуска команды TortoiseSVN, будь то контекстное меню командной строки или горячая клавиша, потребуется не менее 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
Таким образом, вы можете нажимать вышеуказанные сочетания клавиш для фиксации вместо того, чтобы щелкать правой кнопкой мыши каталог, а затем нажимать «зафиксировать».