цикл SVN Dev. как много мелких "функций", ожидающих утверждения - PullRequest
0 голосов
/ 18 апреля 2010

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

1. Сохраняйте туловище сплошным и имейте тонны ветвей для каждой крошечной «функции» По сути, каждая новая вещь - это ветка.

Минусы:
- Может стать кошмаром, чтобы поддержать так много веток, независимо от того, насколько малы изменения. Синхронизация всех веток и т. Д. И т. Д.
- Хуже всего то, что я вижу в этой настройке тестовой системы, чтобы можно было легко проверить изменения для утверждения (в основном нужно поддерживать все ветви, которые кажутся безумными).

Плюсы:
- Казалось бы, легко, когда одобрено присоединение ветви к стволу и добавление нового выпуска к тегу и развертыванию.

2. Для больших функций ветвь выпущена, и для небольших изменений все идет в транк (относительно стабильно) напрямую.

Плюсы:
- Легче настроить тестовую систему, так как большую часть времени все будет видно непосредственно. Для больших функций должно быть легко поддерживать отдельную ветку на тесте.
Минусы:
- Не очень понимаю, как пойдет релиз. Я не смогу в основном выпустить одну часть ствола. Это будет связано с вишнёвым пикированием, за которым безумно следить. Другой подход заключается в том, чтобы я просто принудил к тому, что через некоторое время (примерно через неделю) все небольшие функции должны быть утверждены, чтобы их можно было развернуть перед тем, как давать новые задачи. Я просто создаю ветку релиза и все или ни одна из мелких функций не будут запущены. Это будет забавное обсуждение с главными людьми.

Полагаю, технически очень сложно иметь множество небольших ожидающих вещей.

1 Ответ

0 голосов
/ 18 апреля 2010

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

...