Typen von Code Repository Software
In einem Softwareentwicklungsprozess gibt es im Allgemeinen vier Schlüsselkomponenten, die Sie für eine erfolgreichere Entwicklung Ihrer Kreation benötigen, sobald Ihr Programm die Grenzen Ihres Systems oder Ihrer Maschine verlässt: eine gut optimierte Website, eine voll aktive Mailingliste, einen guten Issue Tracker und ein sicheres Code Repository.
Auch wenn die meiste Infrastruktur, die für ein Softwareentwicklungsprojekt benötigt wird, bereits auf den firmeninternen Systemen vorhanden ist, gibt es eine breite Palette von Werkzeugen und Diensten, die Entwicklungsteams bei ihren Bemühungen um die Pflege und Veröffentlichung einer gut entwickelten und erfolgreichen Software unterstützen können.
Es gibt einige verschiedene Arten von Code-Repository-Lösungen. Es gibt einen so genannten gehosteten Dienst – Quellcodeeinrichtungen, die von einem angesehenen Dienstanbieter gehostet werden, was als institutionelles Repository bekannt ist -, die normalerweise von der Organisation mit ihren eigenen Versionskontrolldiensten betrieben und verwaltet werden. Ansonsten gibt es auch die Art von Code-Repository mit einer Infrastruktur, die vom Unternehmen selbst entworfen und verwaltet wird.
Gehostete Dienste
Gehostete Dienste sind eine gängige Lösung für Softwareentwickler, die mit Mitarbeitern und Committern an komplexen Projekten arbeiten, insbesondere wenn diese Mitarbeiter über mehrere Institutionen verteilt sind.
Einige dieser öffentlichen gehosteten Dienste und Code-Repositories sind in der Branche tatsächlich recht beliebt, darunter GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah und Assembla. Allerdings bieten nicht alle diese Lösungen genau dieselben Dienste an. GitHub bietet als ein auf Entwickler ausgerichteter Dienst eine starke Umgebung für Softwareentwickler. BitBucket ist ein Dienst, der von Atlassian gehostet wird, einem Dienstleister, der für seine kollaborativen Lösungen bekannt ist, zu denen auch Confluence und JIRA gehören.
GitLab hingegen ist ein webbasierter Git-Repository-Manager, der über Wiki und Issue-Tracking-Funktionen verfügt. Der Dienst bietet auch ein lokales Repository, das innerhalb der Infrastruktur der Institution oder Organisation installiert werden kann.
SourceForge ist eine der ältesten und etabliertesten gehosteten Plattformen für Softwareentwicklungsprojekte und Quellcode-Repositories. Der Dienstanbieter bietet die meisten Funktionen und Möglichkeiten, die man von einem Repository erwarten würde.
Launchpad wird von Canonical gehostet und betreut mehrere bekannte Nutzer wie Ubuntu und MySQL. Der Dienst umfasst die Nachverfolgung von Funktionen und Spezifikationen sowie das Soyuz-Release-Management.
Assembla ist ein beliebter Anbieter gehosteter Dienste für kleinere Teams und Organisationen. Er bietet umfangreiche Projektmanagement-Funktionen sowie Softwareentwicklungsdienste. Savannah deckt den Großteil der GNU-Software und einige wenige Nicht-GNU-Lösungen ab. Die Plattform konzentriert sich auf das Hosting freier Softwareentwicklungsprojekte.
Institutionelle Code-Repositories
Trotz der Verfügbarkeit einer Vielzahl von gehosteten Diensten und webbasierten Code-Repositories gibt es immer noch eine Reihe von Unternehmen und Organisationen, die ihre eigenen Versionskontrolldienste, Mailinglistenmanager und Dienste betreiben.
In den meisten Fällen ist diese Art von Code-Repository oder Softwareentwicklungsdienst sehr viel effizienter, wenn die dem Projekt zugewiesenen Entwickler und Committer in der Organisation arbeiten, die den Dienst hostet. Institutionelle Repositories sind jedoch auch in der Lage, mit einer Handvoll externer Mitarbeiter umzugehen.
Verwaltung und Betrieb einer eigenen Infrastruktur
Es gibt also den gehosteten Dienst, das institutionelle Repository, und dann das selbst betriebene Revisionskontrollsystem wie SVN, CVS oder Git. Es gibt auch Lösungen, mit denen Unternehmen ihr eigenes Software-Repository betreiben können, und zwar mit Paketen wie Trac, GitLab, Savane (das sowohl SourceForge als auch Savannah unterstützt), LibreSource, GForge und Codendi.
Diese Art von Code-Repository-Lösung erfordert viel Engagement, Zeit und Mühe, um den Arbeitsablauf und den Entwicklungsprozess einzurichten und zu pflegen. Der Vorteil ist jedoch, dass Entwicklerteams und Unternehmen die größte Kontrolle über ihre Projekte und ihr Repository haben, insbesondere wenn es um Anpassungen geht.