Softwareprojekte werden bei mir grundsätzlich mit Git versioniert. Es bietet für mich verschiedene Vorteile: Git ist schlank, unkompliziert und flexibel. Schnell ein Repo erstellen? git init. Zentrale Codebase? Einfache remote branches, eventuell erweitert um Gitea, GitLab oder diverse Onlinedienste - je nach dem, wie viele Nerven (und RAM) man mitbringt. Flexibel? Egal, wie man seine SCM-Architektur anlegt - Git unterstützt viele Szenarien und am Ende des Tages reicht auch das einfache Kopieren des Ordners samt .git-Verzeichnis.
Ein interessantes Szenario hatte ich gerade erst vor einigen Tagen wieder: ein Git-Repository online read-only zur Verfügung stellen. Allrounder wie Gitea oder Gitlab wären wie das Schießen mit Kanonen auf Spatzen, das Apache Diretory Listing will sich aber auch keiner antun. Gitweb würde einem Großteil nun durch den Kopf gehen - sofern man bereit ist, mit Perl, cgi-bin und den guten alten Freunden in einem nennen wir es klassischen Design zu arbeiten.
Bisher habe ich in der Frage gerne auf PHP-Lösungen gesetzt. So kam bei mir lange Zeit GitPHP zum Einsatz, ein Projekt, dessen Webseite mittlerweile nicht mehr verfügbar und Codebase auf den ersten Blick verschwunden ist.
Bei der Suche nach Alternativen bin ich dabei auf GitList (Hinweis: kein SSL/TLS) gestoßen. Sieht relativ ansprechend aus und lässt sich leicht installieren. Sehr leicht. Quasi "with batteries included". Herunterladen, entpacken, Repository-Pfad angeben (bitte achtet darauf, dass dieser außerhalb der üblichen Webserver-Verzeichnisse liegt, um unauthorisierten Zugriff zu vermeiden), mkdir cache && chown www-data:www-data cache, fertig.
Apropos unauthorisierter Zugriff: im Gegensatz zu GitPHP, das eine minimale Rechteverwaltung mitbrachte, müsst ihr euch bei GitList scheinbar selber darum kümmern. Darauf habe ich aber bisher gar nicht geachtet, da in meinem Szenario ein geschützter Zugriff gar nicht gewünscht ist. Und sollte doch eine solche Verwaltung benötigt werden, gibt es ja noch die großen Brüder.
Im Git-Verzeichnis müsst ihr bei GitList übrigens nicht zwingend auf bare git repositories achten, das .git-Verzeichnis im normalen Verzeichnis reicht dort auch aus.
Lizenzmäßig greift GitList auf die BSD 3-clause züruck, während GitPHP die GPL nutzte.