= Git als Subversion-Nachfolger = Seit über sechs Jahren (2012-2018) wird die technikum29-Website über Subversion (SVN) bearbeitet. Dies erlaubt das problemlose gleichzeitige Bearbeiten von Dateien und ermöglicht eine lückenlose Rekonstruktion vergangener Arbeiten. == Überlegungen Git vs. SVN == **Vorteile von Subversion**: * Einfach: Alle geänderten Dateien werden automatisch committed, ein Commit wird automatisch hochgeladen. Versionen werden aufsteigend gezählt. Derzeit sind wir bei ungefähr `#1492`, eine beeindruckende Zahl im Gegensatz zu einem nichtssagenden Git-Sha-Commit-String wie `a8df2c1` * Infrastruktur ist selbstgehostet (autark) und bewährt. Dank einer Mail pro Commit bleibt es übersichtlich. Die Einbindung in das selbstgehostete Trac ist ebenfalls gut. **Nachteile von Subversion** und damit Vorteile von Git sind fast ausschließlich auf das ''einfache Branching von git'' zurückzuführen. Dies ermöglicht viele neue Nutzungsmöglichkeiten: * Entwürfe von Seiten lassen sich als seperater Branch bereits hochladen und müssen nicht auf dem Computer bleiben. * Pull Requests erlauben das kollaborative Bearbeiten und Vorschlagen von Korrekturen. Diese Funktion überwiegt die Nachteile des komplizierteren gits gegenüber SVN. * Über Github ist die Seite besser sichtbar und auch online (zumindest rudimentär) bearbeitbar. Die Verwendung der etablierten Github-Plattform senkt die Hemmschwelle für neue Bearbeiter. * Trennung von Commits und Push erlaubt strukturiertes Offline-Arbeiten. == Migration zu git == Unter https://github.com/technikum29/technikum29-www gibt es seit Februar 2018 bereits einen (nicht automatisch gesyncten) Mirror des Subversion-Repositoriums, welches derzeit noch unter https://www.technikum29.de/svn/technikum29-www/ gehostet wird. Für die Migration zu git wurde `git svn` verwendet, mit der Option `--preserve-empty-dirs` sowie dem Author-Mapping {{{ heribert = heribert incubator = incubator sven = sven }}} Ein letzter Sync wurde am 05.02.2019 vorgenommen, dabei wurden nochmal ca. 10 SVN-Commits seit März 2018 übernommen. Seitdem wurde nach Git gewechselt, das Subversion-Repository verbleibt out-of-sync (bestenfalls "Read only"). == Verbleib von Trac == Die Trac-Installation ist etwas in die Jahre gekommen, eine Projektverwaltung (Wikis, Issues, Meilensteine) auf Github ist eine Lösung, die viele Open-Source-Projekte als zeitgemäßer erkannt haben. Interessant finde ich auch den gehosteten Service, sodass die Wartung einer eigenen Software wegfällt. Deswegen ist eine selbstgehostete Git-Lösung auch nicht attraktiv. Trac wird als Wiki erst mal weiter bestehen bleiben. Möglicherweise kann das Git-Repository hier reingeladen werden, sodass der Repository-Browser nicht ein völlig veraltetes Subversion-Repository zeigt.