Что такое ствол, ветка и тег в Subversion?

Возможный дубликат:
Что такое ветвление , тег и ствол действительно означают?

Что такое ствол, ветвь и тег в Subversion и как лучше всего их использовать?

Какие инструменты я могу использовать для Subversion в Visual Studio 2008?


person Hemanshu Bhojak    schedule 30.03.2009    source источник
comment
... в сочетании с: stackoverflow.com/questions/453481 /   -  person Jørn Schou-Rode    schedule 17.03.2010


Ответы (9)


Ствол - это основное направление разработки в репозитории SVN.

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

Наконец, теги - это маркеры для выделения заметных изменений в истории репозитория, обычно таких как «это было выпущено как 1.0».

См. HTML-версию "Контроль версий с помощью Subversion", особенно Глава 4: Ветвление и слияние или купите в бумажном виде (например, в amazon) для углубленного обсуждения технических деталей.

Как и другие (например, Питер Нойбауэр ниже), основная реализация в виде каталогов /tags /branches и /trunk - это только обычный и никаким образом не поддерживается инструментами. Нарушение этих соглашений приводит к путанице, так как это нарушает привычки и ожидания других людей, обращающихся к репозиторию. Следует проявлять особую осторожность, чтобы избежать внесения новых изменений в теги, которые следует заблокировать.


Я использую TortoiseSVN, но без интеграции с Visual Studio. Я все время держу диалоговое окно «Проверить наличие изменений» открытым на втором мониторе, поэтому я могу отслеживать, какие файлы я коснулся. Но см. Вопрос «Лучшие инструменты SVN» для получения дополнительных рекомендаций.

person David Schmitt    schedule 30.03.2009
comment
Я думаю, что анкх для меня лучший. Я могу делать практически все прямо из Visual Studio. Спасибо!!! - person Hemanshu Bhojak; 01.04.2009
comment
По сути, ответы @ Peter-Neubauer и KOGI (ниже), возможно, ближе к истине. Как они отметили, ответ Дэвида Шмитта здесь просто объясняет соглашение о том, как обычно используются эти каталоги - но на самом деле нет ничего волшебного в самих этих папках или в том, как они используются. . Спасибо Дэвиду Шмитту, но поставили +1 остальным за то, что подчеркнули эту решающую разницу. - person rondoagogo; 02.01.2013
comment
Возможно, ОП спрашивал о лучших практиках, а не о их (ИМХО, довольно слабой) реализации. - person David Schmitt; 09.01.2013
comment
Моя одна копейка стоит добавить сюда; Единственная проблема, с которой я до сих пор сталкивался с репозиторием, нарушившим это соглашение, была, когда я пытался импортировать репо в git, используя svn-git. Просто не нравится, если ветки неправильно сформированы. Итак, вкратце, когда дело доходит до таких инструментов, как svn-git (которые вам, возможно, придется использовать в будущем), они будут настроены для работы с репо, которое следует этим соглашениям, и в противном случае могут отказаться работать правильно / с пользой. - person ϹοδεMεδιϲ; 10.08.2014

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

person Peter Neubauer    schedule 30.03.2009

Ответ Дэвида Шмитта очень хорошо резюмирует, но я думаю, важно отметить, что для SVN термины «ветвь», «тег» и «ствол» ничего не значат. Эти термины являются чисто семантическими и влияют только на то, как мы, как пользователи системы, обращаемся с этими каталогами. Их можно было легко назвать «основными», «тестовыми» и «выпусками». Пока каждый, кто пользуется системой, понимает, как правильно использовать каждый раздел, на самом деле не имеет значения, как они называются.

person KOGI    schedule 30.03.2009
comment
Да, это правда. Subversion не ограничивает вас такими соглашениями об именах. Это просто рекомендация. Спасибо за ответ, помогло. - person Hemanshu Bhojak; 01.04.2009
comment
Так знает ли, например, подрывная деятельность понятие пересмотра? Является ли каждый коммит всего лишь снимком всего репозитория? Как узнать, удаляет ли кто-то по ошибке 50% меток выпуска во время одной из проверок? Разве вам не пришлось бы постоянно за этим следить? - person ; 05.05.2013
comment
@ebyrob давно не использовал SVN, но IIRC, SVN отслеживают различия между ревизиями, а НЕ целые снимки. Тем не менее, и в любой VCS есть возможность удалить теги выпуска (или любой другой файл / папку, если на то пошло), которые вы, возможно, не захотите удалять. Я помещаю удаление в кавычки, потому что оно никогда по-настоящему не исчезло, оно всегда в истории и всегда может быть восстановлено (за исключением, может быть, 1 очень случайного случая в GIT, я думаю) - person KOGI; 06.05.2013

Отличное место для начала изучения Subversion - это http://svnbook.red-bean.com/ .

Что касается инструментов Visual Studio, мне нравится AnkhSVN, но я не пробовал < плагина href = "http://www.visualsvn.com/" rel = "nofollow noreferrer"> VisualSVN пока нет.

VisualSVN полагается на TortoiseSVN, но TortoiseSVN также является хорошим дополнением к Ankh IMHO.

person Quintin Robinson    schedule 30.03.2009
comment
Откуда вы взяли, что Анк полагается на Черепаху? Афаик, что это не так, только для VisualSVN. - person Joey; 30.03.2009
comment
Не знаю, откуда у меня такое впечатление, но я действительно думал, что это необходимо. В любом случае, я считаю, что Черепаха в качестве комплимента - это хорошо, но спасибо, что заставили меня разобраться в этом! - person Quintin Robinson; 30.03.2009
comment
У меня анх установлен без черепахи. - person Hemanshu Bhojak; 31.03.2009

Чтобы использовать Subversion в Visual Studio 2008, установите TortoiseSVN и AnkhSVN.

TortoiseSVN - это действительно простая в использовании программа для контроля версий / контроля версий / контроля версий для Windows. Поскольку это не интеграция для конкретной IDE, вы можете использовать ее с любыми инструментами разработки, которые вам нравятся. TortoiseSVN можно использовать бесплатно. Вам не нужно брать ссуду или платить зарплату за полный год, чтобы ею пользоваться.

AnkhSVN - поставщик Subversion SourceControl для Visual Studio. Программное обеспечение позволяет выполнять наиболее распространенные операции контроля версий непосредственно из среды Microsoft Visual Studio IDE. С AnkhSVN вам больше не нужно выходить из среды IDE для выполнения таких задач, как просмотр состояния исходного кода, обновление рабочей копии Subversion и фиксация изменений. Вы даже можете просмотреть свой репозиторий и подключить свой любимый инструмент сравнения.

person gimel    schedule 30.03.2009

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

TortoiseSVN имеет хорошую документацию и отличный инструмент для сравнения.

Я использую Visual Studio, и я использую VisualSVN и TortoiseSVN.

person Mike_G    schedule 30.03.2009

Если вы новичок в Subversion, вы можете прочитать этот пост на SmashingMagazine.com с соответствующим названием Окончательный обзор для контроля версий с помощью SubVersion.

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

Он охватывает инструменты (многие из них совместимы с окнами) и упоминает AnkhSVN как плагин, совместимый с Visual Studio. В комментариях также упоминается VisualSVN в качестве альтернативы.

person Kevin Williams    schedule 30.03.2009

Отличная бесплатная утилита, которую можно использовать, если у вас есть команда разработчиков, - это SVN Monitor. Он служит пультом для вашего дерева, сообщая вам, когда есть обновления, возможные конфликты и т. Д. Однако это не так полезно для разработчика-одиночки.

person swilliams    schedule 30.03.2009

Хорошей книгой по Subversion является Прагматический контроль версий с использованием Subversion где объясняется ваш вопрос, и он дает гораздо больше информации.

person eKek0    schedule 30.03.2009