Я не згоден з цим правилом і я згоден з тим, що сказав Мейсон Уілер . Я хотів би додати кілька ідей.
Я намагаюся вчинити кожен раз, коли я маю на увазі змістовні зміни: це може бути кілька разів на день, якщо я виправляю кілька невеликих помилок, або раз на тиждень, якщо я працюю над більшим шматком програмного забезпечення, яке не може бути використане рештою код будь-яким змістовним способом, поки він не досягне сталого стану.
Крім того, я трактую вчинення як публікацію змістовної редакції, яка сприяє новій функціональності кодової бази. Я думаю, що слід спробувати очистити код перед тим, як здійснити так, щоб інші розробники могли зрозуміти значення та мету змін, коли вони дивляться на історію редагування. Чим менше змін в історії бачать інші розробники, тим краще: коли я переглядаю історію редагування, я хочу бачити збільшення, що додає певної значущої функціональності; Мене не цікавить кожна маленька ідея, яку мав кожен розробник, і хотіла спробувати, перш ніж вони досягли рішення.
Крім того, я не думаю, що використовувати гарний сервер SVN (або будь-яку іншу систему управління версіями) як резервну програму, до якої робиться поточний знімок коду (за умови компіляції): не можна використовувати USB-накопичувач або зовнішній USB-накопичувач або мережевий диск для дзеркального відображення поточного коду, щоб він не загубився, якщо ваш комп'ютер зламається. Контроль редагування та резервне копіювання даних - це дві різні речі. Опублікування версії - це не те саме, що зберегти знімок
вашого коду.
Нарешті, я вважаю, що робити це слід не раз (тобто лише тоді, коли хтось справді задоволений поточним станом коду), а уникнення конфліктів злиття не є хорошим виправданням для того, щоб (занадто) часто здійснювати. Багато конфліктів злиття трапляються, коли різні люди працюють над одними і тими ж файлами одночасно, що є поганою практикою (див., Наприклад, цю статтю , пункт 7). Конфлікти злиття повинні бути зменшені шляхом розбиття проекту на модулі з чіткими інтерфейсами та якомога менше залежностей, а також шляхом координації роботи розробників, щоб код, над яким вони працюють, перекривав якомога менше.
Всього мої 2 копійки.
EDIT
Ще одна причина проти передчасних комітетів, які мені прийшли в голову, - це те, що (дуже) баггі-версія не може бути перевірена. Якщо ви займаєтесь стволом і ваша тестова команда проводить тестування щодня, вони можуть не мати тестованої версії протягом декількох годин (або на день). Навіть якщо ви не намагаєтеся виправити помилку та просто відновити зміни, відновлення може зайняти пару годин. Скажімо, п'ять тестувальників, які працюють у вашій команді, ви витратили 5 х 2 = 10 годин часу команди через бездіяльність. Це сталося зі мною одного разу, тому я дуже намагаюся якомога швидше уникати передчасних зобов’язань в ім'я зобов’язань .