Git GUI создать пользовательский ярлык для имени филиала - PullRequest
0 голосов
/ 22 февраля 2019

Я только что понял, что запускаю ВСЕ мои сообщения git commit с названием ветки, с которой я сейчас работаю.Что, в свою очередь, является номером вопроса, над которым я работаю.Мне было бы очень удобно иметь сочетание клавиш, подобное сочетанию клавиш, которое только что напечатало имя текущей ветви.

Я посмотрел на C:\Program Files\Git\mingw64\libexec\git-core\git-gui.tcl (да, я в Windows :-() но я полностью потерян. Я быстро набрал grep для этой папки, но не смог найти, где определена команда do_signoff (поэтому я мог попытаться скопировать ее).

Итаку меня вопрос: как реализовать пользовательское сочетание клавиш, которое помещает текущее имя ветви в сообщение фиксации?

Спасибо!

1 Ответ

0 голосов
/ 23 февраля 2019

ОК, понял.

Клонировать репозиторий git-gui следующим образом:

git clone git://repo.or.cz/git-gui.git

Добавьте следующее к git-gui\lib\commit.tcl

proc do_branch_name {} {
    global ui_comm
    global current_branch
    if {$current_branch eq {}} return

    set sob "$current_branch"
    set last [$ui_comm get {end -1c linestart} {end -1c}]
    if {$last ne $sob} {
        $ui_comm edit separator
        if {$last ne {}
            && ![regexp {^[A-Z][A-Za-z]*-[A-Za-z-]+: *} $last]} {
            $ui_comm insert end "\n"
        }
        $ui_comm insert end "$sob:"
        $ui_comm edit separator
        $ui_comm see end
    }
}

Чтобы связать CTRL + b в качестве сочетания клавишдобавьте следующее к Git\mingw64\libexec\git-core\git-gui.tcl:

bind .   <$M1B-Key-b> do_branch_name

Вам все еще нужно регенерировать, чтобы tclIndex do tcl действительно нашел вашу новую функцию.В папке репозитория git-gui выполните

make lib/tclIndex

. Это должно создать файл git-gui\lib\tclIndex.

Заменить C:\Program Files\Git\mingw64\share\git-gui\lib\commit.tcl на git-gui\lib\commit.tcl.

Заменить C:\Program Files\Git\mingw64\share\git-gui\lib\tclIndex с git-gui\lib\tclIndex

Теперь, если вы нажмете CTRL + b, это поместит имя текущей ветви в окно сообщения о фиксации.

Cheers!

...