Должен ли я вручную создавать магистраль / и ветви / папки с Subversion, или эти папки создаются сами по себе?

#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.