В чем разница между тегом и веткой в ​​SVN? - PullRequest
55 голосов
/ 04 августа 2011

Я работаю с ветвями SVN и TRUNK в течение многих лет, но никогда с TAG

Может кто-нибудь посоветовать, в чем главное отличие? Какова основная цель маркировки?

Ответы [ 4 ]

64 голосов
/ 04 августа 2011

Это от http://svnbook.red -bean.com / ru / 1.5 / svn.branchmerge.tags.html

Но подождите: разве эта процедура создания тега не такая же? Процедура, которую мы использовали для создания филиала? Да, на самом деле, это так. В Subversion, нет разницы между тегом и веткой. Оба просто обычные каталоги, которые создаются путем копирования. Так же, как с ветки, единственная причина, по которой скопированный каталог является «тегом», заключается в том, что люди решили так относиться к этому : пока никто никогда фиксирует в каталог, он навсегда остается снимком. Если люди начните совершать это, это становится ветвью.

Технически, это то же самое, что и ветка, но концептуально мы воспринимаем это как снимок. В моих репозиториях SVN я знаю, что ветки будут включать большие функции, которые могли или не могли быть объединены в ствол, но я использую теги только для отметки версий выпуска.

23 голосов
/ 04 августа 2011

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

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

Тег используется для «маркировки» релиза.Допустим, я работаю только на багажнике.Когда я отправляю V1 клиенту, я создаю для него тег V1.Затем я работаю на V2.Когда у клиента возникает проблема с V1, я могу просто проверить тег и начать отладку проблемы в той же версии, что и у клиента.Вы можете проверить в теге, но вы не должны .Если вам нужно сделать выпуск V1.1, вы создаете ветку из той же версии, что и тег V1, и фиксируете исправления к нему, и отмечаете его, когда он выпускается как V1.1.

8 голосов
/ 08 августа 2011

«Магистраль» и «Филиалы» обычно используются для активной и текущей разработки.Это где пользователи фиксируют / проверяют файлы.Обычно там происходит много активности.

С другой стороны, «теги» обычно используются для создания моментального снимка и вехи вашей разработки.Для вашей команды не совсем идеально делать какие-либо коммиты / извлечения для папок с тегами.

Вот два примера применимости тегов:

  1. Архивирование веток - Когдаветка Release или Feature была закончена или полностью удалена, вы обычно удаляете ветку, и это фактически скрывает ее от ревизии HEAD.Некоторые люди обычно не удаляют эти папки для архивации, поскольку они предпочитают видеть все свои выпуски / проекты.Это, однако, может вызвать затруднение навигации по дереву веток.Вот почему лучше хранить только активные и работающие выпуски и функции проекта в разделе HEAD для папки филиалов.Вы можете создать копию тега последней ревизии этих заархивированных веток, чтобы вы могли видеть их в ревизии HEAD.Таким образом, вы можете получить быстрый снимок последней ревизии ветки до ее архивирования, а также сохранить порядок в дереве ветвей.

  2. Сохранение этапов - Проекты обычно имеют много этапов:развитие.Dev, UT, QA, pre-QA, post-QA, BAT, post-BAT, PROD, pre-PROD, post-PROD.Вы можете использовать теги, чтобы сделать снимок вашей разработки на каждом важном этапе, вместо того, чтобы полагаться на номера редакций, даты или комментарии.

Теги могут помочь при организации вещей, но иногда могут быть и хаотичными.Важно иметь стандартное соглашение о присвоении имен папкам тегов.

2 голосов
/ 04 августа 2011

Теги и ветки технически эквивалентны.Разница в том, как они обычно используются.

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

Вы используете теги для создания копии кода только для чтениятак что вы можете удобно получить этот код позже.Вот как это используется с ежедневными сборками.Каждая ежедневная сборка просто создает тег с именем, содержащим этот номер сборки.Как только вам нужно получить исходники этой давней сборки (например, чтобы воспроизвести ошибку), вы просто экспортируете их из этого тега.

...