Запустить команду на основе коммита
Мы используем сторонний инструмент для проверки кода здесь, на работе. Все мои коллеги используют предоставленное приложение, чтобы загрузить свой код для проверки, но, к сожалению, это требует нескольких действий вырезания и вставки. К счастью, есть версия командной строки, которую можно использовать для загрузки.
Я выполняю большую часть моего рабочего процесса git в emacs, используя magit, и мне было интересно, как я могу настроить все так, чтобы, когда моя точка находилась на определенном коммите, нажатие определенной комбинации клавиш вызывало командную строку exe, передавая коммит хэш и изменить текст.
Любые идеи или указатели о том, как это сделать, будут высоко оценены.
1 ответ
Получить хеш коммита с момента просмотра журнала можно с помощью чего-то вроде magit-show-commit
в magit-diff.el):
(defun aec/commit-test (rev &optional args files module)
"Visit the revision at point in another buffer.
If there is no revision at point or with a prefix argument prompt
for a revision."
(interactive
(let* ((mcommit (magit-section-when module-commit))
(atpoint (or (and (bound-and-true-p magit-blame-mode)
(magit-blame-chunk-get :hash))
mcommit
(magit-branch-or-commit-at-point)
(magit-tag-at-point))))
(nconc (cons (or (and (not current-prefix-arg) atpoint)
(magit-read-branch-or-commit "Show commit" atpoint))
(magit-show-commit--arguments))
(and mcommit (list (magit-section-parent-value
(magit-current-section)))))))
(message (magit-rev-parse (concat rev "^{commit}"))))
Затем вы можете добавить опцию во всплывающее окно с magit-define-popup-action
(magit-define-popup-action 'magit-run-popup ?a
"aec/test"
'aec/commit-test)
В результате чего:
Actions
! Git Subcommand (in topdir) k Gitk
p Git Subcommand (in pwd) s Shell command (in topdir)
b Gitk --branches S Shell command (in pwd)
g Git Gui a aec/test