Систем контроля версий много, а хостингов исходного кода — еще больше. Перепробовать их все нет никакой возможности. Поэтому подбирая себе такой хостинг, я выбирал между GitHub и BitBucket. Эти два сервиса показались мне наиболее интересными.
Что у них общего:
- Предлагают бесплатный Git -хостинг для открытого кода, а также возможность создавать wiki и багтрекеры;
- Элементы социальной сети (легкое создание форков и тп). Это действительно важно . Вот почему я не рассматривал SourceForge, BerliOS, Google Code, CodePlex и Assembla. Хотя с Google Code я успел немного поработать, когда разбирался с Subversion ;
- Есть поддержка HTTPS;
- Есть собственные API;
- Поддерживается Gravatar ;
- Наличие интеграции с Twitter, FriendFeed и другими сервисами;
- У GitHub и BitBucket есть блоги, а также микроблоги в Twitter;
- Написано немало мобильных приложений для обоих сервисов;
- И там и там пока что не было замечено спама в ЛС, вики и багтрекерах;
Что мне не нравится в обоих сервисах:
- Багтрекер не позволяет связывать зависимые друг от друга таски, как это умеет Jira. Вообще-то, учитывая, что BitBucket’ом владеет Atlassian, производитель Jira и Confluence, я немного удивлен;
- Нет локализации. На гитхабе была, да выпилили . У меня нет проблем с английским интерфейсом, но у кого-то они могут быть. И этот кто-то может быть в одной команде разработчиков со мной. А вот у Assembla , например, есть русский интерфейс;
- У обоих сервисов негодные embed-коды (не всегда и не везде корректно отображаются), на pastebin намного лучше;
- Оба, случается, лежат;
Чем GitHub лучше (интереснее, удобнее, …) BitBucket:
-
Предлагает хостинг сайтов , можно даже завести бложикОказалось, это не уникальная фича — см ниже; - Есть Gist , поддержка которого одно время даже была в твиттере , но сейчас ее, кажется, выпилили;
- Веб-интерфейс позволяет посмотреть «git blame»;
- Есть интеграция с IRC, Jabber, Jira (странно, что нет на BitBucket), MantisBT, Bugzilla, поддержка Post-Receive URLs и много чего еще, притом все эти компоненты — OpenSource ;
- Своя сокращалка ссылок git.io , правда у нее нет нормального пользовательского интерфейса;
- Есть поддержка Subversion , которая в настоящее время дорабатывается. У битбакета она была, но в настоящее время заброшена ;
- Более продвинутый поиск. Например, можно искать программистов по стране и используемому языку программирования. Разработчики битбакета говорят, что уже работают над улучшением поиска;
- Рисует красивые картинки (графики активности, «Stats & Graphs» при просмотре репозитория);
- Намного сильнее пропиарен и хостит такие известные проекты, как WordPress и Disqus ;
Чем BitBucket лучше GitHub:
- Принадлежит небезызвестной Atlassian (Jira, Confluence);
- Поддерживает бесплатные закрытые репозитории. Притом у закрытого репозитория может быть, скажем, открытый багтрекер или наоборот. На гитхабе тоже есть закрытые репозитории, но не за бесплатно;
- Есть интеграция с Akismet, Google Analytics и не только ;
- Единственное ограничение у бесплатных аккаунтов стостоит в том, что доступ к закрытому репозиторию могут иметь не более 5-и человек . Никакого ограничения по объему используемого дискового пространства нет, если только вы не попробуете залить в репозиторий шестой сезон «Декстера». На гитхабе за бесплатно дают только 300 Мб;
- Помимо Git также поддерживается Mercurial. У этой VCS есть свои интересные особенности и возможно, что в вашей команде с ней лучше знакомы;
- На мой взгляд, интерфейс у битбакета продуман лучше, чем у гитхаба. Например, с любой страницы можно с легкостью перейти в один из своих репозиториев;
- Есть импорт Git/Mercurial/Subversion репозиториев с GitHub и SourceForge. Удобно для переноса своих проектов или форка чужих;
- Можно рассылать по e-mail инвайты в свой проект;
- Учетную запись можно привязать к собственному домену (как на блогспоте );
- Нормальная техподдержка на groups.google.com . У гитхаба также была группа, но в мае 2011 она закрылась . Насколько я понимаю, никакого официального форума или вроде того у гитхаба теперь нет;
- Поддерживается вход по OpenID (хотя и придется указать пароль, он нужен для удаления репозиториев );
После недолгих размышлений я выбрал для хостинга своего кода BitBucket. И пользовался бы только им, если бы жил в идеальном мире. Однако мне также хочется слать пулл-реквесты и багрепорты для проектов, которые хостятся на GitHub, так что туда я тоже иногда захожу.