У моих коллег и я есть аргумент в отношении ценности и использования тегов в системах выпуска/SCM. Мы ищем сообщество StackOverflow, чтобы выразить свои мысли, чтобы помочь нам решить проблему.Правильное использование тегов в SCM
Одна сторона утверждает, что теги являются ценным дополнением к управлению релизами. Пример их использования: мы делаем релиз Maven, который создает новый тег (называет его 1.0), который представляет собой снимок кода, используемый для этой версии. Этот тег должен быть ветвью READONLY. Когда ошибка должна быть исправлена, мы можем сделать копию тега в новую ветку (назовите ее 1.1). Исправлены ошибки. Эти исправления могут быть объединены обратно в Trunk, так что главная ветвь dev получит исправления ошибок. Наконец, выдается 1.1, и автоматически создается Tag 1.1. Этот цикл продолжается. Основное преимущество здесь в том, что если вам когда-либо понадобится переиздавать версию 1.0 по какой-либо причине, вы можете просто отпустить тег 1.0 с уверенностью, что никто никогда не был изменен. Кроме того, говоря «Release Tag 1.0» является более чистым, чем «Release version 1 ветви 1.0, которая является исходным 1.0 без исправлений».
Другая сторона утверждает, что теги не дают каких-либо ценных преимуществ, особенно в такой системе, как Subversion с глобальными ревизиями, которые действуют как тег в CVS. Кроме того, Subversion дает предупреждение только при совершении тега; это фактически не останавливает его. Их метод развивается в Trunk, и после релиза вы создадите Branch под названием 1.0. Вы продолжаете исправлять ошибки в Trunk, и если вам нужно переиздать исправления ошибок для производства, вы должны объединить их в 1.0 Branch и переиздать 1.0. В какой-то момент, возможно, после серьезных исправлений или функций в Trunk, вы освободите и сделаете Branch 1.1. Цикл продолжается. Если вам когда-либо понадобится освободить исходную версию 1.0, вам нужно будет проверить версию 1.0 Branch.
Очевидно, что оба метода работают. Я хотел бы услышать мысли сообщества о том, какой метод является предпочтительным и почему.
Редактировать: Я немного обеспокоен тем, что «лучший» способ зависит от базовой системы SCM. Либо соглашайтесь на Subversion на ответы, либо, если возможно, сохраните его в агностике SCM.