Содержание
Ветвление, назначение меток и слияние понятия свойственные практически всем системам управления версиями. Если вы плохо знакомы с этими понятиями, то в этой главе мы предлагаем хорошее введение. Если эти понятия вам знакомы, тогда надеемся что вам будет интересно узнать как эти идеи реализует Subversion.
Ветвление это фундаментальное понятие управления версиями. Если вы доверии Subversion управлять своей информацией, то эта функция от которой со временем вы будете зависеть. Эта глава предполагает, что вы уже знакомы с основными понятиями Subversion (Глава 2, Основные понятия).
Предположим, что ваша работа заключается в сопровождении документа, например какого-то руководства, для подразделений в вашей компании. Однажды различные подразделения запросят у вас одно и тоже руководство, но с несколькими частями которые будут немного «подредактированны», так как задачи у них немного различаются.
Как вы поступите в такой ситуации? Вы делаете очевидную вещь: создаете вторую копию документа и начинаете сопровождать две отдельных копии. Когда какое-то из подразделений просит вас внести небольшие изменения, вы включаете их или в одну копию или в другую.
Как правило, вам будет нужно вносить изменения в обе копии. Например, если вы обнаружили опечатку в одной копии, скорее всего, эта же опечатка присутствует и во второй копии. Два документа в общем то одинаковые; отличаются они незначительно в отдельных, специфичных моментах.
В этом заключается основная идея ветки — а именно, направления разработки, которое существует независимо от другого направления, однако имеющие с ним общую историю, если заглянуть немного в прошлое. Ветка всегда берет начало как копия чего-либо и двигается от этого момента создавая свою собственную историю (см. Рисунок 4.1, «Ветки разработки»).
У Subversion есть команды, которые помогают сопровождать параллельные ветки файлов и директорий. Эти команды позволяют создавать ветки, копируя информацию и запоминая, что копии относятся друг к другу. Кроме того эти команды помогают дублировать изменения из одной ветки в другую. Наконец, они могут сделать отдельные части рабочей копии отвечающими отдельным веткам, что позволит вам «смешивать и согласовывать» различные направления разработки в своей каждодневной работе.