Варианты управления выпуском кода и функций помимо ветвления

Какие варианты у меня есть в управлении выпуском кода 2 функций A & B, оба из которых:

  • Надо работать сейчас, чтобы уложиться в срок
  • переход в клиент / сервер и базу данных
  • есть разные даты доставки месяцев друг от друга (A до B)
  • есть функции интерфейса

В какой-то момент обе функции будут жить в одном продукте.

В идеале я бы не хотел использовать функции B, если они не нужны.

Я мог бы разветвлять исходный код, но меня беспокоит наличие открытых разветвлений, где код пересекается, так как это потенциально может занять до 6 месяцев, затрудняя слияние.

Помимо разветвления, какие есть альтернативы?

Любой совет приветствуется

2 ответа

Если даты выпуска разделены месяцами, начните с назначения максимального количества эффективных ресурсов для A, не начиная с B вообще. Начало Б после выпуска А.

В качестве альтернативы, потратьте некоторое время заранее, чтобы убедиться, что структура вашего кода позволяет A и B разрабатываться параллельно, но совершенно независимо друг от друга - то есть файлы, к которым касается B, не (или меньше) участвуют в файлах, которые A прикосновения - это уменьшит влияние одного на другое и облегчит слияние или доставку по отдельности.

Не стоит слишком бояться слияний - во многих системах контроля версий (с которыми у меня есть опыт работы с Subversion и Mercurial) они на самом деле удивительно просты.

Вы также можете рассмотреть возможность использования флагов функций и отключения функции B до даты ее доставки. Flickr делает это довольно эффективно. Это не легко, но как только вы поймете это правильно, это превосходит необходимость слияния!

Другие вопросы по тегам