Работа с ветвями

В целом работа на ветви не отличается от работы на основной линии разработки (trunk). Специфичные команды требуются только для действий, в которых задействовано более одной ветви. К таким командам относятся (помимо команды создания ветви svn copy):

·svn switch - переключение рабочей копии на другую ветвь - используется для того, чтобы переключить имеющуюся рабочую копию на другую ветвь. В результате переключения служебные данные рабочей копии изменяются так, как будто эта рабочая копия получена операцией svn checkout из той ветви, на которую она переключена. При этом объём сетевого трафика меньше, чем при svn checkout, так как передается только разница между данными в рабочей копии и целевой ветвью;

·svn merge - копирование набора изменений между ветвями - используется для слияния ветвей.

Как правило, полный цикл работы с ветвями включает следующие этапы:

·создание ветви (svn copy);

·переключение имеющейся рабочей копии на ветвь (svn switch) или создание новой рабочей копии путём закачки (svn checkout);

·изменение файлов и директорий в рабочей копии, фиксация этих изменений (svn commit);

·копирование в ветвь свежих изменений из родительской ветви, сделанных после ветвления (svn merge, svn commit);

·копирование изменений из ветви в родительскую ветвь (svn merge, svn commit);

·удаление ветви (svn delete), если её жизненный цикл закончен.

Слияние- Копирование изменений между ветвями

Слияние в Subversion - это применение к ветви набора изменений, сделанных на другой (или той же самой) ветви. Для осуществления слияния необходимо использовать команду svn merge - она применяет набор изменений к рабочей копии; затем нужно зафиксировать внесённые изменения (svn commit).

Терминология, связанная со слиянием, несколько запутана. Термин слияние является не совсем точным, поскольку как такового объединения ветвей не происходит. Кроме того, не следует отождествлять слияние и команду svn merge: во-первых, для слияния нужно выполнить (помимо svn merge) разрешение конфликтов и фиксацию, во-вторых, применение svn merge не ограничивается слиянием.