Daten in ein Projektarchiv importieren

Import

Falls Sie in ein bereits existierendes Projektarchiv importieren, das schon einige Projekte enthält, ist dessen Struktur bereits festgelegt. Wenn Sie Daten in ein neues Projektarchiv importieren, sollten Sie sich vorher darüber Gedanken machen, wie Sie es organisieren. Lesen Sie „Struktur des Projektarchivs“ für weitere Hinweise.

Dieser Abschnitt beschreibt den Import-Befehl von Subversion, der dazu gedacht ist, eine Verzeichnisstruktur in ein Projektarchiv zu importieren. Obwohl er für diese Aufgabe geeignet ist, besitzt er doch einige Nachteile:

  • Abgesehen von den globalen Ignoriermustern, gibt es keine Möglichkeit, Dateien oder Ordner einzuschließen.

  • Der importierte Ordner wird nicht zu einer Arbeitskopie. Sie müssen eine Arbeitskopie aus dem Projektarchiv auschecken.

  • Es kann leicht passieren, dass Sie die Daten in einen falschen Ordner im Projektarchiv importieren.

Aus diesen Gründen empfehlen wir, dass Sie den Import-Befehl gar nicht nutzen, sondern die in „Import an Ort und Stelle“ beschriebene zweistufige Methode. Es sei denn, Sie führen den einfachen Schritt zum Anlegen der initialen /trunk /tags /branches-Struktur im Projektarchiv durch. Da Sie schon diesen Abschnitt lesen, folgt nun eine kurze Einführung ...

Bevor Sie ein Projekt in das Projektarchiv importieren, sollten Sie:

  1. Alle Dateien entfernen/löschen, die nicht unbedingt für das Projekt notwendig sind (z. B. temporäre Dateien, vom Compiler erzeugte Dateien wie *.obj, kompilierte EXE Dateien ...)

  2. Die Dateien und Ordner optimal anordnen. Obwohl es auch später noch immer möglich ist, die Dateien und Ordner umzubenennen oder zu verschieben, ist es doch empfehlenswert, schon vor dem Importieren eine saubere Struktur zu haben!

Wählen Sie nun den übergeordneten Ordner Ihrer Ordnerstruktur im Windows Explorer und öffnen Sie mit einem Rechtsklick das Kontextmenü. Wählen Sie den Befehl TortoiseSVNImportieren..., worauf der folgende Dialog erscheint:

Abbildung 4.6. Der Import-Dialog

Der Import-Dialog


In diesem Dialog geben Sie die URL des Projektarchivs ein, in das Sie Ihr Projekt importieren wollen. Es ist sehr wichtig zu verstehen, dass der lokale Ordner, den Sie importieren, nicht im Projektarchiv landet, sondern nur sein Inhalt. Wenn Sie z. B. die folgende Struktur haben:

C:\Projekte\Grafik\source
C:\Projekte\Grafik\doku
C:\Projekte\Grafik\bilder

und Sie importieren C:\Projekte\Grafik in http://meinserver.com/svn/trunk, könnten Sie überrascht feststellen, dass Ihre Unterverzeichnisse direkt in trunk anstelle eines Grafik-Unterverzeichnisses landen. Sie müssen das Unterverzeichnis als Teil der URL http://meinserver.com/svn/trunk/Grafik-X angeben. Beachten Sie, dass der Importbefehl automatisch Unterverzeichnisse im Projektarchiv anlegt, wenn diese noch nicht existieren.

Die Importmeldung wird als Logmeldung verwendet.

Standardmäßig werden Dateien und Ordner, die dem globalen Ignoriermuster entsprechen, nicht importiert. Um dieses Verhalten zu übergehen, aktivieren Sie die Option Ignorierte Dateien einschließen. Lesen Sie in „Allgemeine Einstellungen“ nach, wie man globale Ignoriermuster einrichtet.

Sobald Sie auf OK klicken, beginnt TortoiseSVN, die Daten in das Projektarchiv zu importieren. Beachten Sie bitte, dass dadurch Ihr Importordner nicht unter Versionskontrolle gestellt wird! Um eine Arbeitskopie zu erhalten, in der die Daten unter Versionskontrolle sind, müssen Sie die Daten frisch aus dem Projektarchiv auschecken. Oder Sie lesen weiter, um herauszufinden, wie man beim Import eine Arbeitskopie an Ort und Stelle erzeugen kann.

Import an Ort und Stelle

Angenommen, Sie haben bereits ein Projektarchiv und wollen eine neue Ordnerstruktur hinzufügen, folgen Sie diesen Schritten:

  1. Verwenden Sie den Projektarchivbetrachter, um einen neuen Projektordner direkt im Projektarchiv zu erstellen. Wenn Sie eines der Standardlayouts verwenden, möchten Sie diesen Ordner wahrscheinlich als einen Unterordner des Stammes statt der Wurzel des Projektarchivs erstellen. Der Projektarchivbetrachter zeigt die Struktur des Projektarchivs wie der Windows Explorer, damit Sie sehen können, wie Dinge organisiert sind.

  2. Checken Sie den neu erstellten Ordner über den zu importierenden Ordner aus. Es wird eine Warnung angezeigt, dass der Zielordner nicht leer ist. Ignorieren Sie die Warnung. Nun haben Sie einen versionierten Ordner mit nicht versioniertem Inhalt.

  3. Wählen Sie TortoiseSVNHinzufügen... auf dem versionierten Ordner, um Objekte zur Versionskontrolle hinzuzufügen. Sie können Dateien hinzufügen oder löschen, die Eigenschaft svn:ignore für Ordner setzen und weitere Änderungen vornehmen.

  4. Übertragen Sie den obersten Ordner und Sie erhalten nun eine versionierte Ordnerstruktur im Projektarchiv sowie eine Arbeitskopie, die aus dem existierenden Ordner heraus angelegt wurde.

Spezielle Dateien

Manchmal ist es notwendig, eine Datei unter Versionskontrolle zu haben, die benutzerspezifische Daten (z. B. absolute Pfade zu Anwendungen) enthält. Das bedeutet: Sie haben eine Datei, die von jedem Benutzer verändert werden muss, um sie an seine lokalen Einstellungen anzupassen. Aber eine Datei unter Versionskontrolle würde von jedem Benutzer jeweils wieder zum Projektarchiv übertragen werden und so die Änderungen von anderen Benutzern wieder überschreiben.

In solchen Fällen empfehlen wir die Verwendung von sogenannten Schablonen. Sie erstellen eine Datei, die alle Daten enthält, die Ihre Entwickler benötigen, fügen diese Datei der Versionskontrolle hinzu und lassen die Entwickler diese Datei auschecken. Anschließend muss jeder Entwickler eine Kopie dieser Datei erstellen und diese Kopie umbenennen. Danach ist das Ändern der Kopie kein Problem mehr.

Als Beispiel sehen Sie sich einmal das Erstellungsskript von TortoiseSVN an. Es ruft eine Datei namens default.build.user auf, die im Projektarchiv gar nicht existiert. Dort gibt es nur die Datei default.build.user.tmpl, die für jeden Entwickler die Vorlage für die Datei default.build.user darstellt. Bevor also das Skript ausgeführt werden kann, muss jeder Benutzer eine Kopie davon erstellen und in default.build.user umbenennen. In dieser Datei stehen Kommentare, mit denen wir erklären, welche Zeilen an die lokalen Einstellungen angepasst werden müssen.

Um die Benutzer nicht zu stören, ist die Datei default.build.user auch in der Ignorierliste ihres Elternordners eingetragen. Das heißt, wir haben die Subversion-Eigenschaft svn:ignored für diese Datei gesetzt. Damit erscheint diese Datei nicht in jedem Übertragen-Dialog als (noch) nicht versioniert.