Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

Правильно, тег - это просто копия:

svn copy trunk tags/BLAH

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

Ответ 4

TortoiseSVN help объясняет это довольно красиво:

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

Ответ 5

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

Ответ 6

пример:

$ svn copy https://jorgesysgr.com/svn/AndNews/branches \
           https://jorgesysgr.com/svn/AndNews/tags/release-1.1 \
           -m "release 1.1 Android News."

Дополнительная информация:: Создание простого тега