#svn #version-control
#svn #управление версиями
Вопрос:
У меня возникли некоторые проблемы с пониманием чего-то довольно простого в subversion:
Если я хочу иметь репозиторий subversion с магистралью и несколькими ответвлениями, должен ли я вручную создавать папки trunk/
и branches/
, и с этого момента я несу ответственность за поддержание всего в порядке и в правильном месте?
Я могу привести конкретный пример для подтверждения вышеупомянутого вопроса:
Допустим, я создал репозиторий Subversion и отправил его в какую-то папку
F
.
F
на данный момент пуста (на самом деле в ней есть эта папка .svn, но это вряд ли имеет значение). Я добавляю пару файлов вF
и нажимаю commit.Теперь я хочу создать ветку
B
. Я (через Tortoise) нажимаю команду Branch, но она запрашивает у меня папку, в которую скопировать мои данные. На данный момент у меня нет ни одной папки, в которую можно скопировать данные!
С ветвлением в системах контроля версий меня познакомил git, поэтому мой мыслительный процесс определяется тем, как работает система ветвления git.
Спасибо
Ответ №1:
Вы создаете /branch
, /tag
и /trunk
папки. И да, после этого вы несете ответственность за размещение вещей в соответствующем месте.
Ветви не являются чем-то особенным в SVN; вы можете думать о trunk как о ветке.
Теги являются особыми. Они должны быть помечены как моментальные снимки кода, доступные только для чтения, который был развернут.
Комментарии:
1. Хотя следует отметить, что некоторые клиенты SVN (например, TortoiseSVN, Subclipse) помогут вам, используя соответствующие папки по умолчанию и предупреждая о возможных ошибках. Например, Subclipse предупредит вас, если вы попытаетесь зафиксировать в теге.
2. Еще один вопрос: означает ли это, что в отличие от того, что происходит с git, subversion не имеет основной концепции ветвления? Как вы выразились, кажется, что ветви в subversion — это просто то, что мы, люди, вызываем к специальным папкам, которые у нас есть в нашем репозитории.
3. Еще один вопрос: … ответ на это был бы утвердительным, именно поэтому инструменты, упомянутые sleske, предупреждают вас об «ошибках», но не помешают вам это сделать.
Ответ №2:
Да, ветви / теги в SVN не являются особыми (в отличие от других систем контроля версий, таких как ClearCase и т.д.). Это просто способ упорядочить материал и привести его в соответствие со стандартами.
Как было сказано ранее, когда вы создаете репозиторий, вы несете ответственность за создание папок tags / branches / release.