Що люди тут бачать як відносні сильні та слабкі сторони Git, Mercurial і Bazaar?
На мою думку, сила Git - це його чистий базовий дизайн та дуже багатий набір функцій. Я також вважаю, що найкраща підтримка багатогалузевих сховищ та керування важкими галузевими робочими процесами. Він дуже швидкий і має невеликий розмір сховища.
Він має деякі функції, які корисні, але потрібно використовувати певні зусилля. До них відносяться видимі проміжні арагізовані ара (індекси) між робочою зоною та базою даних сховищ, що дозволяє краще вирішувати злиття у складніших випадках, поступового обмінювання та спілкування з брудним деревом; виявлення перейменувань та копій за допомогою евристичного подібності, а не відстеження їх за допомогою якихось файлових ідентифікаторів, які добре працюють та дозволяють звинувачувати (коментувати), які можуть слідувати за переміщенням коду по файлах, а не лише оптовими перейменами.
Одним з його недоліків є те, що підтримка MS Windows відстає і не є повною. Інший сприйнятий недолік полягає в тому, що він не так добре зафіксований, як, наприклад, Mercurial, і менш зручний для користувачів, ніж конкуренція, але він змінюється.
На мій погляд Меркуріал сила полягає в його хорошій продуктивності та малому розмірі сховища, в хорошій підтримці MS Windows.
На мою думку, головне недоброзичливість полягає в тому, що місцеві відділення (декілька гілок в одному сховищі) все ще є громадянами другого класу, і в дивній і складній формі вони реалізують теги. Крім того, спосіб роботи з перейменами файлів був неоптимальним (але цей міг змінився). Mercurial не підтримує злиття восьминога (з більш ніж двома батьками).
З того, що я чув і читав головний базар переваги - це легка підтримка централізованого робочого процесу (що також є недоліком, централізовані концепції видно там, де він не повинен), відстеження перейменувань як файлів, так і каталогів.
Основним його недоліком є продуктивність та розмір сховища для великих сховищ з довгою нелінійною історією (продуктивність покращується принаймні для не занадто великих сховищ), той факт, що парадигма за замовчуванням - це один ранчо на сховище (ви можете встановити його для обміну даними, хоча) та централізовані концепції (але це також із того, що я почув зміни).
Git написаний на C, скриптах оболонки та Perl, і є сценарієм; Mercurial написано на C (core, for performance) та Python, і надає API для розширень; Bazaar написаний на Python і надає API для розширень.
Розглядаючи кожну з них та проти таких систем управління версіями, як SVN та Perforce, які питання слід враховувати?
Системи управління версіями, такі як Subversion (SVN), Perforce або ClearCase, є централізованими системами управління версіями. Git, ртутний, базар (а також Darcs, монотонна і BitKeeper) є розподіленою системою управління версій. Розподілені системи управління версіями дозволяють набагато ширший спектр робочих процесів. Вони дозволяють використовувати "публікувати, коли буде готово". Вони мають кращу підтримку розгалуження та об'єднання, а також для важких галузей робочих процесів. Не потрібно довіряти людям, які мають доступ до них, щоб мати можливість отримувати внески від них у простий спосіб.
Плануючи міграцію з SVN на одну з цих розподілених систем управління версіями, які фактори ви б врахували?
Одним із факторів, який ви можете врахувати, є підтримка інтерактивної роботи з SVN; Git має git-svn, Bazaar має bzr-svn, а Mercurial розширення hgsubversion.
Відмова: Я - користувач Git та учасник невеликого часу та переглядаю (і беру участь у) списку розсилки git. Я знаю Mercurial і Bazaar лише з їх документації, різноманітних дискусій про IRC та списки розсилки, а також публікацій у блогах та статей, в яких порівнюються різні системи контролю версій (деякі з них перераховані на сторінці GitComppare в Git Wiki).