# Fahrplan zur Umstellung von SVN zu GIT ## Vorbereitungen Wenn für die zukünftige Arbeit GIT verwendet werden soll, muss ein zentraler Ort geschaffen werden, an welchem die Projektpflege erfolgt („Projektarchiv“). Dies kann im einfachsten Fall ein Netzlaufwerk sein; für erweiterte Funktionen wird ein Git-Server wie [GitLab] oder [Gitea] empfohlen. Außerdem wird dringend empfohlen für das zentrale Projektarchiv einen automatischen **Backup**-Mechanismus einzurichten – dies ist jedoch nicht Teil dieses Dokuments. [GitLab]: https://gitlab.com [Gitea]: https://gitea.io/en-us ## Software-Anforderungen Vor der Umstellung muss geprüft werden, ob alle Arbeitsplatzrechner die notwendigen Anforderungen erfüllen, um die Programme * Git-for-Windows * Notepad++ * Tortoise-Git auszuführen. > Die Installation der Programme auf den Clients ist an dieser Stelle noch nicht nötig und wird nicht empfohlen. Im Falle von Windows sollte das ab Windows 7 gegeben sein. Altsysteme mit Windows 2000 oder früher sollten aktualisiert werden. ## Erfassung der aktuell verwendeten Projekte Als nächstes muss erfasst werden, welche Projekte aktuell von den Mitarbeitern benutzt werden: Bei der Migration werden die Ordner aus dem SVN-Zentralarchiv in einzelne Git-Archive konvertiert. Dies wird voraussichtlich mehrere Tage dauern. Während das passiert können die Mitarbeiter weiter an ihren Projekten arbeiten und Änderungen noch in das bestehende SVN-Zentralarchiv übertragen. Damit kann es aber dazu kommen, dass die entsprechenden Projekte im GIT-Zentralarchiv nach Abschluss der Konvertierung nicht mehr auf dem letzten Stand sind, und aktualisiert werden müssen. Und genau dafür muss die Liste der aktiven Projekte während der Konvertierung erfasst werden. ## Start der Konvertierung Auf dem Linux-Server wird im Verzeichnis [Scripte](Scripte) dieses Projekts das Zielverzeichnis für die Konvertierung ins [Makefile](Scripte/Makefile) eingetragen. Anschließend wird `make` gestartet, woraufhin die Konvertierung aller Projekte erfolgt. Dies wird voraussichtlich mehrere Tage dauern, während der an Projekten weiter gearbeitet werden kann. ## Abschluss und Aktualisierung Dann müssen alle _zwischenzeitlich bearbeiteten_ Projekte nochmal ins SVN-Zentralarchiv synchronisiert werden. Nach Abschluss der ersten Konvertierung ist es notwendig, das SVN-Zentralarchiv gegen weitere Änderungen zu sperren. Dies kann durch Deaktivieren des Apache-SVN-Servers geschehen. Ab jetzt dürfen in den Arbeitskopien keine Änderungen mehr vorgenommen werden; diese würden verloren gehen. Dann werden die veränderten Projekte nochmal neu zu GIT konvertiert, um auch die zuletzt gemachten Änderungen einzufangen. ## Umstellung der Arbeitsplätze/Clients Auf den Arbeitsplätzen sind danach folgende Schritte auszuführen: 1. Entfernen der alten Projektordner, die noch SVN verwenden: Änderungen darin können nicht mehr ins alte Zentralarchiv übermittelt werden. 2. Entfernen der Software Tortoise-SVN. 3. Installation des Tortoise-Git-Stacks wie unter [INSTALLATION.md](INSTALLATION.md) beschrieben 4. Holen der benötigten Arbeitskopien der zu bearbeitenden Projekte vom neuen Git-Zentralarchiv, wie unter [Verwendung.md](Verwendung.md) beschrieben.