MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | Synchronisation zwischen git-Repositories und Mud |
| 2 | ================================================= |
| 3 | |
| 4 | I. Push von aussen ins Mud. |
| 5 | |
Zesstra | 8cad02c | 2016-09-01 22:25:25 +0200 | [diff] [blame] | 6 | Am Ende es Pushes wird ein Script gestartet, was folgendes macht: |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 7 | |
| 8 | 1) Wenn fuer die Synchronisation mit dem Mud aktiv ist, wird mit der Mudlib |
| 9 | gesynct. Wenn nicht: Ende |
| 10 | 2) Zunaechst wird in einem lokalen Clone des git-Repositories ein temporaerer |
| 11 | Branch zum Mergen von Aenderungen aus dem Mud angelegt (auto-mud-sync), |
| 12 | welcher bei dem Tag last-auto-mud-sync startet und dieser Branch |
| 13 | ausgecheckt. |
| 14 | 3) Mit Hilfe von rsync werden alle Aenderungen aus der Mudlib hereinkopiert. |
| 15 | 4) Wenn Aenderungen existieren, wird ein neuer Commit auf dem Branch gemacht. |
| 16 | 5) Anschliessend wird Branch master ausgecheckt. |
| 17 | 6) Wenn es Aenderungen gab, die in 4) commitet wurden, wird jetzt der Branch |
| 18 | auto-mud-sync mit diesem Commit in master gemergt. |
| 19 | Kommt es hierbei zu Konflikten, werden die _automatisch_ zugunsten des |
| 20 | Standes der git-Repositories aufgeloest, d.h. es gehen ggf. Aenderungen aus |
| 21 | dem Mud verloren. Es kann hierbei daher passieren, dass von 8 im Mud |
| 22 | geaenderten Zeilen nur 6 uebernommen werden, weil 2 Zeilen in Konflikt mit |
| 23 | den Aenderungen im git-Repository stehen. Daher ist es wichtig, das |
| 24 | Ergebnis dieses Merges im Nachhinein zu pruefen und ggf. zu korrigieren! |
| 25 | 7) Falls es Aenderungen gab, wird jetzt der in 7) erstellte Merge-Commit ins |
| 26 | git-Repository gepusht. |
| 27 | 8) Der jetzt gemergte Stand wird per rsync ins Mud kopiert. |
| 28 | 9) Das Tag last-auto-mud-sync wird aktualisiert. |
| 29 | |
| 30 | |
| 31 | II. Automatischer regelmaessiger Commit vom Mud |
| 32 | |
Zesstra | 8cad02c | 2016-09-01 22:25:25 +0200 | [diff] [blame] | 33 | Jeden Tag um 05:11 wird via cronjob und das Script ~/scripts/gerrit-autocommit |
| 34 | fuer jedes Repo in ~/gerrit/ das unter I. beschriebene Script |
| 35 | ~/scripts/gerrit-sync2lib ausgefuehrt. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 36 | |
| 37 | |
| 38 | III. Import von Verzeichnissen aus dem Mud |
| 39 | |
| 40 | Zu jeder vollen Stunde wird in allen Verzeichnissen unter /d/, /p/ und |
Zesstra | 8cad02c | 2016-09-01 22:25:25 +0200 | [diff] [blame] | 41 | /players/ die Datei 'gerrit-create-project' gesucht. Alle Verzeichnisse, in denen |
| 42 | diese existiert, werden in gerrit importiert und gleichzeitig auch ein Clone |
| 43 | in ~/gerrit/ erstellt, d.h. dass die Synchronisationsmassnahmen |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 44 | unter I. und II. fuer dieses neue git-Repository aktiv sind. |
| 45 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 46 | |