Wiki
Verteilung
Dateien (Plugins, geteilte Inhalte) anhand von Pfadmustern aus einem Quell-Repository in ein Ziel-Repository kopieren. Veröffentlichung, Remapping, übersprungene Sperren.
Einführung
Die Verteilung kopiert Dateien (ein Plugin, ein Paket geteilter Inhalte) aus einem Quell-Repository in ein Ziel-Repository, beschränkt auf Pfadmuster. Sie erzeugt neue Revisionen im Ziel, sodass die übliche inkrementelle Synchronisierung den Inhalt an die Clients verteilt. So lässt sich dasselbe Plugin ohne manuelles Kopieren und Einfügen über mehrere Projekte hinweg teilen.
Zugriff und Rollen
manage_rules, die admin und lead serverweit besitzen. Ein
project_admin, der keine Fähigkeit besitzt, hat keinen Zugriff. Ein
lead hingegen kann jedes Repository mit jedem anderen verknüpfen.
Eine Verknüpfung erstellen
- Tab Distribution → New Link.
- Source Repository: das Repository, aus dem die Dateien stammen.
- Target Repository: das Ziel-Repository (die gewählte Quelle wird aus der Liste entfernt; Quelle und Ziel dürfen nicht identisch sein).
- Path Patterns: ein Muster pro Zeile (z. B.
Plugins/MyPlugin/,Content/SharedAssets/). Mindestens eines ist erforderlich. - Mit Create Link bestätigen.
Eine bereits zwischen denselben beiden Repositories bestehende Verknüpfung wird abgelehnt (Konflikt). Jede Zeile zeigt
source → cible, ihre Muster, wer sie erstellt hat und das Datum der letzten Veröffentlichung.
Pfadmuster
Ein Muster passt zu einem Pfad, wenn es irgendwo darin auftaucht (Suche vom Typ „enthält“).
Ein Muster Plugins/uVersion passt also zu
DefaultProject/Plugins/uVersion/Source/Foo.cpp, unabhängig vom Projektpräfix. Der abschließende Schrägstrich
ändert nichts.
Veröffentlichen
Drei Aktionen pro Verknüpfung:
- Show pending files (Datei-Symbol): listet die Dateien auf, die sich unterscheiden, markiert als new, modified oder locked, mit ihrer Revision.
- Publish history (Uhr): die letzten 50 Veröffentlichungen (wie viele aktualisiert / übersprungen, wer, wann).
- Publish (Senden): führt das Kopieren aus. Ein Banner fasst zusammen: „X Quelldateien gefunden, Y aktualisiert, Z übersprungen (gesperrt), W unverändert“. Deaktiviert, wenn die Verknüpfung inaktiv ist.
Eine im Ziel gesperrte Datei wird übersprungen, nicht überschrieben. Eine Datei mit identischem Inhalt (gleicher Hash) wird als unverändert gezählt und übersprungen. Die Veröffentlichung ist atomar (eine einzige Transaktion).
Sie können eine Verknüpfung auch aktivieren / deaktivieren oder löschen.
Remapping und Revisionen
Der Pfad wird für das Ziel umgeschrieben: uVersion entfernt alles, was vor dem passenden Muster steht,
und fügt dann das im Ziel erkannte Präfix hinzu. Beispiel: Quelle
DefaultProject/Plugins/uVersion/foo.cpp, Muster Plugins/uVersion, Zielpräfix
CineDroneStudio/ → CineDroneStudio/Plugins/uVersion/foo.cpp. Das Zielpräfix wird aus einer
vorhandenen Datei im Ziel abgeleitet (Behandlung von Repositories mit oder ohne Projektunterordner).
Häufige Stolperfallen
„Publish“ ist ausgegraut
Die Verknüpfung ist inaktiv. Aktivieren Sie sie zuerst. Das Veröffentlichen einer inaktiven Verknüpfung gibt einen ausdrücklichen Fehler zurück.
Eine Datei wird im Ziel nicht aktualisiert
Entweder ist sie auf der Zielseite gesperrt (dann wird sie übersprungen und als „locked“ gezählt), oder ihr Inhalt ist bereits identisch (als „unchanged“ gezählt). Sehen Sie sich die Veröffentlichungszusammenfassung und die Liste der pending files an.
Ein project_admin sieht den Tab nicht
Das ist beabsichtigt: die Verteilung erfordert manage_rules (admin oder lead). Ein project_admin hat
keinen Zugriff, auch nicht auf seine eigenen Repositories.