UCM Clear Case: иерархия потоков в одном проекте против нескольких проектов
У нас есть проект, и мы собираемся добавить новый функционал в стабильную кодовую базу без каких-либо серьезных изменений, кроме исправления дефектов. План не состоит в том, чтобы разрабатывать новую функцию отдельно какое-то время (вероятно, месяц), выполняя промежуточные сборки и тестирование, и поскольку функция завершена, и качество приемлемо, объедините код новой функции в основной ветви.
Вопрос в том, какой из следующих двух сценариев лучше с точки зрения Clear Case:
Создание нового проекта на основе базовой линии в потоке интеграции текущего проекта, разработка новой функции в этом отдельном проекте с промежуточными доставками в поток интеграции нового проекта и сборкой из потока интеграции. И, наконец, доставка изменений из потока интеграции нового проекта в основной проект (в dev или int).
Использование иерархии потоков в основном проекте: создание дочернего потока потока интеграции в основном проекте (назовем его temp_int) и дочернего потока temp_int (назовем его temp_dev). Разработка новой функции в temp_dev с периодической доставкой в temp_int и сборками из temp_int, а затем доставка новой функции из temp_int в основной поток интеграции.
1 ответ
Вопрос о том, нужно ли вам создать новый проект или создать подпоток, является классическим.
На мой взгляд, оба варианта довольно эквивалентны.
Единственным существенным отличием является базовый уровень, который вы сможете выбрать при создании нового потока для этой конкретной разработки:
- для подпотока вы сможете выбрать только базовую линию, созданную в родительском потоке.
- для основного потока нового проекта вы сможете выбрать любую базовую линию, какую захотите.
Кроме этого:
- новый проект предлагает новое пространство для изоляции нескольких потоков в связном контейнере. Но если вам нужно включить некоторые незначительные изменения стабильного кода, сделанные во время разработки новой функции, поставки будут в порядке.
- подпоток позволяет четко визуализировать конечного клиента после завершения разработки: доставка будет естественной операцией для слияния с родительским потоком. Кроме того, возможна периодическая перезагрузка из родительского потока в поток разработки, чтобы поддерживать его актуальность.
Таким образом, если у вас есть только один поток с четкой доставкой, достаточно выбрать подпоток.
Если ваша разработка окажется более сложной, чем предполагалось, проект станет лучше.