Важная вещь, которую следует помнить с SVN, по сравнению с другими системами контроля версий, такими как CVS или Git, заключается в том, что SVN на самом деле не имеет концепции, разветвления или тегирования. Что касается SVN, то это всего лишь куча папок и файлов. Так что, хотя вы увидите, что многие люди используют установку веток / тегов / ствола, это не обязательно, и вы можете отклониться от этого, если захотите.
Вообще говоря, «ствол» - это то место, где вы продолжаете активно развиваться. Так вот, где вы делаете все свои коммиты. Независимо от того, заказываете ли вы ствол или используете вместо него теги / ветви, полностью зависит от вас.
Ветви, как я их использовал, обычно нужны, когда вам нужно внести большие изменения в ваше приложение, но не хотите, чтобы они были в транке, потому что вы хотите иметь возможность продолжать разработку против транка, не развертывая другие изменения. В этом случае у вас может быть что-то вроде
\repo
\trunk
\branches
\version_two
В этом случае вы можете разрабатывать как trunk, так и version_two по отдельности, и, предполагая, что ваш живой сайт является извлечением ствола, вам не нужно беспокоиться о «случайном» разрыве вашего живого сайта с другими вашими изменениями. И когда эти изменения сделаны и готовы, вы можете просто слить их обратно в транк, когда захотите.
Теги можно использовать аналогично ветвям, вместо того чтобы проверять транк и просто использовать svn up для обновления вашего хранилища, вместо нескольких тегов, каждый из которых представляет один выпуск. Так что ваш репо может выглядеть примерно так:
/repo
/trunk
/branch
/version_one
/version_two
/tags
/1.0.0
/1.0.1
/1.1.0
В этом случае общая идея заключается в том, что, когда вы готовы выполнить развертывание, вы делаете
svn copy
Чтобы скопировать транк в тег (в этом случае следующий может быть 1.1.1, 1.2.0, 2.0.0 и т. Д.). Как вы называете свои теги, это полностью зависит от вас, и, опять же, зависит от вашего проекта и требований. С этим маршрутом вместо обычного 'svn up' вы должны сделать svn switch. Таким образом, вы должны развернуть с
svn switch https://svn.yourrepo.com/repo/tags/1.1.0
Коммутатор автоматически обновляет, добавляет и удаляет соответствующие файлы.
Когда речь идет об одном репо для многих проектов или отдельных репо для каждого, я являюсь сторонником одного репо на проект. Это обеспечивает дополнительные преимущества простого управления доступом к нему. Но самое главное это означает, что у каждого проекта есть отдельная история коммитов и отдельные журналы. Это м