Я задавав собі ті ж запитання, коли ми прийшли здійснити Subversion тут - близько 20 розробників поширилися на 4 - 6 проектів. Я не знайшов жодного доброго джерела з "" відповіддю ". Ось деякі частини того, як наша відповідь розвивалася за останні 3 роки:
- здійснювати так часто, як корисно; наше правило є обов'язковим виконувати щоразу, коли ви виконали достатню роботу, щоб повторити це, якщо зміни були втрачені, було б проблемою; іноді я здійснюю кожні 15 хвилин або близько того, інший раз це може бути днями (так, іноді потрібно щодня, щоб написати 1 рядок коду)
- ми використовуємо гілки, як запропоновано однією з ваших попередніх відповідей, для різних шляхів розвитку; зараз для однієї з наших програм у нас є 3 активних гілки: 1 для основної розробки, 1 для поки що незавершених зусиль для паралелізації програми та 1 для того, щоб переглянути її для використання XML-файлів введення та виведення;
- ми навряд чи використовуємо теги, хоча вважаємо, що нам слід використовувати їх для визначення випусків у виробництво;
Подумайте, як розвиток проходить по одному шляху. Через деякий час маркетинг або стан розвитку вирішили випустити першу версію продукту, тому ви посадите прапор у шлях, позначений «1» (або «1,0», або що у вас є). В інший час якась яскрава іскра вирішує паралелізувати програму, але вирішує, що це займе тижні, і люди тим часом хочуть продовжувати йти основним шляхом. Таким чином, ви будуєте вилку на шляху і різні люди блукають по різних вилах.
Прапори на дорозі називаються «мітками», а вилки на дорозі - там, де розділяються «гілки». Інколи також гілки повертаються разом.
- ми поміщаємо весь матеріал, необхідний для складання виконуваного файлу (або системи) у сховище; Це означає принаймні вихідний код та файл (або файли проекту для Visual Studio). Але коли ми маємо піктограми та конфігураційні файли та все інше, що потрапляє у сховище. Деяка документація потрапляє в репо; звичайно, будь-яка документація, наприклад, довідкові файли, які можуть бути невід'ємними для програми, і це корисне місце для розміщення документації для розробників.
Ми навіть розміщуємо там виконувані файли Windows для своїх виробничих версій, щоб забезпечити єдине місце для людей, які шукають програмне забезпечення - наші версії Linux переходять на сервер, тому їх не потрібно зберігати.
- ми не вимагаємо, щоб сховище завжди могло доставляти останню версію, яка створює та виконує; деякі проекти працюють таким чином, деякі не так; рішення покладається на менеджера проекту і залежить від багатьох факторів, але я думаю, що воно руйнується при внесенні великих змін у програму.