На днях коллега поинтересовался - какая стратегия SVN используется у нас при работе с хранилищем. Ответить было нечего, так как это понятие начисто стёрлось у меня из памяти. Хотя как выяснилось при дальнейшем поиске информации, я об этом когда-то читал.
Смысл термина "стратегия использования SVN" в том, как именно в хранилище sVN именуются каталоги(branches и tags) проекта, а также когда и куда сливаются(merge) ветки.
Описание типового шаблона из руководства svn:
SVN.Ветвление и слияние.Типовые примеры
Хорошее простое изложение с примерами можно посмотреть тут:
Стратегии использования SVN
Я для себя сформулировал смысл так:
Простой случай (то, что используется у нас):
- для ошибок и фич создаётся branch, и потом эта ветка сливается в trunk;
- при фиксации, создаётся tag.
Более сложный случай (как-раз описан в руководстве svn):
- для релиза создаётся branch (1.x-stable);
-- здесь правятся ошибки этого релиза
-- для каждой передачи всё фиксируется в tags (1.x.1, 1.x.2)
-- всё сливается в trunk
- для новых фич создаётся новая ветка (1.(x+1))
-- здесь ведётся разработка новой функциональности
-- сюда сливается всё из trunk (чтобы попали исправления ошибок из релизов)
-- в конце эта ветка сливается в trunk
-- на основе trunk после этого создаётся новый tags/1.(x+1)
Для себя сделал ещё напоминающую табличку: