Война закончена, все победили
Kiln это онлайн-хостинг Hg и Git репозиториев с продвинутой системой code review и управлением группами проектов и пользователей. В связи с новым релизом и провокационным утверждением по поводу войны DVCS, да и тем, что Kiln не очень широко представлен на Хабре, стоит упомянуть несколько ключевых моментов.
Например, что бесплатная версия Kiln не ограничена по времени если у вас до 2х пользователей...
Действительно, бесплатная «версия» Kiln'а почему-то не очень афишируется, и в результате большинство считает его исключительно платным сервисом. Возможно дело в том, что при 2х пользователях сильные стороны Kiln'а становится менее существенными.
Отличительные особенности Kiln'а — удобные code review, управление доступом к репозиториям и быстрый as-you-type поиск в коде и комментариях к commit'ам. Дальше я остановлюсь немного на каждом пункте из этого списка и на базовой функциональности сервера DVCS.
Kiln организует репозитории в иерархию проект — группа — центральные репозитории — ветки. Ветки Kiln в данном случае это тоже репозитории, что может несколько запутать пользователя. Но в команде с ними иногда даже более удобно работать над отдельной функцией по сравнению с ветками Git/Hg. Пользователи могут иметь доступ на чтение, ответвление, изменение или полное администрирование на каждом уровне или конкретном объекте в этой иерархии.
Собственно, уже по этому ясно, что изначально Kiln нацеливался на крупных корпоративных клиентов. Но в данный момент он более популярен у среднего размера стартапов.
Пример проекта с несколькими группами (но без ответвленных репозиториев) можно посмотреть на зеркале open source разработок используемых в FogCreek: mirrors.kilnhg.com/Code/Mirrors
На том же зеркале можно попробовать поиск по коду и комментариям — скорость меня действительно впечатлила. А вот для code review уже придется сделать пробный (или если вам хватит 2х пользователей — то постоянный) account.
Ревью представляет собой набор changeset'ов с возможностью посмотреть изменения в текстовых файлах или изображениях, и прокомментировать общую идею или конкретные строки кода. Каждый из программистов в ревью помечает его как «приемлимо», «требует доработки», или «неприемлимо».
Стоит отметить, что изменения входящие в ревью отмечаются и в дереве истории репозитория, и в annotate конкретного файла. В результате всегда можно сказать какие changeset'ы и строки кода были проверены.
Еще в дереве истории мне понравилась подсветка изменений предшествуюших выбранному и потомков — легко видеть какие изменения делались параллельно и могут нарушить интеграционные тесты.
В базовых функциях Kiln не сильно отличается от конкурентов — просмотр истории изменений, навигация по веткам и tag'ам, навигация по файлам определенной версии, annotate/blame для файлов, online редактирование, поддержка markdown в readme, интеграция с почтой, чатами, CI серверами, online хостингами приложений. и т.д.
Может немного не хватает статистики по изменениям. Kiln ограничился «Activity feed» — страница с журналом изменений, где можно настроить за какими событиями и репозиториями следить или подписаться на RSS feed.
Ну, для введения в стиле «галопом по Kiln'у», пожалуй, достаточно. Теперь про «окончание войны DVCS». Тех, кто дочитал до этого места с целью поспорить что лучше — более строгий Меркьюриал или более демократичный и популярный Гит, я наверное разочарую. Я склоняюсь в сторону Гита для распределенных (по количеству разработчиков и времени) проектов и к Hg для более критичных к отслеживанию изменений в истории, но, честно говоря, эти предпочтения минимальные.
Очевидно, что чтобы не терять клиентов, Kiln'у в любом случае требовалась поддержка Гита на волне его популярности. А вот для скольки клиентов существенно именно одновременное использование и Git'а и Mercurial'а… посмотрим. Надеюсь, FogCreek когда-нибудь опубликует результаты этого эксперимента.
Ссылки
- Kiln
- Анонс Kiln 3.0 в блоге FogCreek: Announcing Kiln Harmony: the Future of DVCS
- Технические внутренности: Kiln Harmony Internals: the Basics и частичный перевод на Хабре.