Хорошо, вот сценарий: группа разработчиков хочет убедиться, что весь новый код соответствует определенным стандартам кодирования и все модульные тесты проходят до принятия фиксации. Уловка заключается в том, что все тесты необходимо запускать на выделенной тестовой машине, и у нас нет доступа для изменения сервера git, поэтому это нужно делать с помощью локального хука фиксации на каждой машине разработчика.
Хотя спецификации довольно строгие (например, мы не переключаемся на Windows или Subversion), это реальная проблема, поэтому есть некоторая гибкость, если у вас есть решение, которое почти подходит.
- Мы используем Git и * nix.
- Обновленный код необходимо отправить на другой сервер для запуска набора тестов.
- Необходимо предоставить список измененных файлов, чтобы убедиться, что они соответствуют стандарту кодирования.
- Это довольно большая кодовая база, поэтому мы должны отправлять наименьшее количество информации, необходимое для обеспечения идентичных копий кодовой базы.
- Если тесты не пройдут, необходимо отобразить сообщение с ошибкой и заблокировать фиксацию.
- Предположим, мы доверяем нашей команде разработчиков и разрешаем обход тестов с опцией
--no-verify
.
Вопрос: как лучше всего синхронизировать тестовый сервер с локальной средой для выполнения тестов? Какое-то соответствие хэша-хешу с патчем git для нового коммита? Полностью пропустить Git и просто выполнить rsync? Что-то еще?
Обновление от 07.08.13: Я прострелил себе ногу, даже упомянув удаленное репо. Дело не в том, чтобы заблокировать отправку кода в общее / удаленное репо, а в том, чтобы предотвратить даже локальную фиксацию. Будет ли это считаться лучшей практикой, на самом деле не имеет значения в данном случае, поскольку это характерно для небольшой группы разработчиков, которым всем нужна именно эта функциональность. Вопрос в том, как лучше всего достичь цели.
pull
. - person Ajedi32   schedule 01.08.2013