Gibt es Open-Source-Alternativen zu Bitbucket, Github, Kiln und ähnlichen DVCS-Browsing- und -Management-Tools? [geschlossen]

68

Mir sind verschiedene Tools / Dienste bekannt, die das Durchsuchen und Verwalten von DVCS ermöglichen, z. B. Bitbucket , Github , Kiln , SCM-Manager und Rhodecode .

Der Anwendungsfall, den ich in Betracht ziehe, sieht jedoch so aus:

  1. Jeder Quellcode muss sich auf den internen Servern eines Arbeitgebers befinden.
  2. Die Lösung muss Open Source sein.
  3. Es sollte ein Bitbucket- oder Github-ähnliches Erlebnis bieten, einschließlich eines Projekt-Wikis, Repository-Browsing und -Management sowie Aspekten der sozialen Codierung wie Code-Überprüfung.
  4. Die Lösung sollte Quecksilber-Unterstützung bieten (sofern diese nicht für andere DVCSs unterstützt wird).

Davon kommen nur SCM-Manager und RhodeCode zum Einsatz, da sie auf Ihren eigenen Servern installiert werden können und Open Source sind. Sie haben jedoch nicht die Erfahrung von Bitbucket oder Github. Es gibt keinen Issue Tracker oder Wiki und die Benutzeroberfläche ist zwar funktionsfähig, aber nicht mit Github oder Bitbucket vergleichbar.

Ich kann Trac oder Redmine mit ihren Repository-Browsern näher bringen, aber leider haben sie keine Repository-Verwaltungsfunktionen.

Gibt es andere Open-Source-Tools, die Bitbucket, Github oder Kiln ähneln?

Ryan Taylor
quelle
4
GitHub Enterprise läuft im internen Netzwerk. enterprise.github.com
5
redmine.org
sylvanaar
4
@sylvanaar Meines Wissens bietet redmine keine Repository-Verwaltungsfunktionen, sondern nur das Durchsuchen von Repositorys.
Ryan Taylor
3
gitlabhq.com kommt GitHub am nächsten
Andrew T Finnell
8
Ich stimme für die Wiedereröffnung. Dies ist eine sehr beliebte Frage. Warum es schließen? Können wir es zumindest an einen anderen Ort migrieren?
William Leara

Antworten:

31

Ich würde mir Fossil ansehen. Es ist das System, das die Entwickler von SQLite anscheinend intern verwenden. Es ist auch verwendet SQLite, die eine gute und solide Technologie ist ... das ist schön und tragbar - sowie einfach und zuverlässig.

Es hat eine gute, wenn auch strenge Benutzeroberfläche (was meiner Meinung nach der Natur eines produktivitätsorientierten Ziels entspricht, wie Sie es beschreiben). ((Schauen Sie sich unbedingt das "graue" Thema an. Es ist weitaus weniger "Router-Admin" als das Standard "Thema", wenn Sie es so nennen könnten.)) Ich habe mich wegen seiner Wurzeln als CGI dafür interessiert basiertes System, weil ich ein Trottel für CGI bin. Die Ergebnisse dieses Erbes sind tatsächlich sehr interessant, da dieses System einen sehr einzigartigen JSON-ONLY-Modus hat, der alle möglichen interessanten Implementierungsmöglichkeiten bietet.

Sie erwähnen es - aber es lohnt sich zu wiederholen, dass es 0 Abhängigkeiten hat. Kein PHP, kein MySQL, kein Python. Nada. Es ist eine eigene ausführbare Binärdatei und funktioniert auf vielen Plattformen. Ich wünsche mir mehr Projekte, die auf die gleiche Weise "gedacht" haben.

Ich bin nicht mit ihnen verbunden, daher zitiere ich einfach die Lobeshymnen der ersten Seite , denen ich im Allgemeinen zustimme. Schauen Sie sich auch Fragen und Kritik an .

Fehlerverfolgung und Wiki - Zusätzlich zur verteilten Versionskontrolle wie Git und Mercurial unterstützt Fossil auch die verteilte Fehlerverfolgung, das verteilte Wiki und einen verteilten Blog-Mechanismus in einem einzigen integrierten Paket.

Webinterface - Fossil verfügt über ein integriertes und benutzerfreundliches Webinterface, das die Projektverfolgung vereinfacht und das Situationsbewusstsein fördert. Geben Sie einfach "fossil ui" aus jedem Checkout heraus ein und Fossil öffnet automatisch Ihren Webbrowser auf einer Seite, die detaillierte grafische Verlaufs- und Statusinformationen zu diesem Projekt enthält.

Autosync - Fossil unterstützt den "Autosync" -Modus, der dazu beiträgt, Projekte voranzutreiben, indem weniger unnötiges Verzweigen und Zusammenführen erforderlich ist, wie dies häufig bei verteilten Projekten der Fall ist.

Eigenständig - Fossil ist eine einzelne eigenständige ausführbare Datei, die alles enthält, was für das Konfigurationsmanagement erforderlich ist. Die Installation ist trivial: Laden Sie einfach eine vorkompilierte Binärdatei für Linux, Mac oder Windows herunter und speichern Sie sie auf Ihrem $ PATH. Der einfach zu kompilierende Quellcode steht Benutzern auf anderen Plattformen zur Verfügung. Fossile Quellen sind größtenteils auch in sich geschlossen, sodass nur die Bibliothek "zlib" und die Standard-C-Bibliothek erstellt werden müssen.

Einfaches Netzwerk - Fossil verwendet für die gesamte Netzwerkkommunikation einfaches altes HTTP (mit Proxy-Unterstützung), was bedeutet, dass es auch hinter restriktiven Firewalls funktioniert. Das Protokoll ist bandbreiteneffizient, sodass Fossil bequem über eine DFÜ-Internetverbindung verwendet werden kann.

CGI aktiviert - Für die Verwendung von fossil ist kein Server erforderlich. Ein Server erleichtert jedoch die Zusammenarbeit. Fossil unterstützt drei verschiedene und dennoch einfache Serverkonfigurationen. Am beliebtesten ist ein zweizeiliges CGI-Skript. Dies ist der Ansatz, der von den sich selbst hostenden fossilen Endlagern verwendet wird.

Robust und zuverlässig - Fossil speichert Inhalte in einem dauerhaften Dateiformat in einer SQLite-Datenbank, sodass Transaktionen selbst dann atomar sind, wenn sie durch einen Stromausfall oder einen Systemabsturz unterbrochen werden. Darüber hinaus stellen automatische Selbstprüfungen vor jedem Commit sicher, dass alle Aspekte des Repositorys konsistent sind. In mehr als drei Betriebsjahren gingen keine Arbeiten verloren, nachdem sie in ein Fossil-Endlager verbracht wurden.

Update: Anstatt auf die Benutzeroberfläche zu verweisen, hier eine kurze Darstellung… Wie Sie sehen, ist es definitiv einfach. Aber das bedeutet auch eine saubere Tabelle für die Anpassung. Nur ein einziges Stylesheet und ein Kopf- / Fuß- / Körpertyp Template-System. Es ist besser, eine Kurzgeschichte zu schreiben, als das Buch eines anderen, IMO, neu zu schreiben.

fossil ui

alex grau
quelle
3
+1 für fossil. Ich habe es hier bei der Arbeit ausgiebig benutzt, und der einzige "Nachteil", den ich gesehen habe, ist die Zone, in die Schildkröte (git / hg / svn) passt. Es gibt jedoch das winfossil- Projekt. Es wird in fossil gehostet, wenn Sie einen Blick auf die Weboberfläche eines Projekts neben fossil selbst werfen möchten.
Spencer Rathbun
1
Fossil ist absolut genial. Es ist selten, was ich benutze, aber es ist die Wahrheit.
Haylem
16

Gitorious ist Open Source und Sie können es auf Ihrem eigenen Server mithilfe von Skripten installieren, die von der Gitorious Community Edition bereitgestellt werden (siehe http://www.getgitorious.com/installer ). Gitorious unterstützt jetzt Wikis und Issue Tracking. Es ist auch ein Docker-Image verfügbar, mit dem Sie es schnell zum Laufen bringen können.

Eine andere Option wäre Gitlab, das im Grunde genommen ein GitHub-Klon ist, nicht so ausgereift wie großartig, aber mit monatlichen Veröffentlichungen in ständiger Entwicklung.

Sie könnten auch mehr Optionen wollen überprüfen hier

tbg
quelle
Installationsprozess von Gitorious wurde vereinfacht. Sie können entweder das Installationsskript verwenden ( getgitorious.com/installer ) oder das startbereite Virtualbox-Image ( getgitorious.co/install-gitorious )
Peter
Der Code ist zu finden unter gitorious.org/gitorious/mainline
The Demz
8

Ihre Einschränkungen sind ziemlich spezifisch, aber ich denke, Sie können die gewünschten Ergebnisse mit ChiliProject + -Plugins erzielen .

ChiliProject ist eine Abzweigung von Redmine, die aktualisierte Versionen von Ruby / Rails verwendet. Es unterstützt Git und Mercurial sehr gut und repliziert die Funktionalität von Github Issues, nach der Sie suchen, indem Sie Commit-Nachrichten analysieren (dh refs 291bei einem Commit wird ein Commit mit Issue Nr. 291 verknüpft).

Es gibt auch Redmine / ChiliProject- Plug-ins , die Funktionen wie Codeüberprüfung , Syntaxhervorhebung und andere von Github bereitgestellte Vorteile bieten, die bei Open-Source-Wettbewerbern möglicherweise nicht offensichtlich oder ohne Weiteres verfügbar sind.

Es gibt andere Optionen, JIRA usw., aber sie (IMHO) bieten nicht die Flexibilität oder Fülle von Funktionen, die der ChiliProject-Zweig von Redmine + die Vielzahl der verfügbaren Plugins bietet. Es gibt nicht viel, was Github und / oder BitBucket für Sie tun, was ChiliProject (möglicherweise mit frei verfügbaren Plugins) nicht kann. und das Schöne ist, wenn es noch nicht existiert, ist es normalerweise ziemlich trivial, es selbst zu implementieren.

Wenn das nach mehr klingt als Sie brauchen ... Ich habe es noch nicht ausprobiert, aber GitLab sieht auch interessant aus ... es scheint nicht die Erweiterbarkeit oder Plugin-Architektur von Redmine / Chili zu haben, aber wenn Sie suchen Für einen Open-Source-Klon von Github mit den meisten Kernfunktionen (und Sie müssen nicht mehrere DVCSs unterstützen) sieht es ziemlich gut aus.

Jason Lewis
quelle
Wenn Sie webbasierte Tools für die Quellcodeverwaltung benötigen ... Ich habe Gitosis erfolgreich mit Redmine / ChiliProject verwendet ... ich bin mir nicht sicher, ob es für Mercurial äquivalent ist, aber es sollte ziemlich trivial sein, etwas hinzuzufügen.
Jason Lewis
Update: Redmine verwendet ab Redmine 2 auch aktuelle Rails-Versionen (wenn Sie Rails 3 meinen).
Alternative
7

Allura http://sf.net/p/allura sollte die Rechnung passen. Es ist die Plattform für alle neuen (oder aktualisierten) Projekte bei SourceForge und Open Source. Es unterstützt Mercurial und Wikis sowie viele weitere Tools (Git, SVN, Ticket Tracker, Foren usw.). Es verfügt nicht über eine "Codeüberprüfung", unterstützt jedoch das Verzweigen und Zusammenführen von Anforderungen für Mercurial- und Git-Repos.

Es ist in Python geschrieben und verwendet MongoDB und Solr zur Datenspeicherung.

Allura befindet sich derzeit auch im Apache Incubator: http://incubator.apache.org/projects/allura.html

Ich arbeite für SourceForge und helfe bei der Entwicklung von Allura.

Dave Brondsema
quelle
6

Für genau dasselbe Thema bei der Arbeit verwenden wir ein Ökosystem bestehend aus:

  • Redmine für die Problemverfolgung
  • RhodeCode für die Repository-Verwaltung
  • Jenkins für die kontinuierliche Integration und Bereitstellung (wir haben Aufträge für Bereitstellungs- und Upgrade-Aufgaben, denen auf granulare Weise Berechtigungen zugewiesen werden können, und Sie erhalten den Audit-Trail kostenlos)
  • Active Directory für die Authentifizierung (alle oben genannten Funktionen können nahtlos integriert werden)

Die DVCS-Integration in Redmine hat sich in späteren Releases sprunghaft verbessert. Ich habe vor einigen Wochen ein Upgrade durchgeführt und bin äußerst erfreut, dass die meisten "Fallstricke" verschwunden sind.

Ich habe den Redmine- und den RhodeCode-Server auf demselben Host ausgeführt, da Redmine noch keine Remote-HG-Repos unterstützt. Jenkins läuft auf mehreren anderen Hosts.

Ich benutze einen RhodeCode-Hook, um in Redmine Quecksilber-Pulls auszulösen. Ich kann wegen JENKINS-13717 keinen Haken für Jenkins -Pulls verwenden , aber ich habe bereits einen Patch dafür eingereicht und ich denke, er wird ziemlich schnell akzeptiert. In der Zwischenzeit wähle ich alle paar Minuten die HG-Repos ab.

Alles läuft unter Debian 6.0 über Nginx-Reverse-Proxying, um eine SSL-Kündigung zu erhalten (all dies wird nur über SSL verwendet). Kürzlich wurde das gesamte Paket auf einen ProxMox-Cluster verschoben, um alles mit bisher hervorragenden Ergebnissen zu virtualisieren. Falls Sie das Produkt nicht kennen, sollten Sie es sich ansehen. Es ist eines der Produkte " Ich kann nicht glauben, dass es das gibt und ich wusste nichts davon und OMG ist auch Open Source! ". Wir führen diese Dienste auf OpenVZ-Containern aus, die für Hardware-Reparaturen / -Upgrades leicht von einem Host auf einen anderen migriert werden können. Auf demselben Cluster führen wir auch eine Reihe von virtuellen KVM-Maschinen für automatisierte Tests auf Windows-Plattformen aus.

Ich bin sehr zufrieden mit diesem Ökosystem. Es hat die Fähigkeit unseres Entwicklerteams / QA-Teams verbessert, Probleme zu reproduzieren und Änderungen mit einem riesigen Spielraum nachzuverfolgen. Nur ein paar Warnungen:

  • Wenn Sie Rhodecode verwenden, richten Sie es nicht auf SQLite ein. Verwenden Sie MySQL oder ein anderes echtes DBMS. Es ist im Nachhinein nicht wirklich migrierbar, und SQLite nimmt jeweils nur eine Verbindung auf, was zu lustigen Sperren und Zeitüberschreitungen führt (siehe RhodeCodes Nr. 439 ). Dies wird schmerzhaft, wenn Jenkins das Repo fortlaufend abruft, da hin und wieder Fehlermeldungen angezeigt werden (siehe Kommentar oben zu Jenkins Problem).
  • Sie können Ihren Entwicklern wirklich nicht genug betonen, dass die Festschreibungsnummer "132" in Mercurial nichts für alle anderen im Netzwerk bedeutet, da diese Nummern nur lokal sind . Wenn Sie über Changesets in Redmine-Tickets sprechen, verwenden Sie entweder die lokale Revisionsnummer, die Sie vom Repo-Browser erhalten können (die in RhodeCode und Redmine identisch ist, da sie auf demselben Computer ausgeführt werden) oder commit:abcd1234.

Ich kann dieses Setup ohne zu zögern weiterempfehlen, da ich damit sehr zufrieden bin. Wenn Sie Hilfe bei der Konfiguration eines bestimmten Dienstes benötigen oder einen Blick auf meine Konfigurationsdateien werfen möchten, können Sie sich gerne an uns wenden.

GomoX
quelle
2

Schauen Sie sich cydra an: https://github.com/mensi/cydra, für das es Unterstützung gibt

  • Subversion (HTTP)
  • Git (HTTP und SSH auf separatem Port)
  • Mercurial (HTTP)
  • Trac

Es basiert auf einem projektbasierten Ansatz, mit dem Sie ein Projekt erstellen und ihm mehrere Repositorys zuweisen können (höchstens ein SVN-Repository). Die Authentifizierung basiert auf einzelnen Plugins (wir haben sie in unser LDAP integriert).

Wir verwenden es für unsere Codierungsplattform https://code.vis.ethz.ch . Im Moment gibt es keine Unterstützung für die Codeüberprüfung, aber es könnte leicht als Plugin hinzugefügt werden.

Ich kann keine Screenshots posten, da ich nicht genug Reputation habe.

Pascal
quelle
1
Das Cydra-Projekt scheint vor ein paar Monaten kaum angelaufen zu sein und scheint nicht sehr aktiv entwickelt zu sein. Vielleicht etwas unreif zu erwähnen.
R0MANARMY
Ja, du hast recht. Aber wenn Sie so etwas wie eine Code-Hosting-Plattform einrichten möchten, möchten Sie vielleicht eine Menge Dinge selbst anpassen. Also dachte ich, es wäre erwähnenswert.
Pascal
2

Erwägen Sie die Verwendung von GitLab https://about.gitlab.com/, da es die meisten Ihrer Anforderungen erfüllt:

  1. Sie können es lokal installieren
  2. Es ist MIT Expat lizenziert
  3. Es verfügt über ein Wiki (mit Unterstützung von Git), Repository-Browsing, detaillierte Zugriffsverwaltung (mehrere Zugriffsebenen, geschützte Zweige, LDAP-Integration usw.) und Zusammenführungsanforderungen für Codeüberprüfung und Diskussion (einschließlich Zeilenkommentare).
  4. Es unterstützt kein Quecksilber, sondern nur Git

Es hat auch einen guten Issue-Tracker oder Sie können einen Link zu einem externen Issue-Tracker erstellen. Sie können Ihre Zusammenführungsanforderungen mit GitLab CI testen, wenn Sie möchten. GitLab ist schnell gewachsen und wird von mehr als 25.000 Organisationen verwendet.

Offenlegung: Ich bin der CEO und Mitbegründer von GitLab BV

Sytse Sijbrandij
quelle