Существуют ли альтернативы с открытым исходным кодом для Bitbucket, Github, Kiln и аналогичных инструментов просмотра и управления DVCS? [закрыто]

68

Мне известны несколько инструментов / сервисов, которые обеспечивают просмотр и управление DVCS , такие как Bitbucket , Github , Kiln , SCM-Manager и Rhodecode .

Тем не менее, рассматриваемый мной вариант использования таков:

  1. Любой исходный код должен находиться на внутренних серверах работодателя.
  2. Решение должно быть с открытым исходным кодом.
  3. Он должен обеспечивать опыт работы с Bitbucket или Github, включая вики проекта, просмотр и управление хранилищем, а также аспекты социального кодирования, такие как проверка кода.
  4. Решение должно иметь поддержку Mercurial (если не поддержка других DVCS).

Из них только SCM-Manager и RhodeCode подходят друг к другу, поскольку они могут быть установлены на ваших собственных серверах и имеют открытый исходный код. Однако они не имеют опыта работы с Bitbucket или Github. Здесь нет системы отслеживания проблем или вики, и пользовательский интерфейс, хотя и функционален, не соответствует Github или Bitbucket.

Я могу познакомиться с Trac или Redmine с их браузерами репозитория, но, к сожалению, у них нет никаких возможностей управления репозиторием.

Существуют ли другие инструменты с открытым исходным кодом, которые могли бы предоставить аналогичные возможности для Bitbucket, Github или Kiln?

Райан Тейлор
источник
4
GitHub Enterprise работает во внутренней сети. enterprise.github.com
5
redmine.org
sylvanaar
4
@ Sylvanaar Насколько мне известно, Redmine не предоставляет возможности управления хранилищем, только просмотр хранилища.
Райан Тейлор
3
gitlabhq.com - самый близкий мне GitHub
Эндрю Т Финнелл
8
Я голосую, чтобы открыть. Это очень популярный вопрос. Зачем закрывать? Можем ли мы хотя бы перенести его в другое место?
Уильям Леара

Ответы:

31

Я бы взглянул на Fossil. Это система, которую разработчики sqlite используют, по-видимому, внутренне. Он также использует sqlite, которая является хорошей надежной технологией ... приятной и переносимой, а также простой и надежной.

У него хороший, но строгий пользовательский интерфейс (который, я думаю, следует природе цели, ориентированной на производительность, как вы описываете). ((Обязательно ознакомьтесь с «серой» темой. Она гораздо менее «router-admin», чем «тема» по умолчанию, если вы могли бы так ее назвать.)) Я был привлечен к ней из-за ее корней как CGI основанная система, потому что я отстой для CGI. Результаты этого наследия на самом деле очень интересны, так как эта система имеет очень уникальный режим JSON-ONLY, который имеет все виды интересных возможностей реализации.

Они упоминают об этом - но стоит повторить, что у него 0 зависимостей. Нет php, нет mySQL, нет python. Нада. Это его собственный двоичный исполняемый файл - и он работает на многих платформах. Желаю, чтобы больше проектов "думали" так же.

Я не связан с ними, поэтому просто процитирую их восхваления на начальной странице , с которыми, как правило, я согласен ... также взглянем на вопросы и критику ...

Отслеживание ошибок и вики - Помимо распределенного контроля версий, такого как Git и Mercurial, Fossil также поддерживает распределенное отслеживание ошибок, распределенную вики и механизм распределенных блогов - все в одном интегрированном пакете.

Веб-интерфейс - Fossil имеет встроенный и простой в использовании веб-интерфейс, который упрощает отслеживание проекта и повышает осведомленность о ситуации. Просто введите "Fossil UI" из любой проверки, и Fossil автоматически откроет ваш веб-браузер на странице, которая предоставляет подробную графическую историю и информацию о состоянии этого проекта.

Autosync - Fossil поддерживает режим «autosync», который помогает поддерживать продвижение проектов за счет уменьшения количества ненужных разветвлений и слияний, часто связанных с распределенными проектами.

Автономный - Fossil - это отдельный автономный исполняемый файл, содержащий все необходимое для управления конфигурацией. Установка тривиальна: просто скачайте предварительно скомпилированный двоичный файл для Linux, Mac или Windows и поместите его в $ PATH. Легко компилируемый исходный код доступен для пользователей на других платформах. Ископаемые источники также в основном автономны, для сборки требуются только библиотека "zlib" и стандартная библиотека C.

Простые сети - Fossil использует старый добрый HTTP (с поддержкой прокси) для всех сетевых коммуникаций, что означает, что он отлично работает из-за ограничительных межсетевых экранов. Протокол обеспечивает пропускную способность до такой степени, что Fossil можно удобно использовать по коммутируемому интернет-соединению.

CGI включен - сервер не требует использования ископаемых. Но сервер делает сотрудничество проще. Fossil поддерживает три разные, но простые конфигурации серверов. Самым популярным является двухстрочный CGI-скрипт. Это подход, используемый самодостаточными хранилищами ископаемых.

Надежный и надежный - Fossil хранит контент, используя постоянный формат файла в базе данных SQLite, так что транзакции являются атомарными, даже если они прерываются из-за потери питания или сбоя системы. Кроме того, автоматические самопроверки проверяют, что все аспекты хранилища согласованы перед каждой фиксацией. За более чем три года работы ни одна работа не была потеряна после того, как она была помещена в хранилище Ископаемых.

Обновление: вместо того, чтобы ссылаться на интерфейс, вот краткий обзор этого ... Как вы можете видеть, это определенно просто ... Но это также означает чистый лист для настройки ... Просто одна таблица стилей и заголовок / нижний колонтитул / тип тела система шаблонов. Лучше написать небольшой рассказ, чем переписать чужую книгу, ИМО.

ископаемый интерфейс

Алекс Грей
источник
3
+1 за ископаемое. Я широко использовал его здесь на работе, и единственным «недостатком», который я видел, является та зона, в которую вписывается черепаха (git / hg / svn). Тем не менее, есть проект winfossil . Он размещен в окаменелости, если вы хотите взглянуть на веб-интерфейс проекта, помимо самого ископаемого.
Спенсер Рэтбун
1
Ископаемый абсолютно потрясающий. Это редко, что я использую, но это правда.
Хайлем
16

Gitorious является открытым исходным кодом, и вы можете установить его на свой собственный сервер, используя сценарии, предоставленные выпуском сообщества Gitorious (см. Http://www.getgitorious.com/installer ). Gitorious теперь поддерживает вики и отслеживание ошибок. Существует также образ Docker для быстрого запуска.

Другим вариантом может быть Gitlab, который по сути является клоном GitHub, не такой зрелый, как увлекательный, но он находится в стадии разработки с ежемесячными выпусками.

Вы также можете проверить больше вариантов здесь

ТБГ
источник
Процесс установки Gitorious был упрощен. Вы можете использовать сценарий установки ( getgitorious.com/installer ) или перейти к готовому к запуску образу виртуальной коробки ( getgitorious.co/install-gitorious )
Питер Буткович,
Код можно найти по адресу gitorious.org/gitorious/mainline
The Demz
8

Ваши ограничения довольно специфичны, но я думаю, что вы можете получить желаемые результаты с помощью плагинов ChiliProject +.

ChiliProject - это форк Redmine, использующий обновленные версии Ruby / Rails. Он очень хорошо поддерживает git и mercurial и реплицирует функциональность Github Issues, которая выглядит так, как будто вы ищете, анализируя сообщения коммитов (т. refs 291Е. В коммите будет связываться коммит с проблемой # 291).

Существуют также плагины Redmine / ChiliProject, которые предоставляют такие средства, как обзор кода, подсветка синтаксиса и другие тонкости, которые Github и т. Д. Предоставляют, которые могут быть неочевидными или недоступными у конкурентов с открытым исходным кодом.

Существуют и другие варианты, JIRA и т. Д., Но они (IMHO) не обеспечивают гибкости или богатства функциональных возможностей, которые предоставляет вилка ChiliProject в Redmine + множество доступных плагинов. Github и / или BitBucket мало что могут для вас сделать, чего не может сделать ChiliProject (возможно, со свободно доступными плагинами); и прелесть в том, что, если он еще не существует, обычно довольно просто реализовать его самостоятельно.

Если это звучит больше, чем нужно ... Я еще не пробовал, но GitLab также выглядит интересно ... Кажется, у него нет расширяемости или архитектуры плагинов Redmine / Chili, но если вы ищете для клона с открытым исходным кодом Github с большинством базовых функций (и вам не нужно поддерживать несколько DVCS), это выглядит довольно хорошо.

Джейсон Льюис
источник
Кроме того, если вам нужны сетевые инструменты управления исходным кодом ... Я успешно использовал Gitosis с Redmine / ChiliProject ... не уверен в эквиваленте для Mercurial, но добавить его довольно просто.
Джейсон Льюис
Обновление: Redmine также использует последние версии Rails (если вы имеете в виду Rails 3) начиная с Redmine 2.
альтернатива
7

Allura http://sf.net/p/allura должен отвечать всем требованиям. Это платформа для всех новых (или обновленных) проектов на SourceForge и с открытым исходным кодом. Он поддерживает Mercurial и вики, а также множество других инструментов (Git, SVN, система отслеживания билетов, форумы и т. Д.). Он не имеет «проверки кода», но поддерживает запросы разветвления и объединения для репозиториев Mercurial и Git.

Он написан на Python и использует MongoDB и Solr для хранения данных.

Allura также в настоящее время находится в инкубаторе Apache: http://incubator.apache.org/projects/allura.html.

Я работаю на SourceForge и помогаю развивать Allura.

Дейв Брондсема
источник
6

Для точно такой же проблемы на работе мы используем экосистему, состоящую из:

  • Redmine для отслеживания проблем
  • RhodeCode для управления репозиторием
  • Jenkins для непрерывной интеграции и развертывания (у нас есть задания для задач развертывания и обновления, которым можно детально назначать разрешения, и вы получаете контрольный журнал бесплатно)
  • Active Directory для аутентификации (все вышеперечисленное может легко интегрироваться с ней)

Интеграция DVCS в Redmine значительно улучшилась в более поздних выпусках, я обновился несколько недель назад, и я очень рад, что большинство "ошибок" пропало.

Я запускаю серверы Redmine и RhodeCode на одном хосте, потому что Redmine пока не поддерживает удаленные репозитории HG. Дженкинс работает на нескольких других хостах.

Я использую крючок RhodeCode, чтобы вызвать ртутные вытягивания в Redmine. Я не могу использовать хук для тяги Дженкинса из -за JENKINS-13717 , но я уже представил патч для этого, и я думаю, что он будет принят довольно быстро. А пока я просто опрашиваю репозитории HG каждые несколько минут.

Все работает на Debian 6.0 через обратное проксирование Nginx, чтобы получить завершение SSL (все это используется только через SSL). Недавно весь пакет был перемещен в кластер ProxMox, чтобы виртуализировать все это с большими результатами. Если вы не знаете продукт, вы должны взглянуть на него. Это один из тех продуктов типа « Я не могу поверить, что это существует, и я не знал об этом, и OMG, это тоже с открытым исходным кодом! ». Мы запускаем эти сервисы на контейнерах OpenVZ, которые легко переносятся с одного хоста на другой для ремонта / обновления оборудования. В том же кластере мы также запускаем несколько виртуальных машин KVM для автоматического тестирования на платформах Windows.

Я очень доволен этой экосистемой. Это значительно улучшило способность нашей команды разработчиков и разработчиков по качеству воспроизводить проблемы и отслеживать изменения. Всего несколько предупреждений:

  • Если вы используете Rhodecode, не устанавливайте его на SQLite. Используйте MySQL или другую настоящую СУБД. После этого он не может быть перенастроен, и SQLite использует только 1 соединение за раз, что приводит к забавным блокировкам и тайм-аутам (см. RhodeCode # 439 ). Это становится болезненным, если Jenkins постоянно опрашивает репо, когда вы время от времени получаете сообщения об ошибках (см. Комментарий выше по проблеме Jenkins).
  • Вы действительно не можете подчеркнуть своим разработчикам, что в Mercurial коммит номер «132» ничего не значит для всех остальных в сети, поскольку эти цифры являются только локальными . Говоря о наборах изменений в билетах Redmine, либо используйте локальный номер редакции, который вы можете получить из браузера репозитория (который одинаков как в RhodeCode, так и в Redmine, так как они работают на одной машине), либо используйте commit:abcd1234.

Я не колеблясь рекомендую эту настройку, поскольку я очень доволен ею. Если вам нужна помощь в настройке конкретной службы или вы хотите посмотреть мои файлы конфигурации, не стесняйтесь спрашивать.

GomoX
источник
2

Взгляните на cydra: https://github.com/mensi/cydra, для которого она поддерживается

  • Subversion (HTTP)
  • Git (HTTP и SSH на отдельном порту)
  • Mercurial (HTTP)
  • Trac

Он работает на основе проектного подхода, который позволяет создавать проект и назначать ему несколько репозиториев (не более одного репозитория SVN). Аутентификация основана на отдельных плагинах (мы интегрировали ее в наш ldap).

Мы используем его для нашей платформы кодирования https://code.vis.ethz.ch . На данный момент нет никакой поддержки для проверки кода, но он может быть легко добавлен как плагин.

Я не могу публиковать скриншоты, так как у меня недостаточно репутации.

паскаль
источник
1
Проект Cydra выглядит так, как будто он только начался несколько месяцев назад и, похоже, не очень активно развивается. Может быть немного незрелым, чтобы упомянуть.
R0MANARMY
Да ты прав. Но затем, если вы хотите настроить что-то вроде платформы для размещения кода, вы можете захотеть настроить множество вещей самостоятельно. Поэтому я подумал, что стоит упомянуть.
Паскаль
2

Подумайте об использовании GitLab https://about.gitlab.com/, поскольку он отвечает большинству ваших требований:

  1. Вы можете установить его на месте
  2. Это MIT Expat лицензирован
  3. Он имеет вики (на основе git), просмотр репозитория, подробное управление доступом (несколько уровней доступа, защищенные ветви, интеграция с ldap и т. Д.), А также запросы на слияние для проверки и обсуждения кода (включая комментарии строк)
  4. Он не поддерживает Mercurial, а только Git

У него также есть хороший трекер, или вы можете связать его с внешним трекером. Вы можете проверить свои запросы на слияние с GitLab CI, если хотите. GitLab быстро растет и используется более чем 25 000 организаций.

Раскрытие информации: я генеральный директор и соучредитель GitLab BV

Сыце Сейбрандий
источник