Репозиторий Subversion - это просто одно дерево файлов и папок, в которое вы можете в любое время получить любую часть этого дерева в любой версии его истории.
Как уже говорили другие теги / ветки / ствол - это всего лишь соглашение, Subversion позволяет вам копировать одну часть дерева куда-то бесплатно (почти) бесплатно, но в его ядре, вот и все.
Вы правы, что вам понадобится ветка обслуживания для вашей версии. Тег действует как ваше имя для любой конкретной версии, отправленной куда-то извне - и комментарий коммита при создании тега дает вам возможность объяснить, куда он пошел и почему (например, «публичная бета-версия», «запрос комментариев»).
Существует несколько сценариев ловушек, которые запрещают вам вносить изменения в тег, но они не будут реализованы по умолчанию, поскольку некоторые люди используют subversion совершенно другим способом (например, резервное копирование файла конфигурации и т. Д.). Subversion - это универсальный инструмент, нет «правильного» способа его использования, только строгие соглашения для обычных ситуаций.
Фактически, Collabnet начинает рассматривать, как контроль версий используется для проектов без разработки проектов . Для некоторых из них сама идея тегов ствол и ветви может быть неактуальной.
Мое соглашение, когда вы думаете о хранилище исходного кода:
- Trunk - полный список ревизий, которые могут быть выпущены для прямой трансляции
- Задача - внешнее описание задания / ошибки, которое группирует набор ревизий
- Ветка разработки - набор ревизий, которые еще не готовы к транку
- Ветка технического обслуживания - место для сбора ревизий из транка для выпуска
- Tag - именованный снимок ветки обслуживания
Теги также могут дать вам полезный URL для документации, например:
"Релиз доступен на http://svnserver/myproject/tags/1.0"
Возможно:
«Релиз доступен на http://svnserver/myproject/trunk@4483"
Но когда вы просматриваете хранилище, вы никогда не встретите @ 4483 и не поймете, что оно каким-то образом особенное.