В разумном «объединении только для мастеринга» git workflow (например, gitflow) - все изменения происходят в ветвях, которые в свою очередь объединяются (возможно, как часть запроса Pull) - как мне обрабатывать управление версиями?Как объединить управление версиями с merge-only для управления потоком git?
Для пометки, я легко могу git tag
конкретного слияния, не имеет большого значения.
Но многие фреймворки приложений полагаются на файл версии (например, package.json
или gemspec
или даже пользовательские файлы).
Я вижу несколько вариантов:
- Измените файл как часть отрасли. Это не очень хорошо, так как вы редко знаете заранее, какая версия сначала будет объединена, особенно с большой командой со многими филиалами, работающими параллельно.
- Изменить файл после совершить. Это не очень удобно, так как я теперь поручаю освоить, и b-automatic CI/CD захватит предыдущую фиксацию и отпустит ее, но у нее есть старая версия и c- с 2 коммитами для овладения одной версией, можно проверить неправильную версию; легкая человеческая ошибка.
- Сделайте файл версии шаблоном и автоматически сгенерируйте его из тега git. Это тоже не здорово, так как локальная оснастка будет ломаться на нем (попробуйте запустить
npm <anything>
с недопустимымpackage.json
), и репо больше не может само стоять как атомный блок.
Есть ли стандартный способ сделать это, когда управление версиями находится в файле, который является частью коммита?
Большая часть этого у меня есть, спасибо @IrLED. Ключ к вашему предложению состоит в том, чтобы файл версий был изменен только CI/CD?Проблема в том, что там часто гораздо больше, чем просто версия. Подумайте «package.json» или «Gemfile». Многое из этого законно необходимо изменить во время нормального процесса dev; требуется только одно поле. – deitch
> Ключ к вашему предложению состоит в том, чтобы файл версий был изменен только CI/CD? Да, в этом суть. Чтобы отделить защищенную часть от общедоступной, вы можете выполнить некоторую предварительную обработку 'package.json' - вставить значение из файла ver. – IrLED
Мне нужно подумать, что немного. Для этого потребуется некоторая довольно хрупкая логика - для каждого типа файлов - чтобы пользователи могли изменять все, кроме одной строки. – deitch