Я спробував обидва способи з великим комерційним застосуванням.
Відповідь, який метод краще, сильно залежить від вашої точної ситуації, але я напишу те, що показав мій загальний досвід поки що.
Кращий метод в цілому (на мій досвід): Багажник повинен бути завжди стабільним.
Ось кілька рекомендацій та переваг цього методу:
- Зашифруйте кожне завдання (або пов'язаний набір завдань) у своїй власній галузі, тоді ви будете мати гнучкість, коли ви хочете об'єднати ці завдання та виконати випуск.
- Якість слід робити на кожній гілці до того, як вона злиється зі стовбуром.
- Роблячи QA на кожній окремій гілці, ви точно будете знати, що спричинило помилку.
- Це рішення важить будь-яку кількість розробників.
- Цей метод працює, оскільки розгалуження є майже миттєвою операцією в SVN.
- Тег до кожного випуску, який ви виконуєте.
- Ви можете розробити функції, які ви не плануєте випускати деякий час і вирішити, коли саме їх об’єднати.
- Для всієї роботи, яку ви виконуєте, ви можете скористатись кодом, скориставшись кодом. Якщо ви працюєте лише з магістралі, ви, ймовірно, будете тримати код не видаленим, а значить, незахищеним та без автоматичної історії.
Якщо ви спробуєте зробити все навпаки і зробити весь свій розвиток в багажнику, у вас виникнуть такі проблеми:
- Постійні проблеми у побудові щоденних побудов
- Втрата продуктивності, коли розробник розробляє проблему для всіх інших людей проекту
- Більше циклів випуску, тому що вам потрібно нарешті отримати стабільну версію
- Менш стабільні випуски
Ви просто не матимете гнучкості, яка вам потрібна, якщо ви спробуєте зберегти гілку стабільною і стовбур як пісочницю розвитку. Причина полягає в тому, що ви не можете вибрати і вибрати з магістралі те, що ви хочете помістити в цей стабільний випуск. Це вже було б змішане разом у багажнику.
Зокрема, один із випадків, який я б сказав, щоб зробити все, що стосується багажника, - це коли ви починаєте новий проект. Можуть бути й інші випадки, залежно від вашої ситуації.
До речі, розподілені системи управління версіями забезпечують набагато більшу гнучкість, і я дуже рекомендую перейти на hg або git.