SVN Вопрос относительно ветвления и ветвления сторонних поставщиков
Мы разрабатываем приложение, которое состоит из:
- исходный код, предоставляемый нам партнером нечасто. Это несколько рабочий код, "окончательная" версия чего-либо (и мы получаем его в виде zip-файла). У них есть свой собственный цикл выпуска и отслеживания версий.
- на основе кода выше мы вносим наши изменения. Это могут быть либо исправления ошибок, либо разработка новых функций.
До сих пор нам удавалось создать хаос кода, в результате мы хотели бы поместить все это в репозиторий SVN. Я хотел бы спросить вас, что вы считаете лучшей практикой, чтобы это происходило с меньшей болью.
Следующие вещи являются нашими вещами, которые мы считаем важными:
- Мы хотели бы отслеживать наши исправления / изменения, поскольку мы не можем отправлять исправления назад нашему поставщику программного обеспечения, но мы можем сообщить об ошибке (и они могут или не могут ее исправить). Все, что мы разрабатываем на их коде, остается "внутренним", они не заинтересованы в наших изменениях.
- Пока мы не получаем новую кодовую базу от производителя, мы считаем, что их последняя версия является стабильной, над которой мы работаем. Это может быть далее разветвлено, но в результате всегда получается стабильный транк, сборка выполняется на основе этого "стабильного" транка.
- Когда производитель выпускает новую версию, мы хотели бы объединить нашу "стабильную" магистраль (которая содержит много изменений) с их изменениями, создавая таким образом новую "стабильную" магистраль.
- Для каждой версии, которую мы развертываем (для клиентов), мы сможем позже исправить ошибки только в этой версии для клиентов, которые установили нашу систему с использованием этой конкретной версии.
- Есть больше разработчиков, работающих над базой кода... (как обычно:)
Большое спасибо за советы.
1 ответ
Решение
Книга SVN охватывает лучшие практики для этого сценария в разделе Ветви поставщика.