Вопрос

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

Мы разрабатываем набор взаимосвязанных веб-приложений. Мы рассматриваем каждое приложение как одно решение, независимое от других. Каждое приложение формируется различными проектами, но это не имеет большого значения.

Мы используем для развития новых функций багажника. Всякий раз, когда мы публикуем что-то живое, мы пометим версию багажника с версией. Например, предположим, что первая версия багажника помечена 1.0.0. Когда мы разрабатываем Furhter внедрение (т.е. мы работаем над 1.1.0) серию ошибки выходит из производственной версии. То, что мы думаем, это проверить тег 1.0.0 и исправить ошибки к версии 1.0.1.

Теперь, что мы хотели бы достичь, - это пометить каждую версию ревизии. Другими словами, мы хотели бы иметь идеальную рабочую копию 1.0.0, 1.0.1, 1.0.2 ...

Теперь это мое решение, я хотел бы знать, если вы согласны с этим.

  1. Я проверяю мою меченную версию 1.0.0 к папке Local / Tags
  2. Я филирующую эту версию к /branches/1.0.1 папке репозитория
  3. Я проверю свою новую ветвь к папке местных / ветвей
  4. Я исправляю ошибки на ветке 1.0.1
  5. Когда после x обменивается, все в порядке, я помечу эту новую версию в /tags/1.0.1

И так далее для каждого нового ошибки / нового выпуска. Я попробовал, и если я проверю папку / теги, я могу видеть все версии, Perfectyl Working.

Теперь, когда я готов с 1.1.0, я должен объединить последний тег (или ветвь, они должны быть одинаковыми в конце, если все правильно) на багажнике с использованием параметров «объединить ряд ревизий». Когда все объединено, у меня должна быть полностью работающая версия 1.1.0 с исправленными изменениями в прошлом. Скомпилируйте, тестируйте, а затем опубликуете и, очевидно, пометите его в папку /tags/1.1.0 на сервере.

Как вы думаете? Спасибо, Марко

Это было полезно?

Решение

Обычно все развитие сделано на багажнике, а багажник - это то, что вы базы выделяете. Вы используете ветви либо для стабилизации кода при подготовке к выпуску, чтобы исправить выпуск или для реализации функции, которая не может быть разработана на багажнике по нескольким причинам.

При использовании ветви для стабилизации или исправления выпуска, исправление для ошибки или изменения, которые должны перейти к стабилизации ветви, все разрабатываются на багажнике, и выборочно объединяются в ветку.

При использовании филиала функции вы передаете филиал, а затем объединяетесь в багажник (и, возможно, оттуда до стабилизации / патч-ветвей.

Короткая история, я пропустил багажник в вашем цикле разработки, и мне интересно, как вы убедитесь, что все изменения в конечном итоге в багажнике, потому что именно здесь ваш следующий основной выпуск функции будет начнется от.

Другие советы

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

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

То, что вы описали, звучит как нормальная процедура для метки и разветвления для меня. Вот так я использую Subversion, и она работает очень хорошо.

Звучит неплохо.

В зависимости от Ammount исправлений, которые выпускаются, я не буду беспокоиться с созданием ветвей для каждого незначительного выпуска. Создание тех, общающихся людям, что оформить заказ / где проверить, слияние и т. Д. Промыть и повторять.

Имея ветвь для каждого основного выпуска и использования того, что в качестве «обслуживания» - хорошо работает для нас.

Вот описание процесса, если вы заинтересованы:Стратегии развертывания SVN для нескольких групп разработчиков (не совместно), работающих на разных компонентах одного и того же проекта

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top