зачем использовать ветки в svn? - PullRequest
3 голосов
/ 01 апреля 2010

Я знаю, что вы можете организовать ваши файлы в соответствии с этой структурой в SVN:

Ствол ветви теги

что вы копируете ствол в папку в ветках, если хотите иметь отдельную линию разработки. позже вы объедините эту ветку с магистралью.

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

В чем преимущества создания филиала?

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

заранее спасибо

Ответы [ 5 ]

10 голосов
/ 01 апреля 2010

Представьте, что вы работаете только с внешней линией, и в настоящее время происходят серьезные изменения, и пройдет 2 месяца, прежде чем эти изменения будут завершены и протестированы для выпуска. Теперь, через 3 недели после этого процесса, в последнем основном выпуске программного обеспечения обнаружена критическая ошибка. Для исправления этой ошибки необходимо внести незначительное изменение, а незначительное изменение должно основываться на коде, который создал последний основной выпуск. Однако все, что у вас есть, - это магистраль, в которой есть серьезные непроверенные изменения. Лучшее, что вы можете сделать, - это использовать дату / время или теги, чтобы вернуться назад и попытаться создать копию исходного кода, который использовался для последнего основного выпуска.

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

7 голосов
/ 01 апреля 2010

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

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

Надеюсь, это поможет:)

2 голосов
/ 01 апреля 2010

У меня есть запись в блоге на эту тему, которая может помочь пролить дополнительный свет на то, когда / почему использовать ветки и как именно они реализованы в Subversion. http://www.sublimesvn.com/blog/2009/11/what-are-branches-tags-and-trunk-in-subversion/

2 голосов
/ 01 апреля 2010

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

0 голосов
/ 08 марта 2012

Если вам нужно запустить несколько выпусков, когда вы достигнете определенного этапа, вы обнаружите, что ветка необходима, вы можете определить другую ветвь для другого выпуска. это становится более ясным о структуре кода datebase .... .... Вам не кажется, что это так?

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