Как делаются теги в Subversion? - PullRequest
       22

Как делаются теги в Subversion?

14 голосов
/ 02 сентября 2008

Я знаю, как использовать теги в Subversion. Я создаю тег каждый раз, когда добираюсь до этапа выпуска.

Я не совсем понимаю, как они работают.

Является ли тег просто копией, сделанной из какой-либо ревизии, которую я указал? Или тег больше похож на ссылку, где внутренняя подрывная деятельность просто говорит GO TO /trunk/project/ Revision 5 или что-то еще.

Команда для создания тега (svn copy), похоже, подразумевает, что это копия, но я видел, как другие люди пишут, что Subversion ничего не копирует.

Скажите, что я выбрасываю только HEAD-версию репозитория. Мне нет дела до истории, кроме тегов. Эти теги сброшены вместе с остальной частью ревизии Head?

Наконец, все это просто магия программирования, которую я не хочу знать.

Ответы [ 6 ]

12 голосов
/ 02 сентября 2008

Да, svn-копия (независимо от того, рассматриваете ли вы ее как тег, ветвь или копирование файла в транк) - это одно и то же. SVN внутренне создаст указатель на исходное местоположение в этой ревизии. Если вы затем внесете изменения в копию (что вы, скорее всего, сделаете, если это ветвь или скопированный файл в стволе, но не должны делать это для тегов), SVN будет хранить только то, что было изменено, вместо создания совершенно нового копия.

4 голосов
/ 02 сентября 2008

Книга Subversion находится онлайн в полной и бесплатной форме: http://svnbook.red -bean.com / о / 1,4 / СВН-book.html # svn.branchmerge.tags

И да, вы в основном делаете svn копию. Subversion достаточно умен, чтобы использовать механизм стиля копирования при записи для экономии места и минимизации времени передачи.

3 голосов
/ 02 сентября 2008

Да, тег - это просто копия:

svn copy trunk tags/BLAH

Когда люди говорят, что SVN на самом деле ничего не копирует, они подразумевают, что хранилище не должно дублировать данные. Он использует нечто похожее на символические ссылки для отслеживания копий.

2 голосов
/ 23 января 2014

Справка TortoiseSVN объясняет это довольно хорошо:

Subversion не имеет специальных команд для ветвления или тегирования, но вместо этого использует так называемые «дешевые копии». Дешевые копии похожи на жесткие ссылки в Unix, что означает, что вместо создания полной копии в хранилище создается внутренняя ссылка, указывающая на конкретное дерево / ревизию. В результате ветки и теги создаются очень быстро и практически не занимают места в хранилище. [...] Если вы изменяете рабочую копию, созданную из ветви и фиксируете, все изменения переходят в новую ветвь, а не в ствол. Хранятся только модификации. Остальное остается дешевой копией.

1 голос
/ 02 сентября 2008

Тег - это ссылка на набор номеров ревизий во время создания тега - это то же самое, что внутренняя ветвь или копия.

0 голосов
/ 23 августа 2013
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...