У меня есть сценарий pre-push
, который я хочу запускать каждый раз, когда я нажимаю код на свое дистанционное репо. (Запуск OSX 10.11.6 и Git 2.6.4)Запросить пользователя для ввода от Git GUI
#!/bin/sh
read -p "*** Did you run tests and lint? (y/n) " -n 1 -r < /dev/tty
echo # move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
then
echo "*** WITH GREAT POWER COMES GREAT RESPONSIBILITY... ***"
exit 0
fi
echo "*** ABORTING GIT PUSH ***"
exit 1
Этот скрипт работает отлично, если я бегу из командной строки, и это делает технически «работать», когда я пытаюсь нажать с помощью git gui
- проблема в том, что Git GUI просто зависает, так как для меня нет окна ввода для ввода чего-либо.
Могу ли я это сделать?
Хорошо, я проверю это. Тем не менее, мне также интересно, хорошо ли это работает с другими инструментами GUI (например, GitHub Desktop). Я пытаюсь написать скрипт «cross-tool» для всех в моей команде, но я предполагаю, что это просто невозможно. – arthurakay
Если у вас есть команда, то на самом деле это не так. Я просто удалю скрипт раздражающего крючка на моей машине. Вы должны потратить время на интеграцию выполнения ваших тестов и заливки на сервере в рамках процесса обзора. т.е.: создать систему непрерывной интеграции с запросами на тягу. Попросите разработчиков разблокировать ветви функций и поднять запросы на запросы. Они могут быть автоматически отклонены для сбоев во время теста или проверки. GitLab - одна из таких систем. GitHub делает это тоже (с крючками для различных систем). – patthoyts