
Erstellung neuer Repositories in Gerrit
***************************************

Neue Repositories werden wie bisher aus dem Mud erstellt. Dies darf
jeder, der Schreibrechte in dem Verzeichnis m Mud besitzt. Zur vollen
Stunde werden Projekte fuer alle Verzeichnisse erzeugt, welche eine
Datei gerrit-create-project enthalten. Dies ist unterschiedlich, je
nachdem, was in der ersten Zeile dieser Datei steht:

   import
      Das Projekt wird erzeugt und der Inhalt des Verzeichnissesaus
      dem Mud importiert.

   create
      Das Projekt wird LEER erzeugt und nichts importiert. Dies ist
      dann nuetzlich, wenn man eine bestehen Historie aus einem
      anderen git-Repo uebernehmen will. Diese kann man dann in das
      neue, leer Repo pushen. Erst danach erfolgt auch die
      Synchronisation mit dem Mud. (Tip: beim push sollte master den
      gleichen Inhalt haben wie im Mud liegt.)

Erzmagier haben zusaetzlich die Moeglichkeit, Projekte ohne
Zeitverzoegerung ueber die Weboberflaeche anzulegen.

Nur ueber die Anlage durch einen EM lassen sich Verzeichnisse
ausserhalb von /d/, /p/service und /players/ sowie Verzeichnisse fuer
nicht-existente Magier erzeugen.


Hinweise fuer Erzmagier / Admins
================================

* Beim Erstellen von Projekten per Weboberflaeche:

  * "Creatw New" in der Repositoryliste

  * Name in der Form  d/region/magier/bla (kein / am Anfang, keiner
    am Ende und auch kein .git am Ende)

  * Rechtetemplat: meist d/region - aber bei secure/-Verzeichnissen
    in dem Verzeichnis *muss* es All-Projects sein, Eigentuemer
    Erzmagier (damit Du die Rechte nach dem Erstellen noch anpassen
    darfst...)

  * und ganz wichtig: 'create initial commit' auf True, nur dann
    importiert er beim Anlegen aus dem Mud. Im anderen Fall ist das
    Repo leer.

  * Nach Anlegen sollte in /d/ jeweils die Gruppen RM-Region und
    u_<magier> "Owner"-Rechte auf refs/* erhalten.

* Laesst man ein Projekt (nachtraeglich) die Rechte von All-Projects
  (dem glob. Default) erben (z.B. wenn Projekt ein secure/ enthaelt):
  bitte _vorher_ den Gruppen Erzmagier, u_<magier> und ggf. dem
  passenden RM-* "Owner"-Rechte auf refs/* geben.

* Beim Loeschen von Projekten in gerrit muss das Projekt haendisch
  auch in ~/gerrit/ geloescht werden.
