Перегляд коду Герріта чи модель вилки та тяги Github?


64

Я запускаю проект програмного забезпечення, який буде розроблений командою та спільнотою. Раніше я продавався на геррі, але тепер модель запиту на вилки та витяги Github майже забезпечує більше інструментів, способів візуалізації комітетів та простоти використання.

Для того, хто має хоч трохи досвіду роботи з обома, які плюси / мінуси кожного, і що було б краще для проекту, заснованого на команді, який хоче залишити відкриті можливості для розвитку громади?

Відповіді:


84

Основна відмінність робочих процесів Герріта від GitHub полягає в тому, як моделюються зміни.

У Ґерріта кожен вчинок - це зміна, яка стоїть сама по собі. Хоча Герріт покаже вам зв’язки між комісіями, огляди проводяться на основі комісій. Команди, які добре розбивають великі зміни на невеликі, самостійні комітети, швидше за все, матимуть більший успіх з Геррітом. Однак, оскільки модель Герріта включає послідовну редакцію певного зобов’язання, це заохочує робочі процеси Git, до яких багато розробників не звикли, такі як внесення змін до попереднього перекладу та повторне натискання на нього, або збивання зростаючого набору комітетів із тематичної гілки в єдину вчинити.

У Github запит на виклик моделює співвідношення між двома гілками. Очікуваний робочий процес у Github полягає у здійсненні однієї чи декількох змін у тематичній гілці (часто у роздрібному сховищі, але не обов'язково) та створення запиту на витяг між цією гілкою та гілкою "вище". У цьому випадку рецензується набір зобов’язань, які продовжують зростати в міру продовження огляду. Результат - це набір змін, які потім можуть бути об'єднані атомним шляхом, коли вони завершені. Запити на виклик можуть бути ефективними для відстеження змін із більшим обсягом, які можуть бути реалізовані протягом декількох комітетів. Запити на виклик також підтримують робочі процеси SCM, до яких звикли більшість розробників, такі як відповідь на коментар до огляду, подавши наступні комісії в тій же галузі.

Великою перевагою на користь Github є кількість знайомих з ним розробників порівняно з Геррітом. Герріт може бути популярним серед користувачів Git Power, але для його використання без тертя потрібні проміжні або розширені знання з git та толерантність до крутої кривої навчання.

Перевага Герріта - більш глибокі стосунки з Гітом. Запити на притягнення до Github досить віддалені від стандартної моделі даних Git, що для створення запитів на тягу потрібно використовувати або веб-інтерфейс Github, або його фірмовий API. Інтерфейс Gerrit для створення та оновлення змін - це сам протокол git.


8
Дякую Мартине, це цікава відповідь. Я хотів деякий час дивитись на Герріта, але думаю, що приберу це. Якщо це заохочує редагувати історію та виконувати завдання, я не маю нічого спільного з цим. * 8 '(
Марк Бут

15
Просто для того, щоб було зрозуміло (я часто використовую Герріта на своєму робочому місці), що Мартин тут говорить: "Герріт ... заохочує робочі процеси Git ... такі, як зміна попередньої фіксації та повторне натискання на неї, або пригнічення зростаючого набору комітетів. ..в одній фіксації "абсолютно правильно. Моє уточнення полягає в тому, що коментар Мартина про "історію редагування" - це не те, що сказав Мартин. Внесення змін до комітетів (хоча вони ще знаходяться на Ґерріті та ще не об'єднані з початковим / головним), не передбачає "редагування історії". Насправді цей робочий процес працює чудово. "Погане" редагування історії, на яке Марк Бут посилається, є повторним підштовхуванням відредагованих історій до походження / господаря.
лікетський

2
Дякую за роз’яснення @likethesky, але у мене є досить більш буквальне тлумачення «редагування історії», і що стосується мене, все, що призводить до наборів змін, які містять вміст, який ви явно не вчинили, - це «редагування історії». Я розумію, що це досить драконівська інтерпретація, якої мало хто дотримується. * 8 ')
Марк Бут

2
Досить справедливо. :-) Не впевнений, я розумію, що ви маєте на увазі під "наборами змін, які містять вміст, який ви явно не вчинили", так що, будь ласка. детально ... Я припускаю, що ви не говорите, що ви ніколи не здійснюєте тимчасових (локальних або спільних між членами команди за допомогою віддалених відділень) чинів: "WIP: це спроби вирішити проблему з арками, про яку ми обговорювали", а потім більш корисна сквош / поправка, яка говорить: "Випуск 123: Реконструйований XYZ для підвищення еластичності та простоти горизонтального масштабування" як остаточне повідомлення про виконання цієї роботи. Але все одно, звичайно, ви можете вибрати git будь-яким способом, який робить вас щасливими!
лікетський

7
Це фантастична відповідь. Додамо, я виявив, що запити на притягнення GitHub сприяють меншим, більш ітеративним фіксаціям і часто закінчуються набагато більш описовим журналом git, який показує не тільки робочий продукт, але й робочий процес. Перегляд коду Герріта сприяє набагато більш чистій історії сховищ (існує дуже-дуже мало фактичних об'єднань) з більшими, більш відполірованими комітетами.
тофір
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.