Änderungen an Dateien im Projektarchiv abzuspeichern wird auch Übertragen der Änderungen genannt. Vor dem Übertragen jedoch sollten Sie sicherstellen, dass Ihre Arbeitskopie auch auf dem neuesten Stand ist. Sie können entweder den Befehl
→ sofort ausführen oder zunächst mittels → , welche Dateien sich lokal oder auf dem Server geändert haben.Wenn Ihre Arbeitskopie auf dem neuesten Stand ist und keine Konflikte vorhanden sind, können Sie Ihre Änderungen übertragen. Wählen Sie die Dateien/Ordner aus, die Sie übertragen wollen, und wählen Sie den Befehl
→ .Der Dialog zeigt alle geänderten Dateien einschließlich hinzugefügter, gelöschter oder nicht versionierter Dateien an. Wenn Sie bestimmte Dateien nicht übertragen wollen, wählen Sie diese einfach ab. Dateien, die noch nicht unter Versionskontrolle stehen, können Sie durch Markieren vor dem Übertragen hinzufügen.
Um schnell Gruppen von Dateien, z. B. alle versionierten oder alle geänderten Dateien auszuwählen, klicken Sie einfach auf die verschiedenen Auswahloptionen oberhalb der Dateiliste.
Informationen über die Färbung und Überlagerungen der Objekte entsprechend ihres Status finden Sie unter „Prüfe auf Änderungen“.
Objekte, die zu einem anderen Pfad im Projektarchiv gewechselt wurden, werden durch ein (s)
gekennzeichnet. Vielleicht haben Sie während der Entwicklung etwas auf einen Zweig umgeschaltet und vergessen, zurück zu trunk zu wechseln. Dies ist Ihr Warnzeichen!
Wenn Sie Dateien übertragen, zeigt der Dialog nur die gewählten Dateien an. Wenn Sie Ordner übertragen, werden die geänderten Dateien automatisch selektiert. Übertragen eines Ordners bedeutet nicht, dass jede Datei in diesem Ordner übertragen wird. Es nimmt Ihnen lediglich die Arbeit ab, alle Dateien vorher auszuwählen.
Wenn Sie das Gefühl haben, dass TortoiseSVN Ihnen viel zu viele Dateien im Übertragen-Dialog anzeigt, die nicht unter Versionskontrolle stehen (z. B. vom Compiler erzeugte Dateien oder Sicherungsdateien vom Editor), haben Sie mehrere Möglichkeiten, dies einzugrenzen. Sie können:
diese Dateien im Eigenschaftsdialog in die Liste der auszuschließenden Dateien aufnehmen. Dies hat Einfluss auf alle Arbeitskopien gleichzeitig.
Fügen Sie diese Dateien mit dem Befehl svn:ignore
-Eigenschaft des Ordners aufgenommen, in dem Sie den Befehl aufgerufen haben. Mit dem SVN-Eigenschaftendialog können Sie die svn:ignore
eines Verzeichnisses ändern.
Die Datei mittels svn:global-ignores
hinzufügen. Dies beeinflusst das Verzeichnis, für das Sie die svn:global-ignores
-Eigenschaft setzen und auch alle seine Unterordner.
Siehe „Ignorieren von Dateien und Ordnern“ für weitere Information.
Durch einen Doppelklick auf eine Datei im Übertragen-Dialog wird das Vergleichsprogramm gestartet, sodass Sie die Änderungen, die Sie vorgenommen haben, genauer ansehen können. Das Kontextmenü bietet weitere Optionen, wie Sie im Bild sehen können. Sie können von hier aus auch Dateien in eine andere Anwendung, z. B. einen Texteditor oder eine Entwicklungsumgebung, ziehen.
Sie können Einträge an- oder abwählen, indem Sie das Kästchen links vom Eintrag markieren. Für Verzeichnisse können Sie Umschalt-Auswahl verwenden, um die Auswahl rekursiv zu machen.
Die im unteren Bereich angezeigten Spalten können angepasst werden. Wenn Sie einen Rechtsklick auf einen Spaltenkopf machen, erscheint ein Kontextmenü, aus dem Sie die anzuzeigenden Spalten auswählen können. Sie können auch die Spaltenbreiten anpassen, indem sie die Spaltenköpfe mit den Ziehmarken justieren. Diese Einstellungen werden gespeichert, sodass Sie beim nächsten Mal dieselben Spalten sehen.
Standardmäßig werden bei einer erfolgreichen Übertragung die von Ihnen gesperrten Dateien wieder freigegeben. Wenn Sie jedoch die Sperren behalten möchten, aktivieren Sie die Option Sperren behalten. Als Vorgabewert des Auswahlkästchen wird aus der Einstellung no_unlock
in der Subversion-Konfigurationsdatei verwendet. Lesen Sie in „Allgemeine Einstellungen“ nach, wie Sie die Subversion-Konfigurationsdatei bearbeiten können.
Normalerweise wird nur in den Stamm (trunk) oder einen Zweig (branch) übertragen, aber nicht in einer Markierung (tag), denn eine Marke wird als unveränderlich betrachtet und sollte nicht modifiziert werden.
Wenn versucht wird, in eine Markierung zu übertragen, zeigt TortoiseSVN einen Bestätigungsdialog, um sicherzustellen, dass das wirklich gewünscht ist. Meistens werden solche Übertragungen versehentlich angestoßen.
Diese Prüfung funktioniert jedoch nur, wenn das Layout des Projektarchivs dem empfohlenen Standard entspricht und die Namen trunk
, branches
und tags
verwendet, um die drei Hauptbereiche zu kennzeichnen. Falls Ihre Konfiguration nicht dem Standard entspricht, können Sie die Erkennung, was als Stamm/Zweig/Marke erkannt wird (auch Klassifizierungsmuster
genannt), im Einstellungsdialog anpassen: „Einstellungen des Revisionsgraphen“
Sie können auch aus anderen Ordnern Dateien in den Übertragen-Dialog ziehen, solange die Arbeitskopie aus demselben Projektarchiv ausgecheckt wurde. Angenommen, Sie haben eine riesige Arbeitskopie und mehrere Explorerfenster mit Sichten auf verschiedene Ordner Ihrer Arbeitskopie geöffnet. Wenn Sie die Übertragung nicht aus dem obersten Ordner heraus starten wollen, weil das Durchsuchen der Arbeitskopie nach geänderten Dateien seine Zeit dauert, können Sie die Übertragung in einem Ordner starten und weitere Objekte aus den anderen Ordnern in den Dialog ziehen, die dann auf einen Schlag mit übertragen werden.
Sie können unversionierte Dateien, die sich in einer Arbeitskopie befinden, direkt in den Übertragen-Dialog ziehen. Diese Dateien werden dann automatisch zur Versionskontrolle hinzugefügt.
Wenn Sie Dateien aus der unteren Liste des Übertragen-Dialogs in das Eingabefeld für die Logmeldung ziehen, werden die Pfadnamen im Klartext in das Eingebefeld eingefügt. Das ist dann nützlich, wenn Sie die von der Übertragung betroffenen Pfade in der Logmeldung erwähnen wollen.
Manchmal werden Dateien außerhalb von Subversion umbenannt. Sie werden in der Dateiliste als eine fehlende und eine nicht-versionierte Datei angezeigt. Damit Sie die Historie der Datei nicht verlieren, müssen Sie Subversion über die Umbenennung informieren. Markieren Sie einfach beide, die alte (fehlende) und die neue (unversionierte) Datei und wählen Sie
→ , um die beiden Dateien zu einer Umbenennung zusammenzufassen.Wenn Sie eine Datei kopiert haben, ohne den entsprechenden Subversion-Befehl zu benutzen, können Sie diese Kopie reparieren, sodass die neue Datei ihre Historie nicht verliert. Markieren Sie einfach beide, die alte (normal oder verändert) und die neue (unversionierte) Datei und wählen Sie
→ , um die beiden Dateien zu einer Kopie zusammenzufassen.Der Übertragen-Dialog unterstützt die Änderungslisten von Subversion, mit der zueinander gehörende Dateien gruppiert werden können. Eine Beschreibung dieser Funktion findet sich in „Änderungslisten“.
Manchmal möchten Sie nur Teile der Änderungen übertragen, die Sie an einer Datei vorgenommen haben. So etwas passiert normalerweise, wenn Sie an etwas arbeiten, jedoch ein dringender Bugfix übertragen werden muss, der sich in derselben Datei befindet, an der Sie gerade arbeiten.
Machen Sie einen Rechtsklick auf die Datei und wählen Sie → . Dadurch wird eine Kopie der Datei im aktuellen Zustand erstellt. Anschließend können Sie die Datei z. B. in einem Texteditor bearbeiten und die Änderungen entfernen, die Sie nicht übertragen möchten. Nach dem Speichern übertragen Sie die Datei.
Wenn Sie die Datei mit TortoiseMerge bearbeiten, können Sie dies wie gewohnt tun. Außerdem haben Sie die Möglichkeit, alle Änderungen, die Sie übernehmen wollen, per Rechtsklick und → einzuschließen. Schließlich können Sie perRechtsklick und → . Dadurch behält die rechte Ansicht nur die markierten Änderungen und die nicht markierten Änderungen werden zurückgenommen.
Nachdem die Übertragung durchgeführt wurde, wird die Kopie der Datei automatisch wiederhergestellt. Sie erhalten Ihre Datei inklusive der nicht übertragenen Änderungen zurück.
Manchmal arbeiten Sie mit versionierten Dateien, die sich häufig ändern, die Sie aber nicht übertragen wollen. Eventuell deutet das auf einen Mangel in Ihrem Erstellungsprozess hin: Warum sind diese Dateien versioniert? Sollten Sie nicht besser mit Vorlagen arbeiten? Aber manchmal ist es unvermeidlich. Ein klassischer Grund ist, dass Ihre Entwicklungsumgebung bei jedem Generieren einen Zeitstempel in der Projektdatei verändert. Die Projektdatei muss versioniert sein, da sie alle zum Generieren erforderlichen Einstellungen enthält, aber sie muss nicht übertragen werden, nur weil sich der Zeitstempel geändert hat.
Um in diesen heiklen Fällen zu helfen, gibt es eine reservierte Änderungsliste namens ignore-on-commit
. Jede zu dieser Änderungsliste hinzugefügte Datei wird im Übertragen-Dialog nicht markiert. Sie können die Änderungen übertragen, müssen die Datei aber von Hand wählen.
Achten Sie darauf, dass Sie eine Logmeldung eingeben, die die von Ihnen vorgenommenen Änderungen beschreibt. So können Sie später beim Durchblättern der Projekt-Logmeldungen sehen, was wann passiert ist. Die Nachricht kann so lang oder so kurz sein, wie Sie möchten. Viele Projekte haben Richtlinien für das, was enthalten sein sollte, die zu verwendende Sprache und manchmal sogar ein strenges Format.
Sie können Ihre Logmeldungen mit einfachen Formatierungen versehen. Dazu wird eine Konvention ähnlich derer in E-Mails angewendet. Um text
zu formatieren, verwenden Sie *text*
für fett, _text_
für unterstrichen und ^text^
für kursiv.
TortoiseSVN enthält eine Rechtschreibprüfung, die Sie bei der Korrektur Ihrer Logmeldungen unterstützt. Sie hebt sämtliche falsch geschriebenen Wörter hervor. Verwenden Sie das Kontextmenü, um auf die Korrekturvorschläge zuzugreifen. Verständlicherweise kennt die Rechtschreibprüfung nicht jeden technischen Ausdruck, den Sie verwenden, sodass manchmal korrekt geschriebene Wörter als fehlerhaft markiert werden. Aber keine Sorge. Sie können diese Wörter über das Kontextmenü zu Ihrem persönlichen Wörterbuch hinzufügen.
Der Dialog zur Eingabe von Logmeldungen enthält auch eine Funktion zum Autovervollständigen von Datei- und Funktionsnamen. Diese verwendet reguläre Ausdrücke, um Klassen- sowie Funktionsnamen aus den (Text-) Dateien, die Sie übertragen, zu extrahieren sowie die Dateinamen selbst. Wenn ein von Ihnen eingegebenes Wort mit einem Eintrag in der Liste übereinstimmt (sobald Sie mindestens drei Zeichen eingegeben oder Strg+Leerzeichen gedrückt haben), erscheint eine Liste, aus der Sie den vollständigen Namen wählen können. Die mit TortoiseSVN gelieferten regulären Ausdrücke befinden sich im TortoiseSVN-Installationsordner bin
. Sie können auch Ihre eigenen regulären Ausdrücke definieren und in %APPDATA%\TortoiseSVN\autolist.txt
speichern. Selbstverständlich wird ihre eigene Autolist bei einem Update von TortoiseSVN nicht überschrieben. Sollten Sie noch keine Erfahrung mit regulären Ausdrücken besitzen, können Sie sich die Einführung in https://en.wikipedia.org/wiki/Regular_expression
Den regulären Ausdruck korrekt hinzubekommen, kann trickreich sein. Um Ihnen dabei etwas zur Hand zu gehen, gibt es einen Testdialog, in dem Sie einen regulären Ausdruck gegen eine Liste von Dateien testen können. Diesen Dialog können Sie per Kommandozeile mittels TortoiseProc.exe /command:autotexttest
starten.
Weiterhin enthält das Logfenster die Möglichkeit, Textbausteine zu verwenden. Diese werden in der Vorschlagsliste angezeigt, sobald Sie das Kürzel für einen Textbaustein eingegeben haben. Indem Sie den Baustein auswählen, wird der vollständige Text in die Logmeldung eingefügt. Die mit TortoiseSVN installierten Textbausteine finden Sie im bin
-Ordner des Installationsverzeichnisses. Sie können auch Ihre eigenen Textbausteine erstellen und in %APPDATA%\TortoiseSVN\snippet.txt
ablegen. #
dient als Kommentarzeichen. Zeilenumbrüche können mittels \n
und \r
eingefügt werden. Für einen Rückwärtsschrägstrich verwenden Sie \\
.
Sie können die zuletzt verwendeten Logmeldungen wiederverwenden. Dazu klicken Sie auf
und wählen einen Eintrag aus der Liste der Meldungen für dieses Projektarchiv aus. Die Anzahl der zu speichernden Logmeldungen kann in den Einstellungen festgelegt werden.Auf der Seite Gespeicherte Daten in den TortoiseSVN-Einstellungen können Sie alle gespeicherten Logmeldungen auf einmal löschen. Alternativ können Sie im Fenster Letzte Meldungen Meldungen markieren und mittels Entfernen einzeln löschen.
Wenn Sie die markierten Pfade in Ihre Logmeldung aufnehmen möchten, können Sie den Befehl
→ im Eingabefeld verwenden.Eine weitere Möglichkeit besteht darin, die Dateien einfach aus der Dateiliste in das Eingabefeld zu ziehen.
Es gibt mehrere spezielle Ordnereigenschaften, die z. B. für die Formatierung von Logmeldungen und die Rechtschreibkorrektur verwendet werden können. Sehen Sie dazu „Projekt-Einstellungen“.
Wenn Sie die Fehlerverfolgung aktiviert haben, können Sie in das Feld Fehler-ID / Eintrags-Nr: eine oder mehrere Eintragsnummer(n) eingeben. Mehrere Einträge müssen durch Kommata getrennt werden. Alternativ können Sie bei Verwendung von regulären Ausdrücken die Eintragsnummern direkt in die Logmeldung einfließen lassen. Mehr dazu finden Sie in „Integration mit einem System zur Fehlerverfolgung“.
Wenn Sie schlussendlich auf
klicken, wird die Übertragung gestartet und der Fortschrittsdialog angezeigt.Der Fortschrittsdialog verwendet eine Farbcodierung, um verschiedene Aktionen anzuzeigen
Übertrage eine Änderung.
Übertragen eines neuen Objekts.
Übertragen einer Löschung oder Ersetzen eines Objekts.
Alle anderen Objekte.
.
Dies ist das Standard-Farbschema, aber Sie können die Farben im Einstellungsdialog anpassen. Siehe „TortoiseSVN-Farben“ für weitere Informationen.