Aktualisieren der Arbeitskopie mit Änderungen von anderen

Abbildung 4.11. Der Fortschritts-Dialog nach Abschluss der Aktualisierung

Der Fortschritts-Dialog nach Abschluss der Aktualisierung


Änderungen von anderen sollten Sie regelmäßig in Ihre eigene Arbeitskopie einfügen. Änderungen von anderen in die eigene Arbeitskopie einfügen wird auch Aktualisieren genannt. Sie können einzelne Dateien, mehrere Dateien, ganze Ordner oder gleich die komplette Arbeitskopie aktualisieren. Wählen Sie einfach die Dateien oder Ordner aus, welche Sie aktualisieren möchten und öffnen Sie dann das Kontextmenü durch einen Rechtsklick. Im Kontextmenü wählen Sie dann den Befehl TortoiseSVNAktualisieren aus und ein Fortschrittsdialog wird erscheinen. Änderungen von Anderen werden in Ihre Arbeitskopie eingefügt, wobei Ihre eigenen Änderungen selbstverständlich beibehalten werden. Das Projektarchiv selbst wird durch eine Aktualisierung nicht verändert.

Der Fortschrittsdialog verwendet eine Farbcodierung, um verschiedene Aktionen anzuzeigen

Purpur

Neues Objekt zur Arbeitskopie hinzugefügt.

Dunkelrot

Überflüssiges Objekt das aus der Arbeitskopie gelöscht wurde oder fehlendes Objekt, das in der Arbeitskopie ersetzt wurde.

Grün

Änderungen aus dem Projektarchiv wurden erfolgreich mit Ihren lokalen Änderungen zusammengeführt.

Hellrot

Änderungen aus dem Projektarchiv wurden mit Ihren lokalen Änderungen zusammengeführt. Es gab jedoch Konflikte, die Sie noch auflösen müssen.

Schwarz

Unverändertes Objekt in Ihrer Arbeitskopie, das durch ein neueres Objekt aus dem Projektarchiv ersetzt wurde

Dies ist das Standard Farbschema, aber Sie können die Farben im Einstellungsdialog anpassen. Siehe „TortoiseSVN Farben“ für weitere Informationen.

Falls Sie Konflikte während einer Aktualisierung erhalten (Dies kann passieren wenn jemand anders dieselbe Stelle in einer Datei geändert hat wie Sie und diese Änderungen nicht zusammenpassen) dann zeigt der Fortschritts-Dialog diese Dateien rot markiert an. Ein Doppelklick auf diese roten Einträge öffnet einen Konflikteditor, mit dem Sie solche Konflikte ganz einfach von Hand auflösen können.

Sobald die Aktualisierung beendet ist, zeigt der Fortschrittsdialog eine Zusammenfassung der aktualisierten, hinzugefügten und gelöschten Objekte unterhalb der Dateiliste an. Diese Information kann mittels Strg+C in die Zwischenablage kopiert werden.

Der normale „Aktualisieren“ Befehl hat keine Parameter und aktualisiert Ihre Arbeitskopie stets zur HEAD Revision des Projektarchivs, was der häufigste Anwendungsfall ist. Wenn Sie genau festlegen wollen, in welcher Revision sich Ihre Arbeitskopie befinden soll, sollten Sie den TortoiseSVNAktualisieren zu Revision... Befehl verwenden, der Ihnen genau das ermöglicht. Nehmen wir an, Ihre Arbeitskopie befindet sich in Revision 100, aber sie möchten sie gerne in Revision 50 zurückversetzen - Aktualisieren sie einfach zu Revision 50. In diesem Dialog können Sie auch die Tiefe beim Aktualisieren festlegen. Die verschiedenen Tiefen werden in „Rekursionstiefe“ beschrieben. Die Vorgabe ist Arbeitskopie und erhält die vorhandene Einstellung. Weiterhin können Sie wählen, ob Sie externe Projekte (auf die mittels svn:externals verwiesen wird) einschließen oder ignorieren wollen.

Achtung

Wenn Sie eine Datei oder Ordner auf eine bestimmte Revision aktualisieren, sollten Sie keine Änderungen daran vornehmen. Sie werden „out of date“ Fehlermeldungen erhalten sobald Sie versuchen, diese Dateien oder Ordner zu übertragen! Wenn Sie Änderungen an Dateien rückgängig machen und mit einer vorherigen Version weiterarbeiten wollen, können Sie mit Hilfe des Log-Dialogs zu einer früheren Version zurückkehren. Lesen Sie in „Revisionen im Projektarchiv rückgängig machen“ nach, welche Methoden Ihnen dazu zur Verfügung stehen.

Der Befehl TortoiseSVNAktualisieren zu Revision kann manchmal nützlich sein, um zu überprüfen, wie Ihr Projekt zu einem früheren Zeitpunkt aussah. Im Allgemeinen ist es jedoch keine gute Idee, einzelne Dateien in einen früheren Zustand zu versetzen, da dadurch Ihre Arbeitskopie inkonsistent wird. Wenn die Datei, die sie aktualisieren umbenannt wurde, kann es sogar passieren, dass sie aus Ihrer Arbeitskopie verschwindet, da zu einem früheren Zeitpunkt keine Datei dieses Namens im Projektarchiv existierte. Beachten Sie bitte, dass das überlagerte Symbol des Objekts den „normal“ Status anzeigt und das Objekt somit nicht von aktualisierten Objekten unterschieden werden kann.

Wenn Sie lediglich eine lokale Kopie einer alten Version einer Datei haben wollen, ist es besser, den KontextmenüRevision speichern unter... Befehl aus dem Log-Dialog dafür zu verwenden.

Mehrere Dateien/Ordner

Wenn Sie mehrere Dateien und Ordner im Explorer auswählen und dann Aktualisieren... ausführen, so werden alle Dateien und Ordner auf dieselbe Revision aktualisiert, sogar dann wenn zwischen den einzelnen Aktualisierungen jemand anders Änderungen zum Projektarchiv übertragen hat.

Lokale Datei existiert bereits

Manchmal wird die Aktualisierung mit einer Fehlermeldung abbrechen welche besagt dass eine Datei mit demselben Namen bereits existiert. Dies passiert wenn Subversion eine neu versionierte Datei auschecken möchte, aber eine Datei mit demselben Namen und Pfad bereits in Ihrer Arbeitskopie vorhanden ist. Subversion wird niemals eine solche Datei überschreiben - Sie könnten dadurch ja wichtige Daten verlieren.

Wenn Sie diese Fehlermeldung erhalten ist die Lösung sehr einfach: Benennen Sie die unversionierte Datei in Ihrer Arbeitskopie um. Danach führen Sie die Aktualisierung nochmals durch.

Wenn Sie diese Fehlermeldung immer wieder erhalten, benutzen Sie TortoiseSVNPrüfe auf Änderungen, um eine Liste von allen problematischen Dateien zu erhalten. Dadurch können Sie alle möglichen Konflikte im Vorfeld erkennen.