Неужели netbeans игнорирует мой крюк git pre-commit?

Я пытаюсь использовать крюк pre-commit для git. Крючок выглядит следующим образом:

#!/bin/bash
echo "fail"
exit 1

Таким образом, он всегда терпит неудачу, т.е. мой git commit должен завершиться неудачно.

Если я добавлю что-то с git, а затем зафиксирую его в командной строке, я получаю сообщение об ошибке и мое завершение не выполняется.

Но если я фиксирую с помощью netbeans, мой крюк с предварительной фиксацией не будет выполнен. Кажется, он просто игнорирует это.

Я использую Ubuntu и Netbeans 7.1. Разрешения для фиксации pre-commit - -rwxrwxrwx (просто изменили его на 777 для целей тестирования).

Как это возможно?

Ответ 1

Похоже. Да.

Если вы посмотрите на NetBeans Git План интеграции, вы заметите, что никакой поддержки для запланированных крючков не существует вообще.

Помимо этого, я бы не стал полагаться на интеграцию IDE Git, а с помощью командной строки. Что делать, если вы решили отказаться от NetBeans завтра и вместо этого использовать Eclipse? Или VisualStudio? Или KDevelop? Вам нужно будет изучить новую среду IDE и снова интегрировать Git в IDE. И вы должны надеяться, что разработчики плагина IDE действительно реализовали это подмножество Git, которое вам нужно. Отходы времени.

Кроме того, реализация Git в NetBeans далека от завершения. Функции, названные как nice-to-have (stash, cherry-pick, rebase) являются супер-полезными. Другие функции killer даже не упоминаются (git bisect кто-нибудь?).

Возьмите командную строку. Научитесь использовать с ним Git. Сохраните ваше время.


Изменить: Глядя на M2 NetBeans Git Интеграционный план, можно видеть, что целевой бэкэнд для Git не должен быть встроенной (т.е. специфичной для платформы) реализацией Git, но jgit. Это подход с полным подходом. Почти каждая платформа, с которой вы собираетесь разрабатывать, имеет встроенную реализацию Git. JNI существует. Почему бы не взять специфичные для платформы бинарные файлы (которые, безусловно, лучше проверены, чем чистая реализация Java-команд Java), поместите небольшую обертку JNI и все готово? Да, вы потеряете возможность писать один раз-везде, но стабильность и качество кода будут расти.