Попередження: З цього посту я знайшов Меркуріал і люблю його набагато краще, ніж SVN. Тож ця публікація трохи застаріла з коментарями Pro SVN та загальними анти-DVCS, але анти-git-матеріали все ще актуальні
Я фанат SVN над Git.
Чому? Оскільки SVN було набагато простіше для одного розробника чи невеликої команди, а git (конкретно msysgit) залишив мене з неприємним смаком у роті.
Коли я стажувався в невеликому магазині, мене познайомили з Git на Windows. Я одразу помітив обсяг роботи, який потрібен, щоб він працював з Github. По-перше, мені довелося генерувати приватний ключ ssh, вставляти відкритий ключ у Github, потім відкривати конкурс і відкривати мій приватний ключ кожного разу, коли я хотів натиснути, що дуже дратувало.
І мені ніколи не сподобалось, що я витягую весь сховище. Я визнаю, що ніколи не працював з чимось величезним, але боюся завантажити репозиторій KDE в Git, якщо вся репо та її версії будуть на моєму HD.
Потім був заплутаний процес взяти на себе зобов’язання. TMK, я повинен був спочатку "поставити" всі файли, які я хотів зробити (які висмокталися, коли у вас було багато файлів; мені знадобилося деякий час, щоб знайти команду вручну, щоб все поставити), потім виконати фіксацію, а потім натиснути на головне репо (чому це окрема операція ?!).
У вас також були не (!) Дуже корисні дані про фіксацію. О, дивіться, це виконувати 14f74433245ae17aeeaa частина дерева 2167a4934d0a4a7db0de та батьківського d7042abb4821d3faf600. Чорт це означає? Я мав би змогу досить швидко розібратися з речами, і не потрібно звертатися до якоїсь дивної документації.
Якщо говорити про документацію, то, принаймні, коли я її використовував, здавалося, що все було у форматі файлів man linux man, IE для мене заплутано і марно. Я рідко міг знайти велику допомогу в документах і просто вдався до google.
І з комітами, одне, що мені не сподобалось, - це відсутність номерів версій. Тепер я знаю, що це пов’язано з дизайном git, але для будь-якого програмного забезпечення потрібен номер версії. Я все ще пам’ятаю маркери, які з'являлися б, сказавши «Змінено версію до 1.8.6» чи щось подібне, але ви все одно не можете створити числа. Мені версія версії 1.8.6.5164 (остання частина - номер редакції) говорить мені набагато більше, ніж просто 1.8.6 і примітка, що щось незначне змінилося, спробуйте
Отримуючи специфіку програмного забезпечення, базовою програмою для Windows є msysgit, що є жахливим інтерфейсом. Він кілька разів замикався на мені, мав жахливий інтерфейс, і інтеграція CLI-GUI була в кращому випадку нелегкою. Наркомани командного рядка навколо мене ще більше ненавидів гуї.
Тепер давайте подивимось на SVN. А оскільки я в Windows та маю обліковий запис google, зокрема TortoiseSVN та Google Code.
По-перше, повна інтеграція оболонки, щоб зробити все у сховищі (і для вас, Linux, люди RabbitVCS робить те саме), не потрібен основний графічний інтерфейс. Отримати сховище просто як замовлення, не потрібен SSH (не пам'ятаю, чи потрібен Github SSH для витягнення), і жодне ціле репо + всі минулі комісії не сидять на вашому HD.
Здійснення справи надзвичайно легко, головним чином тому, що не потрібно SSH або інсценування. Ви просто перевірте всі потрібні файли, використовуючи дуже корисну опцію, щоб вибрати всі параметри, які у моїй версії msysgit були недоступні, введіть повідомлення про фіксацію та натисніть покласти команду. Потім Код Google запитує вас про вашу логінну інформацію (яку зберігають більшість клієнтів) та завершене. Простий, легкий і без SSH
Номери версій? За допомогою простого коду ви можете додати номер версії та номер комісії до всіх замовлень, що значно спрощує ситуацію. Ви також отримуєте придатні номери версій, які фактично показують зміну, наприклад, 1.8.6.5165 новіший, ніж 1.8.6.5164.
Документація? Ну, важко сказати. Черепаха задокументована, але я фактично так довго не посилався на офіційну документацію, що не можу судити. Читання простого вступного посібника мені було достатньо.
Злиття - це щось інше, що я не можу порівняти. Мені довелося це зробити один раз у Git, коли хтось інший здійснив зміну файлу, над яким я працював, але ніколи в SVN.
Який я б рекомендував? Добре, що у великих команд git має свої переваги, головним чином у своєму нелінійному циклі розвитку. В іншому проекті я бачив, як 4 програмісти починають в окремих гілках, потім об'єднують весь код дуже дивними способами, які якимось чином перетворюються на остаточну гілку. У Github та msysgit був дуже приємний інструмент візуалізації для всього проекту, який мені дуже сподобався.
Для окремих розробників або невеликих командних проектів, SVN був би найкращим, оскільки більшість функцій Gits не використовуються, і ви отримуєте лише негативні частини. Простота - це така приємна річ