Когда для фиксации контроля версий требуется, чтобы разработчик изменил свою собственную конфигурацию
Какой лучший способ уведомить других разработчиков, когда изменение, внесенное в контроль версий, требует от разработчика, получающего обновление, каких-то дополнительных действий, например, изменения локального файла конфигурации, не входящего в систему контроля версий?
В настоящее время я пишу это в сообщении коммита, но кажется, что это может быть легко пропущено. Какие-либо системы контроля версий предоставляют лучший способ сделать это?
Как это делают другие люди, или никогда не должно быть каких-либо необходимых изменений, которые находятся вне контроля версий?
Я использую Mercurial, но ответы от тех, кто использует другие формы контроля версий, также будет полезен.
5 ответов
Редко должны быть необходимые изменения, которые находятся за пределами контроля версий. В тех редких случаях, когда они есть, используйте обычный канал связи, который используют разработчики (например, список рассылки или канал IRC или что-то подобное). В любом случае, каждому мультиразработчику нужен такой предмет.
С помощью git вы можете сделать (даже если для этого сценария это не так) - использовать драйвер фильтра, при условии, что ваш коммит содержит изменения для файла с распознаваемым содержимым (у фильтра нет имени или пути файла).
Драйвер фильтра:
- объявлен в
.gitattributes
файлы (то есть, в отличие от хуков или триггеров, вы можете легко распространять их) - прикрепленный к пятну и чистому сценарию (также версионному, пятно запускается при фиксации.
- при коммите вы можете запустить любое автоматическое действие, которое вам нужно.
Опять же, смысл в том, чтобы не использовать хуки (которые вы не можете легко воспроизвести среди репозиториев), а также использовать механизм, который может быть версионирован и клонирован вокруг.
Лично я использую 2 метода:
- коммуникация первая: я говорю другим разработчикам, что нужно делать, чтобы быть в курсе (правильно, но иногда мы упускаем некоторые детали....)
- сценарий: я сделал
update
скрипт, который используется для управления обновлением всех частей моего проекта (разные каталоги, разные репозитории, разные системы контроля версий...), в этот скрипт я помещаю все операции, необходимые для поддержания правильного репозитория (я использую его для svn и Git репозитории).
Просто идея, но у вас мог бы быть триггер, основанный на шаблоне в сообщении фиксации, для отправки письма с комментарием фиксации разработчикам
выполнимо с крючками
Для файлов, где каждый разработчик должен вносить локальные изменения (например, строки подключения к базе данных и т. Д.), Я хотел бы сохранить шаблон в виде отслеживаемого файла, что-то вроде localconfig.template
, В ваших скриптах сборки / запуска у вас может быть такая логика:
if not exists localconfig then
copy localconfig.template to localconfig
else
if localconfig.template is newer than localconfig
print a big ugly warning about maybe needing to update