Думайте об этом так: вы хотите «ствол», который является основной версией всего кода вашего продукта.Но вы не хотите все испортить, постоянно внося в него изменения - однажды вы захотите получить последнюю версию продукта, и, к сожалению, разработчик уже на полпути к внесению изменений, которые непока работаю.Вдобавок ко всему, представьте, что вы обнаружили проблему с последней версией, и вам нужно вместо этого взять последнюю версию (одна, которая, как вы знаете, работает).
Что ж, ответ здесь - ответвления.В Subversion есть 2 разных типа веток, называемых ветвями и тегами.Они на самом деле одно и то же, но люди называют их разными именами, чтобы отличить использование, к которому вы их применили.
У вас есть транк, как и раньше, но теперь, когда разработчик хочет внести изменения, вы сначала делаетекопия сундука в новую ветку.Разработчик может работать все, что он хочет в этой отрасли безопасно.Как только он закончил, вы копируете изменения обратно в багажник.У Svn (и всех остальных) есть инструменты, которые помогут объединить изменения обратно в транк.
Когда у вас есть «готовая» версия, которую вы хотите сохранить, вы делаете то же самое - вы копируете ее в ветку тегов с уникальным именем (например, Release 1).Разница в том, что вы никогда не меняете эту ветку.Он фиксированный, постоянный и предоставляет вам способ идентификации кода (и только кода), который составлял эту версию.
Вот и все.У вас может быть несколько веток для разработки, и вы можете переходить от помеченного выпуска к исправлению ошибок, или вы всегда можете переходить от ствола к созданию исправлений - то, как вы это сделаете, зависит от того, как вы хотите работать.