Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//wiz/gerrit-sync

Synchronisation zwischen git-Repositories und Mud
=================================================

I. Push von aussen ins Mud.

Am Ende es Pushes wird ein Script gestartet, was folgendes macht:

1) Wenn fuer die Synchronisation mit dem Mud aktiv ist, wird mit der Mudlib
   gesynct. Wenn nicht: Ende
2) Zunaechst wird in einem lokalen Clone des git-Repositories ein temporaerer
   Branch zum Mergen von Aenderungen aus dem Mud angelegt (auto-mud-sync),
   welcher bei dem Tag last-auto-mud-sync startet und dieser Branch
   ausgecheckt.
3) Mit Hilfe von rsync werden alle Aenderungen aus der Mudlib hereinkopiert.
4) Wenn Aenderungen existieren, wird ein neuer Commit auf dem Branch gemacht.
5) Anschliessend wird Branch master ausgecheckt.
6) Wenn es Aenderungen gab, die in 4) commitet wurden, wird jetzt der Branch
   auto-mud-sync mit diesem Commit in master gemergt.
   Kommt es hierbei zu Konflikten, werden die _automatisch_ zugunsten des
   Standes der git-Repositories aufgeloest, d.h. es gehen ggf. Aenderungen aus
   dem Mud verloren. Es kann hierbei daher passieren, dass von 8 im Mud
   geaenderten Zeilen nur 6 uebernommen werden, weil 2 Zeilen in Konflikt mit
   den Aenderungen im git-Repository stehen. Daher ist es wichtig, das
   Ergebnis dieses Merges im Nachhinein zu pruefen und ggf. zu korrigieren!
7) Falls es Aenderungen gab, wird jetzt der in 7) erstellte Merge-Commit ins
   git-Repository gepusht.
8) Der jetzt gemergte Stand wird per rsync ins Mud kopiert.
9) Das Tag last-auto-mud-sync wird aktualisiert.


II. Automatischer regelmaessiger Commit vom Mud

Jeden Tag um 05:11 wird via cronjob und das Script ~/scripts/gerrit-autocommit
fuer jedes Repo in ~/gerrit/ das unter I. beschriebene Script
~/scripts/gerrit-sync2lib ausgefuehrt.


III. Import von Verzeichnissen aus dem Mud

Zu jeder vollen Stunde wird in allen Verzeichnissen unter /d/, /p/ und
/players/ die Datei 'gerrit-create-project' gesucht. Alle Verzeichnisse, in denen
diese existiert, werden in gerrit importiert und gleichzeitig auch ein Clone
in ~/gerrit/ erstellt, d.h. dass die Synchronisationsmassnahmen
unter I. und II. fuer dieses neue git-Repository aktiv sind.



zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2022 © MorgenGrauen.