29 October 2008

Правильный цикл работы с версиями SVN

Website development
Я думаю многие любопытные люди уже знают, как нужно верно работать с SVN.
Но во многих статьях это описано достаточно поверхностно. Хочется немного приоткрыть завесу верного цикла версионирования, при разработке проекта, на примере TortoiseSVN.
И так, поехали

Шаг 1. Создание ветви (branch).
Для этого вам нужно создать рабочую копию версии trunk. Далее, чтобы создать ветвь жмём правой кнопкой на данной копии и в контекстном меню выбираем TortoiseSVN -> Branch/tag

В появившеся диалоговом окне введите адрес ветви (самое главное — не создавайте каталог, TSVN сам всё сделает). Так же обязательно введи короткое описание ветви (это является очень хорошим тоном). Если вы сразу хотите приступить работать с ветвью, то отметьте Switch working copy to branch/tag. Тогда ваша рабочая копия будет являться копией, находящейся на сайте

Вот и всё. Ветвь готова.
Шаг2. Возвращение в trunk
Этот шаг для многих очень тяжёлый для начинающих. Чтобы ваши изменения появились в trunk (а они должны там появиться) нужно произвести операцию, известную как Merge.
Итак, поехали.
Создайте обособленно от всех ваших текущих рабочих копию ещё одну копию trunk. Это делается для того, чтобы ваша текущая рабочия копия и её изменения не побились.
На рабочей копии, в контекстном меню, найдите TortoiseSVN -> Merge:

Выберите Merge a range of revisions в появившемся диалоговом окне. Если такого окна не появилось — значит пора обновить TSVN.

Reintegrate a branch тоже справедлива, то есть одно но — далеко не все svn-сервера способны с этим работать (у меня, к сожалению, пока, заставить не получилось). Поэтому мы и воспользуемся проверенным и работающим везде методом.
В новом диалоговом окне нужно нужно указать путь до вашей ветви (URL to merge from) и диапазон ревизий.
Важно! Не указывайте лишь HEAD ревизию — в данном случае сливаться эти версии будут от первой до последней ревизии. Практика показала, что страшного ничего не произойдёт, но всё-таки лучше предостеречься. К тому же, если указать ревизии, то это будет просто быстрее.

В следующем диалоговом окне опции уже идут по вашему усмотрения (но прежде ознакомьтесь со справкой по TSVN). Если вы не уверены, то вы можете посмотреть предварительный результат при помощи кнопки Test Merge. По нажатию на Merge произойдёт слитие всех изменений из ветви в вашу рабочую копию trunk.
Теперь осталось исправить конфликты, убедиться что всё хорошо и делать commit вашей рабочей версии trunk на сервер.
Я весьма советую указывать ревизии, которые вы мержили, в логе сообщений. Так вы не потеряетесь среди ревизий, а для членов вашей комманды будет указатель.
Формат примерно такой:
5000-5010 from ARTICLE1
5000-5010 — это ревизии, ARTICLE1 — имя ветви.
Ну вот и всё. Когда работа на ветвью завершена — данный цикл начинается вновь.
Некоторые утверждают, что после окончания работы с бранчем, его нужно удалить. Здесь уже решайте сами
С уважением, blog.artsofte.ru
Удачи в разработках!
Tags:snvbranchtag
Hubs: Website development
+36
23.2k 175
Comments 56
Popular right now
Тренажер product-менеджера
December 3, 202028,900 ₽SkillFactory
SEO-специалист
December 7, 202064,900 ₽Нетология
UX-дизайнер
December 7, 202047,940 ₽Нетология
iOS-разработчик с нуля
December 7, 202070,740 ₽Нетология
Top of the last 24 hours