Использование SVN при разработке нескольких выпусков

Моя команда использует SVN для управления исходным кодом. Мне дали задание посмотреть, есть ли способ улучшить то, как мы используем SVN.

Я прочитал большую часть книги по SVN и провел много исследований о том, как другие используют SVN.

Я собираюсь сделать обзор того, как мы используем svn, и, надеюсь, у кого-нибудь есть для меня предложения.

Во-первых, у нас выпускается раз в месяц или два. Итак, в настоящее время мы используем магистраль в качестве производственной копии кода и создаем ветку выпуска для каждой запланированной доставки и для каждого производственного исправления.

Обычно у нас две, а иногда и три запланированных доставки одновременно. Например, я могу писать код для выпуска 3, но я или другие тестирую выпуск 2 и делаю окончательные исправления ошибок для выпуска 1. В то же время может происходить производственное исправление.

Прямо сейчас мы делаем много слияний, чтобы ветки (каждый выпуск) были синхронизированы. Для выпуска 3 нужен код из 2 и 1, но мы, очевидно, не хотим, чтобы новый код из выпуска 3 попал в выпуск 1. Поэтому мы бы сделали серию слияний от выпуска 1 к выпуску 2 и из выпуска 2 к выпуску 3. Это придется регулярно повторять, что кодировщики в выпуске 3 имеют и исправления ошибок из 2 или 1.

Каждый раз, когда выпуск или производственное исправление попадает в производство, мы объединяем код обратно в ствол.Затем мы объединяем его из основной ветки (или ветки выпуска, которая только что была запущена в производство) во все активные ветки.

Как вы могли заметить, мы уделяем много времени слиянию.

Это большая работа для человека, контролирующего систему управления версиями. Они постоянно выполняют слияние и следят за тем, какие ветви и где сливаются.

Похоже, SVN как наша система управления исходным кодом (я знаю, что на самом деле это только контроль версий, но мы используем его для управления исходным кодом) должна помочь нам в этом.

Например, было бы замечательно, если бы разработчик, работающий над выпуском 3, знал, когда что-то изменилось в выпуске 2, выпуске 1 или основной ветви, и этот разработчик мог быть автоматически уведомлен, и он мог бы выполнить слияние, чтобы внести изменения в свой ветка. Но вместо этого кто-то должен знать, что все слияния нужно выполнять вручную ... Похоже, что человек делает слишком много работы, а машина делает недостаточно.

Есть ли у кого-нибудь идеи о том, как мы могли бы лучше использовать возможности SVN, чтобы избавить себя от этой головной боли и убедиться, что все всегда работают с теми версиями кода, которыми они должны быть!

Спасибо!

6
задан A.H. 22 September 2011 в 19:52
поделиться