Когда для фиксации контроля версий требуется, чтобы разработчик изменил свою собственную конфигурацию

Какой лучший способ уведомить других разработчиков, когда изменение, внесенное в контроль версий, требует от разработчика, получающего обновление, каких-то дополнительных действий, например, изменения локального файла конфигурации, не входящего в систему контроля версий?

В настоящее время я пишу это в сообщении коммита, но кажется, что это может быть легко пропущено. Какие-либо системы контроля версий предоставляют лучший способ сделать это?

Как это делают другие люди, или никогда не должно быть каких-либо необходимых изменений, которые находятся вне контроля версий?

Я использую Mercurial, но ответы от тех, кто использует другие формы контроля версий, также будет полезен.

5 ответов

Решение

Редко должны быть необходимые изменения, которые находятся за пределами контроля версий. В тех редких случаях, когда они есть, используйте обычный канал связи, который используют разработчики (например, список рассылки или канал IRC или что-то подобное). В любом случае, каждому мультиразработчику нужен такой предмет.

С помощью git вы можете сделать (даже если для этого сценария это не так) - использовать драйвер фильтра, при условии, что ваш коммит содержит изменения для файла с распознаваемым содержимым (у фильтра нет имени или пути файла).

Драйвер фильтра:

  • объявлен в .gitattributes файлы (то есть, в отличие от хуков или триггеров, вы можете легко распространять их)
  • прикрепленный к пятну и чистому сценарию (также версионному, пятно запускается при фиксации.
  • при коммите вы можете запустить любое автоматическое действие, которое вам нужно.

Опять же, смысл в том, чтобы не использовать хуки (которые вы не можете легко воспроизвести среди репозиториев), а также использовать механизм, который может быть версионирован и клонирован вокруг.

Лично я использую 2 метода:

  1. коммуникация первая: я говорю другим разработчикам, что нужно делать, чтобы быть в курсе (правильно, но иногда мы упускаем некоторые детали....)
  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
Другие вопросы по тегам