Честно говоря, я предпочитаю события предварительной сборки в Visual Studio поверх Git post-commit. Существует дополнительное преимущество в том, чтобы знать, строится ли вы из грязного хранилища или нет. Написал это сегодня. Ниже приведены общие шаги от сборки до выполнения:
Процесс сборки имеет сценарий предварительной сборки, который собирает информацию о статусе версии и репозитория. В нашем случае VC++ использует сценарий Windows PowerShell version_info.ps1
.
Сценарий предварительной сборки генерирует файл исходного кода, ожидаемый остальной частью кодовой базы. Сгенерированный файл имеет все необходимое, чтобы разрешить или запретить запуск версии. В нашем случае это заголовочный файл C++ version.h
.
Код содержит функцию, которая проверяет, является ли сборка законной для запуска, и регистрирует и останавливает процесс по мере необходимости. Этот примерный код находится в функции versionLogAndVet
файла примера version.cpp
.
Во время выполнения функция versionLogAndVet
позволяет запускать только разрешенные комбинации конфигурации состояния/сборки репозитория. Он также регистрирует информацию о версии.
The specifics and code examples are at the full post.
Вот один вопрос, который может быть проблемой: http://stackoverflow.com/questions/12410164/github-for-windows-pre-commit-hook – forivall