uVersion
Deutsch
Herunterladen →

Wiki

Ein bestehendes Projekt hochladen

Ein bereits auf Ihrer Festplatte vorhandenes Unreal-Projekt unter uVersion stellen: den Ordner an Ort und Stelle initialisieren, die Ausschlüsse prüfen, dann ein Checkin aus dem Pending-Tab. Mit den Fallstricken des ersten Uploads.

Sie haben ein Unreal-Projekt auf Ihrer Festplatte und möchten es unter uVersion stellen. Diese Seite behandelt genau diesen Fall: Ihre Dateien bewegen sich nicht, der Ordner wird an Ort und Stelle mit dem Server verbunden und dann hochgeladen.

Wenn Sie hingegen von einem leeren, bereits auf dem Server erstellten Repository ausgehen, brauchen Sie einen Klon, nicht diese Seite.

Bevor Sie beginnen

Schließen Sie den Unreal-Editor Am Ende eines Uploads werden die hochgeladenen Dateien auf der Festplatte wieder schreibgeschützt. Das uVersion-Plugin reserviert jedoch beim Öffnen des Editors automatisch jedes noch beschreibbare Asset: Ist der Editor während des Vorgangs geöffnet, nimmt er sofort wieder Sperren auf das, was Sie gerade hochgeladen haben. Da Sperren niemals von selbst ablaufen, würden Sie sie behalten, ohne es zu wissen.

Prüfen Sie außerdem, dass der Ordner, den Sie deklarieren werden, wirklich die gewünschte Wurzel des Repositorys ist. Die Datei .uproject muss sich höchstens drei Ebenen unter dieser Wurzel befinden, sonst erkennt der Client das Projekt nicht als Unreal-Projekt und das Unreal-Panel bleibt unsichtbar.

Den Ordner initialisieren

1. Das Fenster Open Repository öffnen

Öffnen Sie in der Seitenleiste Workspace und klicken Sie dann Open Repository (oder das „+“ der Tab-Leiste). Das sich öffnende Fenster dient zunächst dem Klonen eines bestehenden Repositorys: Das ist hier nicht, was Sie wollen. Scrollen Sie ganz nach unten, unter die Liste der Repositorys und unter Open Local Repository..., und klicken Sie New Repository from a Project Folder...

Sie sehen diese Schaltfläche nicht? Sie erscheint nur für die Rolle admin, weil sie ein Repository auf dem Server erstellt. Siehe Ein Repository erstellen.
Der untere Teil des Fensters Open Repository: das Kontrollkästchen Download files after clone, die Schaltfläche Open Local Repository und darunter die Schaltfläche New Repository from a Project Folder.

2. Die Projektwurzel wählen

Ein Ordnerauswahldialog öffnet sich mit dem Titel Select your project folder to create a new repository. Wählen Sie die Wurzel Ihres Projekts, jene, die die .uproject enthält, oder den Ordner, der sie enthält. Nichts wird kopiert oder verschoben: Dieser Ordner bleibt, wo er ist.

3. Das Repository benennen und erstellen

Das Formular erscheint im Fenster selbst, an der Stelle der Schaltfläche, die Sie gerade angeklickt haben, nicht in einem neuen Dialogfeld. Es zeigt den gewählten Pfad noch einmal und bietet ein Feld Repository name, das mit dem Ordnernamen vorausgefüllt ist. Passen Sie es bei Bedarf an und klicken Sie dann Create & Open. Die Schaltfläche bleibt inaktiv, solange der Name leer ist, und dieser Name muss auf dem gesamten Server eindeutig sein.

Das Erstellungsformular an Ort und Stelle, im Fenster Open Repository: der Pfad des gewählten Ordners in einer Zeile, das mit dem Ordnernamen vorausgefüllte Feld Repository name, die Schaltflächen Create and Open und Cancel.

Der Client tut dann vier Dinge und nichts anderes:

  • er erstellt das Repository auf dem Server;
  • er schreibt einen Ordner .uversion/ in Ihr Projekt, der sich das Repository, die Adresse des Servers und das Eigentümerkonto des Workspace merkt;
  • er schreibt eine Datei .uversionignore, nur wenn noch keine existiert;
  • er lädt nichts herunter und rührt keine Ihrer Dateien an.
Dieser Ordner wird Ihrer Das Konto, das den Ordner initialisiert, wird dessen Eigentümer, und unter dieser Identität wird die Befehlszeile anschließend in diesem Ordner handeln. Ein Kollege darf Ihren Ordner nicht kopieren: Er muss das Repository auf seiner Seite klonen, andernfalls erhält er die Meldung This workspace belongs to ....

Die Ausschlüsse prüfen

Das ist der richtige Moment, und es ist jetzt viel einfacher als danach. Öffnen Sie die Datei .uversionignore in der Wurzel: Sie listet auf, was niemals hochgeladen wird. Die standardmäßig angelegte Vorlage schließt bereits aus, was ein Unreal-Projekt von selbst neu erzeugt, insbesondere Binaries/, Build/, DerivedDataCache/, Intermediate/, Saved/ und Packages/ sowie die Projektdateien der Entwicklungsumgebungen.

Zwei Regeln sind nicht änderbar, und man sollte sie kennen:

  • Plugins/uVersion ist immer ausgeschlossen. Das Unreal-Plugin wird nie versioniert: Jeder Arbeitsplatz installiert die Version, die zu SEINER Engine passt, über den Desktop-Client. Dass es im Repository fehlt, ist normal.
  • Ein Pfad, der einen exakt ThirdParty benannten Ordner enthält, wird niemals ausgeschlossen, welche Regel Sie auch schreiben. Ihre Drittanbieter-Bibliotheken gehen also immer mit hoch.

Da Packages/ ausgeschlossen ist, gelangt ein gepackter Build niemals ins Repository: Er wird über die Funktion zur Build-Veröffentlichung verteilt, nicht über die Versionierung.

Hochladen

4. Den Zustand im Files-Tab feststellen

Ihr ganzes Projekt erscheint dort mit dem Status untracked: bei Ihnen vorhanden, noch nicht auf dem Server. Das ist der normale Zustand eines gerade initialisierten Ordners. Das Zähler-Badge über dem Baum fasst dasselbe zusammen (N local only), die Spalte Rev zeigt überall v0, und der Tab Pending trägt bereits ein Badge mit derselben Zahl: Der Client hat Ihre Dateien von selbst erkannt, es gibt nichts von Hand „hinzuzufügen“.

Der Files-Tab direkt nach der Initialisierung: das Badge N local only über dem Baum, der Status untracked in jeder Zeile, die Spalte Rev auf v0 und das Badge derselben Zahl auf dem Tab Pending.

5. Den Pending-Tab öffnen

Alle Ihre Dateien sind bereits dort, mit add markiert, in der Changelist Default eingeordnet. Die linke Spalte zeigt die Baumstruktur dessen, was hochgeht, das rechte Panel die flache Liste mit einem Diff und einem Remove pro Zeile. Entfernen Sie hier nur, was Sie niemals versionieren wollen: Die richtige Antwort auf „dieser Ordner hat hier nichts zu suchen“ ist eine Regel in .uversionignore, kein Remove Zeile für Zeile.

Der Pending-Tab beim ersten Upload: die Baumstruktur der Dateien links, die Changelist Default rechts mit jeder Datei als add markiert, die Schaltflächen Diff und Remove pro Zeile, der Bereich Describe your changes und die Schaltfläche Checkin all.

6. Beschreiben, dann Checkin all

Schreiben Sie eine Nachricht in Describe your changes...: Sie ist verpflichtend, die Schaltfläche Checkin all bleibt inaktiv, solange der Bereich leer ist. „Erster Upload des Projekts“ genügt völlig. Klicken Sie dann Checkin all (N).

Das Panel der Changelist Default: der Bereich Describe your changes mit einer Nachricht zum ersten Upload gefüllt, die Schaltfläche Checkin all aktiv mit der Anzahl der Dateien.
Der Upload reserviert für Sie Das Checkin setzt selbst die Sperren der Dateien, die es hochlädt, und gibt sie frei, sobald die Revision validiert ist. Bei einem ersten Upload hat das keine Folgen, Sie sind allein an diesen Dateien. In einem bereits geteilten Repository lässt eine von jemand anderem reservierte Datei den Upload scheitern: siehe die Fallstricke weiter unten.

Der Upload läuft anschließend von selbst ab, in mehreren Phasen, die in der Kopfleiste angezeigt werden: Zerlegen, Prüfen dessen, was der Server bereits besitzt, Übertragung, dann Validierung. Sie können in der Zwischenzeit den Tab wechseln, der Fortschritt folgt. Eine unterbrochene Übertragung setzt dort fort, wo sie war, statt alles neu zu beginnen. Am Ende werden die hochgeladenen Dateien schreibgeschützt: Das ist das Zeichen, dass sie auf dem Server sind und dass man sie reservieren muss, um sie zu ändern.

Fallstricke des ersten Uploads

Ich suche die Upload-Schaltfläche in Files

Sie ist nicht dort. Der Files-Tab zeigt den Zustand und dient punktuellen Aktionen; der Upload erfolgt aus dem Tab Pending, wo jede nicht verfolgte oder geänderte Datei von selbst erscheint. Wenn Pending ein Badge zeigt, gibt es etwas hochzuladen.

„Failed to acquire locks for N file(s)“

Eine oder mehrere Dateien sind bereits von jemand anderem reserviert, und der gesamte Upload wird abgebrochen, nicht nur die betroffenen Dateien. Sehen Sie im Tab der ausstehenden Reservierungen nach, wer sie hält, und bitten Sie ihn, sie freizugeben.

Eine von mir ausgewählte Datei ging als Löschung hoch

Ein Pfad, der hochgeladen wird, aber zum Zeitpunkt der Übertragung nicht auf der Festplatte ist, wird als Löschung interpretiert. Das passiert, wenn Sie Dateien zwischen der Auswahl und dem Upload verschieben oder umbenennen. Arbeiten Sie während des Vorgangs nicht im Ordner.

„This folder is already a uVersion repository“

Der Ordner enthält bereits ein .uversion/. Verwenden Sie Open Local Repository..., statt es neu zu erstellen.

Der Ordner wird abgelehnt

Der Client lehnt bewusst bestimmte Orte ab: die Wurzel einer Festplatte, einen Systemordner, einen Autostart-Ordner oder einen relativen Pfad. Wählen Sie einen gewöhnlichen Arbeitsordner.

Und danach