Чи є альтернативи з відкритим кодом для Bitbucket, Github, Kiln та подібних інструментів для перегляду та управління DVCS? [зачинено]


68

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

Однак я розглядаю випадок використання, який є таким:

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

З них лише SCM-менеджер та RhodeCode наближаються, оскільки вони можуть бути встановлені на ваших власних серверах і є відкритим кодом. Однак у них немає досвіду Bitbucket або Github. Немає трекера або вікі випусків, а інтерфейс користувача, хоча функціональний, не відповідає рівним Github або Bitbucket.

Я можу зблизитися з Trac або Redmine з їх браузерами сховищ, але, на жаль, у них немає можливостей управління сховищами.

Чи є інші інструменти з відкритим кодом, які надають подібний досвід Bitbucket, Github чи Kiln?


4
GitHub Enterprise працює у внутрішній мережі. enterprise.github.com


4
@sylvanaar Наскільки мені відомо, Redmine не забезпечує можливості управління сховищами, лише перегляд сховищ.
Райан Тейлор

3
gitlabhq.com - найближчий, який я бачив GitHub
Ендрю Т Фіннелл

8
Я голосую за повторне відкриття. Це надзвичайно популярне питання. Навіщо його закривати? Чи можемо ми хоча б перенести це в інше місце?
Вільям Лера

Відповіді:


31

Я хотів би поглянути на Fossil. Це система, яку розробники sqlite використовують всередині, мабуть. Він також використовує sqlite, що є хорошою суцільною технологією ... що є приємним і портативним - а також простим і надійним.

Це хороший, якщо суворий користувальницький інтерфейс (який, на мою думку, відповідає характеру цілей, орієнтованих на продуктивність, таких як ви описуєте). ((Не забудьте перевірити "сіру" тему. Це набагато менше "маршрутизатора-адміністратора", ніж "тема" за замовчуванням, якщо ви можете так назвати.)) Мене звернули до неї через коріння як CGI заснована на системі, тому що я засмоктую CGI. Результати цієї спадщини насправді дуже цікаві, оскільки ця система має дуже унікальний режим JSON-ONLY, який має всілякі цікаві можливості реалізації.

Вони згадують про це - але варто повторити, що він має 0 залежностей. Ні php, ні mySQL, ні пітон. Нада. Це власний двійковий виконуваний файл - і він працює на багатьох платформах. Бажаю, щоб більше проектів «думали» так само.

Я не пов’язаний з ними, тому просто цитую їх висловлювання на початковій сторінці , що, як правило, я погоджуюсь з .. також погляньте на питання та критику ..

Відстеження помилок та Wiki - Крім того, що здійснює контроль розподілених версій, як Git та Mercurial, Fossil також підтримує розподілене відстеження помилок, розповсюджені вікі та механізм розподіленого блогу - все в єдиному інтегрованому пакеті.

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

Автосинхронізація - Fossil підтримує режим "автосинхронізації", який допомагає продовжувати рух проектів вперед шляхом зменшення кількості непотрібних розгортань та об'єднання, часто пов'язаних з розподіленими проектами.

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

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

CGI увімкнено - для використання копалин не потрібен жоден сервер. Але сервер спрощує співпрацю. Fossil підтримує три різні, але прості конфігурації сервера. Найпопулярнішим є 2-рядковий сценарій 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
Демз

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 repos.

Він написаний на Python і використовує MongoDB та Solr для зберігання даних.

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

Я працюю в SourceForge і допомагаю розвивати Allura.


6

Для точно такого ж питання на роботі ми використовуємо екосистему, що складається з:

  • Redmine для відстеження проблем
  • RhodeCode для управління сховищами
  • Дженкінс для постійної інтеграції та розгортання (у нас є завдання для розгортання та оновлення завдань, яким можна присвоїти дозволу детально, і ви отримаєте слід аудиту безкоштовно)
  • 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 з'єднання за один раз, що призводить до смішних блокувань та тайм-аутів (див . № 439 RhodeCode ). Це стає болісним, якщо Дженкінс невпинно опитує репо, коли ви отримуєте повідомлення про помилки час від часу (див. Коментар вище щодо питання Дженкінса).
  • Ви дійсно не можете наголосити своїм дияволам на тому, що в Mercurial номер фіксації "132" не означає нічого для всіх інших у мережі, оскільки ці номери є лише локальними . Якщо говорити про набори змін всередині квитків Redmine, будь-ласка, використовуйте місцевий номер редакції, який ви можете отримати в браузері repo (який однаковий і в RhodeCode, і в Redmine, оскільки вони працюють на одній машині), або використовуйте commit:abcd1234.

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


2

Погляньте на cydra: https://github.com/mensi/cydra, для якої вона має підтримку

  • Subversion (HTTP)
  • Git (HTTP та SSH на окремому порті)
  • Mercurial (HTTP)
  • Trac

Він працює на проектному підході, який дозволяє створити проект та призначити йому декілька сховищ (щонайбільше одного сховища SVN). Auth заснований на окремих плагінах (ми інтегрували його в наш ldap).

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

Я не можу публікувати скріншоти, оскільки у мене недостатньо репутації.


1
Проект Cydra, схоже, ледве розпочався кілька місяців тому і, здається, не дуже активно розвивався. Можна трохи згадати.
R0MANARMY

Так, ти правий. Але тоді, якщо ви хочете налаштувати щось на зразок платформи хостингу коду, ви можете самостійно налаштувати багато матеріалів. Тому я подумав, що це варто згадати.
Паскаль

2

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

  1. Ви можете встановити його на місцях
  2. Це ліцензія експедитора MIT
  3. Він має вікі (підкріплений git), перегляд сховищ, детальне управління доступом (кілька рівнів доступу, захищені гілки, інтеграція ldap тощо) та має запити на об'єднання для огляду та обговорення коду (включаючи коментарі до рядків)
  4. Він не підтримує меркурій, а лише git

Він також має хороший трекер випуску або ви можете зв’язатись із зовнішнім трекером випусків. Ви можете протестувати свої запити на об'єднання за допомогою програми GitLab CI. GitLab швидко зростає і використовується у більш ніж 25 000 організацій.

Розкриття інформації: Я генеральний директор і співзасновник GitLab BV

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.