Содержание статьи
Ни один нормальный программист не будет создавать папки вроде v001, v002 и распихивать по ним разные версии своих разработок. Вместо этого он воспользуется системой управления версий, а репозиторий разместит онлайн, чтобы работать с кодом могли и другие разработчики. Сделать это можно бесплатно благодаря хостингу кода, выбором которого мы сегодня и займемся.
INFO
Если ты не имел дело с системой управления версий, то перед тем, как читать статью, загляни в архив и найди в #12/2011 номере ][ статью «Git&GitHub: с места в карьер».
Что такое хостинг кода? Это место, куда ты при помощи твоей любимой системы контроля версий можешь загрузить свой код. Таким образом, с кодом смогут работать несколько программистов. При этом хостинг поможет с раздачей прав на проекте и позволит следить за вносимыми в него изменениями. Подобные сервисы предоставляют ряд инструментов для разработки и поддержки проекта, например wiki для составления документации и issue tracker для фиксирования проблем. Более того, пользователи одного сервиса, как правило, становятся членами активного компьюнити, что лучше всего видно на примере GitHub, речь о котором пойдет ниже. Но обо всём по порядку.
SourceForge
- Поддерживаемые системы контроля версий: CVS, SVN, Git, Mercurial, Bazaar.
- Проекты: Только под свободной лицензией.
- Основные возможности: Wiki, bug tracking, code review, почтовые рассылки, форум, shell-сервер.
SourceForge является одним из родоначальников сервисов для хостинга проектов с открытым исходным кодом. Для каждого проекта предоставляется уникальный домен имя_проекта.sourceforge.net, который полностью попадает в распоряжение владельца. Одной из ключевых является возможность быстро развертывать дополнительные приложения. Как тебе идея установить, скажем, issue tracker? Если тебе не нравится используемый по умолчанию mediocre, ты можешь выбрать trac или какой-нибудь еще. То же самое относится и к другим приложениям, которые также можно развернуть: wiki, форум, блог и т. д. Более того, даже если из ни одна предустановленная программа не подошла, ты всегда можешь установить сторонние приложения. Для этого предоставляется shell-сервер, который позволяет загружать рабочие файлы по FTP или SCP. Приложение должно быть написано на PHP/Ruby/Python и использовать в качестве базы данных MySQL. Подобная расширяемость и навороченность затрудняет освоение сервиса: новичку такой перегруженный интерфейс может показаться излишним. С другой стороны, если тебе чего-то не хватает на других хостингах кода, то здесь ты можешь реализовать любой необходимый функционал. Стоит отметить, что сама платформа SourceForge изначально была открыта: ее мог развернуть любой желающий. Однако с 2000 года исходники закрыли — остался лишь форк Savannah.
Резюме: Для эстетов.
Google Code
- Поддерживаемые системы контроля версий: GIT, SVN, Mercurial.
- Проекты: с открытым исходным кодом.
- Основные возможности: code review, wiki, release hosting, issue tracker.
Изначально предполагалось, что этот хостинг проектов от Google станет убийцей SourceForge. Сейчас это один из самых простых в освоении сервисов. По умолчанию для каждого проекта доступны wiki, issue tracker и репозиторий исходного кода. Гибкие настройки позволяют менять названия и содержание указанных страниц. К примеру, если ты уже хранишь исходники, скажем, на GitHub и не хочешь размещать их на Google Code, то просто создаешь страницу wiki с адресом репозитория (чтобы пользователи нашли твои исходники) и указываешь ее в качестве содержания страницы Sources. Стоит также отметить удобство настройки issue-трекера и релизов файлов. Можно задавать свои собственные статусы для issue и метки для выложенных файлов. И наверное, самая главная особенность этого хостинга заключается в том, что он задействует другие сервисы Google. Почтовая рассылка осуществляется с помощью Gmail. Google Groups объединены с issue tracker'ом. В качестве учетных записей, естественно, используются аккаунты Google.
Резюме: Для фанатов Google и новичков.
Assembla
- Поддерживаемые системы контроля версий: Git, SVN, Mercurial.
- Проекты: бесплатные аккаунты для опенсорсных проектов и платные подписки.
- Основные возможности: wiki, tickets, code review, ftp, time tracker, build system.
Этот сервис в некотором роде уникален по своим возможностям. Он имеет как обычные для других хостингов фишки, так и совершенно уникальные. В их число входит поддержка шаблонов отчетов Scrum (популярная сегодня методика управления разработкой информационных систем), продвинутая система тикетов, а также инструменты планирования для гибкой методологии разработки (Agile). Сервис явно рассчитан не на социализацию, а на активную работу: он хорошо подойдет средним и большим командам разработчиков. Здесь есть такие инструменты для совместной работы, как wiki, files, messages (хорошая замена почтовой рассылке), отчеты о проделанной работе, групповой видеочат, а также так называемый «поток активности», который очень наглядно показывает состояние проекта, а также выполняемые задачи. Среди огромного количества клиентов (а их больше полумиллиона) есть немало крупных компаний, которым необходимы средства для управления работой над проектом: метрики, статистика кода, time tracking и т. д.
Резюме: Для больших команд и компаний.
Bitbucket
- Поддерживаемые системы контроля версий: Git, Mercurial.
- Проекты: неограниченное количество открытых и закрытых репозиториев с возможностью добавлять до пяти коллабораторов (коллабораторами обычно называют соразработчиков). Платные подписки.
Многие программисты знакомы с баг-трекером JIRA, который используется во многих крупных компаниях. Это разработка известной австралийской компании Atlassian, в портфеле продуктов которой, помимо прочего, есть и хостинг кода. Bitbucket (Корзина битов) с функциональной точки зрения предлагает то же самое, что и GitHub. Однако основой этого хостинга является не система контроля версий Git, а Mercurial, что стало одной из ключевых причин его популярности. Сейчас используемая система контроля версий не так уж и важна: хостинг поддерживает и Mercurial, и Git. Самая же главная киллер-фича, из-за которой многие отдают предпочтение именно Bitbucket, — это возможность бесплатно создавать неограниченное количество закрытых репозиториев кода (в каждом может быть до пяти участников). У GitHub за подобную услугу пришлось бы платить денежки. К тому же проект здесь никак не ограничен в объеме дискового пространства. Хостинг может помочь переехать с других сервисов (ты просто указываешь адрес, а остальное он сделает сам), а благодаря сходству интерфейса с интерфейсом GitHub переезд будет безболезненным. Но следует заметить, что у сервиса слабо развиты инструменты для review кода — нет возможности комментировать отрывки кода и начинать процесс review как таковой. Зато Bitbucket предлагает удобную интеграцию с другими сервисами, например хотя бы с тем же самым баг-текером JIRA, а REST API позволяет создать привязку для любого другого инструмента.
Резюме: Для фанатов Git и Mercurial.
GitHub
- Поддерживаемые системы контроля версий: Git, SVN (git-svn).
- Проекты: бесплатные публичные репозитории (300 МБ общего дискового пространства), платные подписки (закрытые репозитории), командные аккаунты.
- Основные возможности: code review, fork, wiki, issue tracker, почтовые рассылки, сохранения заметок.
Лозунг этого хостинга, непосредственно отражающий его философию, — социальный кодинг. Здесь все крутится вокруг кода и совместной работы разработчиков. После авторизации ты увидишь что-то вроде страницы в Facebook — только вместо новостей друзей здесь отображаются изменения в интересующих тебя проектах и активность программистов. Это лучшая площадка, чтобы найти энтузиастов, которые могли бы принять участие в твоем проекте, или с головой окунуться в идею, которую кто-то здесь уже развивает. В погоне за социализацией разработчики не оставили без внимания и самое важное — работу с кодом. Чего стоит один только просмотрщик изменений (diff viewer), с помощью которого ты можешь комментировать и обсуждать любую строчку кода. Чтобы создать форк проекта, требуется всего лишь дважды кликнуть мышью. Если ты хочешь, чтобы твои изменения попали в основной репозиторий, следует отправить специальный запрос (так называемый pull request) его владельцу. Основой сервиса является распределенная система контроля версий Git. Веб-интерфейс с легкостью позволяет делать форки, накладывать патчи, предлагать слияния (merge requests). Тут же можно развернуть дискуссию — интерфейс сделан так, что тот, кому адресовано сообщение, обязательно заметит его. GitHub также предлагает один из лучших инструментов для review кода. Среди возможностей этого инструмента — подсветка и определение языка кода, комментирование строк кода и коммитов. Некоторые по разным причинам недолюбливают GitHub, но, тем не менее, можно сказать наверняка, что это самый популярный среди хостингов Git-репозиториев. И тебе он тоже понравится.
Резюме: Для фанатов Git и новичков.
CodePlex
- Поддерживаемые системы контроля версий: Mercurial, TFS (Microsoft Team Foundation Server).
- Проекты: только под свободной лицензией.
- Основные возможности: wiki, code review, почтовая рассылка.
Если и искать где-то проекты с открытым исходным кодом на платфторме .Net, то на Codeplex. В этом нет ничего удивительного — ведь это проект компании Microsoft. И хотя никто не накладывает ограничения на инструменты, используемые для разработки, этот хостинг считается настоящей Меккой для проектов на .Net. Что говорить, если прямо из Visual Studio можно работать с тасками, багами и версиями проектов, которые хостятся на CodePlex. Сервис полностью бесплатный. Каждому проекту выделяется домен имя_проекта.codeplex.com. Изначально скрытая страница проекта не раскрывается в течение месяца, чтобы у разработчика была возможность заполнить документацию, выложить текущие исходники и определиться с лицензией. После публикации проект начинает настоящую жизнь — с этого момента можно подключать разработчиков и редакторов, начинать обсуждения и т. д. В целом CodePlex оставляет ощущения продуманного проекта и по функционалу сильно напоминает GitHub. Тем не менее, этот сервис больше подойдет программистам-одиночкам или небольшим командам разработчиков, так как интерфейс заточен под wiki, а не под исходный код. Другими словами, платформа, скорее, ориентирована на публикацию (ведение документации), а не на разработку.
Резюме: Для разработчиков .Net.
Gitorious
- Поддерживаемые системы контроля версий: Git.
- Проекты: публичные репозитории.
- Основные возможности: wiki, code review, почтовая рассылка
Как несложно понять из названия, это хостинг для Git-репозиториев кода. Он появился раньше, чем GitHub, но развивался довольно вяло. Это особенно странно с учетом того, что исходники Gitorious с самого начала были открыты. Таким образом, ты без проблем сможешь развернуть подобный сервис на своих серверах и использовать свой собственный хостинг кода для работы с файлами разных проектов (например, внутри предприятия). Правда, спешу предупредить, что в плане удобства проект, на мой взгляд, оставляет желать лучшего. Он скорее подходит индивидуальным разработчикам, чем команде кодеров. К примеру, здесь напрочь отсутствуют хоть какие-нибудь инструменты для review кода. От встроенного wiki нет никакого толку — он абсолютно не годится для ведения проектной документации. Перемещаться по дереву исходников и просматривать blob'ы (используемые в Git структуры данных) неудобно. С другой стороны, местами интерфейс даже понятнее, чем у GitHub: например, очень наглядно отображается части проекта и права доступа. Если GitHub — это настоящая кладезь интересных проектов, то на Gitorious не так много известных разработок. Если бы не репозитории библиотек Qt, то проект, возможно, зачах бы совсем.
Резюме: Для фанатов Git.
Kiln
- Поддерживаемые системы контроля версий: Mercurial.
- Проекты: только платные подписки (возможен бесплатный доступ на 45 дней).
- Основные возможности: code review, bug tracker.
Этот сервис можно назвать одним из лучших хостингов Mercurial-репозиториев, у которого, пожалуй, есть только один минус — он платный. Использовать его — одно удовольствие. Для миграции с других хостингов предлагается специальная утилита импорта, по умолчанию настроенная на твой аккаунт, что позволяет очень быстро сделать импорт из Git-, SVN-, Mercurial-репозиториев. Для работы под виндой предоставляется расширенная версия клиента TortoiseHg, специально заточенного под этот сервис. Kiln имеет грамотный интерфейс для review-кода, да и вообще весь UI выполнен на самом высоком уровне. В качестве bug tracker'а предлагается отдельный продукт, известный в кругах программистов, — FogBugz (правда, только при расширенной подписке). В целом этот сервис хорошо подходит для новичков, которым придется по душе продуманный и не перегруженный лишними наворотами интерфейс. Короче говоря, с Kiln можно сразу заняться написанием кода, а не возиться с настройкой среды разработки. Но для этого, увы, придется заплатить денежку.
Резюме: Для фанатов Mercurial и новичков.
Launchpad
- Поддерживаемые системы контроля версий: Bazaar.
- Проекты: опенсорсные проекты.
- Основные возможности: code review, bug tracker, faq, answers.
Этот хостинг кода примечателен прежде всего тем, что построен на системе контроля версий Bazaar, разработанной компанией Canonical. Собственно, самим Launchpad занимаются те же самые разработчики. Если ты пытаешься вспомнить, где слышал название этой компании, подскажу: это те же парни, которые породили на свет бешено популярный Ubuntu Linux. Нет ничего удивительного в том, что Launchpad ориентирован на эту ОС. Например, он поддерживает Ubuntu PPA (Personal Package Archives), что позволяет легко снабжать пользователей Убунты программами и обновлениями. Для большинства проектов, которые хостятся на Lauchpad, необходим готовый репозиторий для Linux-пользователей. Не могу не отметить несколько фишек, которые крайне удобны в работе. К примеру, для каждого проекта можно сделать раздел «Вопросы и ответы», а продвинутый инструмент для code review сам проверит все конфликты и оповестит всех участников, открыв на сайте дискуссию.
Резюме: Для фанатов Ubuntu.
Так что же выбрать?
Каждый выбирает сервис под себя. Но если хочешь моего совета, то я бы рекомендовал начинающим разработчикам GitHub или Bitbucket. Это отменные сервисы, которые к тому же отлично документированы: ты без труда сможешь освоить не только внутреннюю кухню самих хостингов кода, но и приобщиться к системе контроля версий в целом. У GutHub огромное комьюнити и один из самых передовых интерфейсов, а Bitbucket позволяет создавать закрытые репозитории — а это дорого стоит. Тем программистам, которые специализируются на .Net, возможно, приглянется CodePlex — он один может похвастаться интеграцией с Visual Studio. В случае если нужно просто выложить дистрибутив и документацию, а заодно пообщаться с пользователями, неплохим выбором будет Google Code. Если твоя разработка потенциально может заинтересовать пользователей Ubuntu Linux, то можно попробовать LaunchPad. Assembla и Kiln подойдут программистам, работающим в команде, но им я советовать ничего не буду. Они и так все знают. 🙂