Моя команда использует 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, чтобы мы могли избавить себя от этой головной боли и убедиться, что все всегда работают с теми версиями кода, которыми они должны быть!
Спасибо!