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:
Es gibt, abgesehen von den globalen Ignoriermustern, 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. Aber da sie schon diesen Abschnitt lesen, folgt nun eine kurze Einführung ...
Bevor Sie ein Projekt in das Projektarchiv importieren sollten Sie:
Alle Dateien entfernen/löschen welche nicht unbedingt für das Projekt notwendig sind (z.B. temporäre Dateien, Dateien die vom Compiler erzeugt werden wie *.obj, kompilierte EXE Dateien, ...)
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 beim 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 → worauf der folgende Dialog erscheint:
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 angeben http://meinserver.com/svn/trunk/Grafik. Beachten Sie, dass der Import-Befehl automatisch Unterverzeichnisse im Projektarchiv anlegt, falls 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 klicken, beginnt TortoiseSVN die Daten in das Projektarchiv zu importieren. Beachten Sie bitte, dass dadurch Ihr Importverzeichnis 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.
Angenommen, Sie haben bereits ein Projektarchiv und wollen eine neue Ordnerstruktur hinzufügen, folgen Sie diesen Schritten:
Erstellen Sie mit Hilfe des Projektarchivbetrachters einen neuen Ordner direkt im Projektarchiv.
Checken Sie den neu erstellten Ordner über den zu importierenden Ordner aus. Es wird eine Warnung angezeigt, dass der Zielordner nicht leer ist. Nun haben Sie einen lokal versionierten Ordner mit nicht versioniertem Inhalt.
Wählen Sie → auf dem versionierten Ordner, um Objekte zur Versionskontrolle hinzuzufügen. Sie können Dateien hinzufügen oder löschen, die svn:ignore Eigenschaft für Ordner setzen und weitere Änderungen vornehmen.
Ü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.
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 so genannten Schablonen. Eine Schablone ist nichts anderes als eine normale Datei, welche entweder einen anderen Dateinamen oder eine andere Dateiendung hat als die Datei, welche schlussendlich verwendet wird.
Als Beispiel sehen Sie sich einmal das Erstellungsskript von TortoiseSVN an. Es ruft eine Datei namens TortoiseVars.bat auf, die im Projektarchiv gar nicht existiert! Es existiert aber die Datei TortoiseVars.tmpl, welche die Schablone für die Datei TortoiseVars.bat darstellt. Bevor also das Skript ausgeführt werden kann muss jeder Benutzer eine Kopie von TortoiseVars.tmpl erstellen und die Kopie in TortoiseVars.bat umbenennen. Dann kann die Datei TortoiseVars.bat ohne Probleme so verändert werden, dass die absoluten Pfade zu den zur Erstellung von TortoiseSVN notwendigen Programmen mit den lokalen Pfaden übereinstimmen.
Um die Benutzer nicht zu stören, ist die Datei TortoiseVars.bat auch in der Liste der ignorierten Dateien 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.