2010-03-31 3 views
2

я знаю, что вы могли бы организовать свои файлы в соответствии с этой структурой в СВНЕ:Зачем использовать ветки в svn?

ствола ветвь тегов

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

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

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

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

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

+0

http: // stackoverflow.com/вопросы/34975/стратегии ветвления http://stackoverflow.com/questions/2100829/when-should-you-branch http://stackoverflow.com/questions/16142/what-do-branch-tag- и-trunk-really-mean http://stackoverflow.com/questions/35646/do-you-continue-development-in-a-branch-or-in-the-trunk – Zoredache

ответ

9

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

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

+0

Также обратите внимание, что вы можете сохранить отдельный копию филиала как моментальный снимок этого выпуска. Чтобы вы навсегда имели ветвь v1.1 и ветвь 1.2. Вы можете адаптировать это для разных «изданий» вашего продукта, если у вас разные уровни лицензирования. Подобные вещи могут быть достигнуты с помощью тегов, хотя, по-моему, есть причуды для каждого подхода, и я не могу запомнить их всех. Поэтому я не могу сказать, лучший ли это подход или нет. – AaronLS

6

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

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

Я надеюсь, что помогает :)

2

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

0

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

Смежные вопросы