Многие сейчас переходят с Subversion на Git. Многие считают, что merge в Subversion практически невозможно использовать... и так далее.
Эта статья для тех, кто еще пользуется Subversion, но только планирует перейти на Git.
После прочтения статьи просто взвесьте все за и против, которые Вы получите при переходе на Git.
Я ни в коей мере не наезжаю на Git, но для меня существует ряд проблем при переходе на новую систему контроля версий:
- Перенести весь код с svn-репозитария в git-репозитарий с сохранением всей истории изменений.
- Обучить всех сотрудников работе с новой системой контроля версий.
- Найти адекватные инструменты для работы с Git под Windows, MacOS, Linux. Например, я использую модуль Subclipse для Eclipse и достойной замены пока не вижу.
- Принять новую схему работы с системой контроля версий. На каждый баг/таск создавать ветку...
- Изменить скрипты деплоинга и обновления проекта.
Все, что требуется от Вас, это оценить стоит ли оно того.
Готовить Subversion мы будем в два этапа ( я буду больше рассказывать "как", чем "зачем" ):
- Работа со своими ветками
- Управление релизами
Сразу замечу, что все что здесь описано, требует Subversion >= 1.6.x :
- Умный мердж появился только в subversion 1.5 (До этого, я соглашусь, мерджинг был неадекватный)
- Сокращенные пути через "^" появились в subversion 1.6
Допустим у нас есть репозитарий по адресу http://svn.myrepo.com/
И вся основная разработка ведется в http://svn.myrepo.com/trunk. (Trunk - это ствол (в переводи с англ.))
Все дополнительные ветки будут создаваться в http://svn.myrepo.com/branches/