Відповіді:
Це означає, що коли ви виконуєте зобов’язання в системі контролю версій, все, що ви хочете скористатися, відбувається, АБО нічого не робить.
У CVS, коли ви намагаєтесь виконати компіляцію, можливо, що команда може досягти успіху в декількох файлах, тоді не вдасться виконати кілька інших (тому що вони змінилися) Це залишає сховище в нещасному стані, оскільки половина ваших зобов’язань не існує, і, ймовірно, ви залишили речі в стані, коли вони не збиратимуться або гірше. Тепер вам потрібно поспішати та інтегрувати будь-які зміни, щоб ви могли ввести інші файли до того, як комусь іншому потрібно буде оновити та отримати ваш зламаний набір змін.
У SVN цього не відбудеться - SVN або здійснить все, що ви змінили, або вийде з ладу з усім набором змін. Таким чином, ви ніколи не залишатимете сховище у порушеному стані через проблеми фіксації.
Це пояснюється, наприклад, у байовій CVS. Мені була перервана стаття, написана Енді Лестером :
Якщо я спробую здійснити в Subversion, але один з файлів має конфлікт або застарів, жоден із файлів не заповнюється. У CVS у вас є напівкомітований набір файлів, який потрібно виправити ПРАВО ЗАРАЗ.
Той факт, що CVS змушує програміста негайно виправити злиття, є настільки ж непродуктивним, як це стає. Порівняно з цим, суттєвою перевагою є можливість затримати / скасувати / обережно об'єднати зміни.
Інші переваги SVN над CVS, пояснені у вищевказаній статті:
Локальні версії всього, що ви робите
Якщо ви хочете, щоб відеозаписи були різними, ви повинні мати можливість підключитися до вашого сховища. Ні мережного з'єднання, ні різного. Subversion зберігає локальні незаймані копії того, над чим ви працюєте, тому svn diff буде добре працювати. Хочете почати спочатку? svn revert також працює без зв'язку.Символічні назви ревізій
HEAD - це назва кінчика багажника в CVS, але я завжди хотів, щоб я міг сказати "-r-1", як я міг би повернутись у дні PVCS. За допомогою CVS я повинен робити реєстр резюме для того, що я редагую, а потім віднімати його. Це не весело. З Subversion я можу сказати svn diff -r PREV.Звіт про реальний статус
У CVS єдиний спосіб переконатися, що щось на сервері новітніше, - це оновлення відеокліпів та сподівання, що все, що виходить, не викликає конфліктів. За допомогою команди svn status я отримую реальний статус, тому я можу побачити, чи є конфлікти перед тим, як зробити оновлення.Корисне вирішення конфліктів злиття
У CVS, якщо є конфлікти, ви отримуєте у своєму файлі маркери конфліктів. У програмі Subversion ви отримуєте маркери конфлікту, PLUS - копію оригінального, передконфліктного файлу, PLUS - версію, що надійшла з сервера, PLUS - версію, яку ви редагували спочатку. Тоді ви повинні явно svn резонувати filename.txt, щоб повідомити Subversion, що ви вирішили проблему. Більше не випадково повертається в CVS з маркерами конфлікту, які все ще є.
Це означає, що всі зміни всіх файлів здійснюються за одну транзакцію, тому або всі успішні, або жодні.
Це означає, що ви менше шансів отримати часткові редагування у сховище, що спричинить збій збірок. Ви все ще можете змусити людей забути перевірити всі відповідні файли, але це проблема, а не проблема із системою версій.