# 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.