TortoiseMerge

Ein Vergleichs- und Konflikteditor für Windows

Version 1.14

Stefan Küng

Lübbe Onken

Simon Large

Stefan Küng

Übersetzung 

Lübbe Onken

Übersetzung 

2022/09/06 19:53:28 (r29447)


Inhaltsverzeichnis

Vorwort
TortoiseMerge ist frei!
Danksagung
1. Einleitung
Übersicht
Geschichte von TortoiseMerge
2. Grundlegende Konzepte
Anzeigen und Zusammenführen von Unterschieden
Konflikte bearbeiten
Patches anwenden
3. TortoiseMerge benutzen
Ansichten
Anzeigen / Zusammenführen
Patches anwenden
Schaltflächen und andere Steuerelemente
Symbole für den Zeilenstatus
Zusammenführen / Konflikte bearbeiten
Dateien öffnen
Anzeigen / Zusammenführen
Patches anwenden
Einstellungen
Allgemeine Einstellungen
Farbeinstellungen
A. Tastaturkürzel
Tastaturkürzel
Allgemeine Tastaturkürzel
Diff-Modus Tastaturkürzel
Konfliktauflösungs-Modus Tastaturkürzel
B. TortoiseMerge automatisieren
TortoiseMerge-Kommandozeilenbefehle
Glossar

Abbildungsverzeichnis

1.1. Dateikonflikt
2.1. Dateikonflikt
3.1. Vergleich übereinander in einem Bereich
3.2. Vergleich nebeneinander mit zwei Bereichen
3.3. Zusammenführen mit drei Bereichen
3.4. Patchliste
3.5. Der Öffnen-Dialog
3.6. Die allgemeinen Einstellungen
3.7. Die Farbeinstellungen

Tabellenverzeichnis

B.1. Liste der Kommandozeilenbefehle

Vorwort

Wann immer Sie an einem Projekt arbeiten, sei es ein Open-Source-Projekt, wo mehrere Leute den Sourcecode einsehen, oder sei es ein kommerzielles Projekt, in dem Sie eine Komponente mit Sourcecode verkaufen, wird es immer Leute und Kunden geben, die Fehler finden oder Ihr Projekt verbessern wollen. Sie tun dies, indem sie Ihnen sogenannte Patchdateien senden. Sie müssen dann diese Patchdateien durchsehen und entscheiden, ob Sie die Änderungen in Ihr Projekt übernehmen oder nicht.

TortoiseMerge hilft Ihnen bei diesen beiden Aufgaben:

  • Patchdateien überprüfen

  • Patchdateien anwenden

TortoiseMerge hilft Ihnen ebenfalls beim Auflösen von Konflikten, die bei der Arbeit mit einem Versionskontrollsystem auftreten können, wenn andere gleichzeitig an denselben Dateien arbeiten wie Sie.

TortoiseMerge ist frei!

TortoiseMerge ist freie Software. Sie brauchen nichts dafür zu bezahlen. Sie können das Programm benutzen, wie Sie wollen. TortoiseMerge wird unter der General Public License (GPL) entwickelt.

TortoiseMerge ist ein Open-Source-Projekt. Das bedeutet, dass Sie vollen Zugang zum Quellcode des Programms haben. Der Code findet sich hier: https://osdn.net/projects/tortoisesvn/scm/svn/. Die aktuellste Version, an der wir gerade arbeiten, findet sich unter /trunk/ und die veröffentlichten Versionen finden sich unter /tags/.

Danksagung

Stefan Küng

für die harte Arbeit an TortoiseMerge

Lübbe Onken

für die wundervollen Icons, das Logo, die unermüdliche Fehlersuche und die Dokumentation

Das Tigris Style Projekt

für einige der Stile, die in dieser Dokumentation wiederverwendet werden.

Unsere Helfer

für die Patches, Fehlermeldungen und dafür, dass sie anderen helfen, indem Sie Fragen auf unserer Mailingliste beantworten.

Unsere Spender

für viele Stunden voll toller Musik, die sie uns geschenkt haben.

Kapitel 1. Einleitung

Übersicht

TortoiseMerge ist ein freies Open-Source-Programm. Sie können damit Unterschiede in Textdateien zeigen, diese Unterschiede zusammenführen und auch Standard-Diff-Dateien, sogenannte Patchdateien, auf Ihre Arbeitskopie anwenden.

Wenn Sie mit Textdateien, z. B. Quelltexten ihrer bevorzugten Programmiersprache oder HTML-/XML-Dateien Ihrer Dokumentation oder Webseite arbeiten, werden Sie öfters in eine Situation kommen, in der Sie verschiedene Versionen von solchen Dateien vergleichen möchten. Manchmal erhalten Sie eine veränderte Datei von jemand anderem, manchmal möchten Sie einfach nachsehen, was Sie an einer Datei schon alles geändert haben.

Wenn Sie mit einem Versionskontrollsystem arbeiten (z. B. Subversion), dann werden Sie manchmal einen Konflikt erhalten, wenn Sie Ihre Arbeitskopie aktualisieren. Dies passiert, wenn jemand anders die gleichen Stellen der Datei geändert hat wie Sie. Dann müssen Sie diesen Konflikt von Hand wieder auflösen. TortoiseMerge hilft Ihnen dabei.

Das folgende Diagramm zeigt die Beziehung zwischen den verschiedenen Dateien bei einem Konflikt:

Abbildung 1.1. Dateikonflikt

Dateikonflikt

Geschichte von TortoiseMerge

Während der Arbeit an TortoiseSVN war es jedes Mal sehr aufwendig, wenn jemand uns Patches mit Fehlerkorrekturen oder Erweiterungen zugeschickt hat, diese Patches auch einzubinden. Häufig waren die Patches veraltet und konnten mit dem Kommandozeilenprogramm https://unxutils.sourceforge.net/ nicht appliziert werden, da wir an den Dateien arbeiteten und diese manchmal bereits geändert waren.

Das war auch der Hauptgrund, weshalb TortoiseSVN keinen Befehl TortoiseSVNErstelle Patch implementiert hatte: Wir wollten statt der Patchdateien lieber die ganzen Dateien von den Anwendern haben, weil es für uns einfacher war, Änderungen auf diese Weise zum Projekt hinzuzufügen.

Also haben wir viel Zeit damit verbracht, das Internet nach einem guten grafischen Tool abzusuchen, das Patchdateien zu Projekten hinzufügen konnte. Aber alles, was wir fanden, war, dass ein solches Programm nicht existierte. Um eine lange Geschichte zu einem Ende zu bringen: Wir haben dann beschlossen, dass wir eben selbst eines schreiben müssen, wenn niemand ein solches Tool anbietet. So entstand TortoiseMerge.

Da TortoiseSVN schon die Subversion-Bibliothek benutzt, die gute Vergleichsfunktionen enthält, war es nur natürlich, dieselbe Funktionsbibliothek anstelle von GNU Diff für TortoiseMerge zu nutzen.

Mit Subversion 1.7 wurde der Befehl svn patch eingeführt, um einen Patch auf eine Arbeitskopie anzuwenden. TortoiseMerge verwendet nun dieselben Funktionen wie Subversion, um Unterschiede im Verhalten zu vermeiden.

Kapitel 2. Grundlegende Konzepte

TortoiseMerge hat verschiedene Verwendungszwecke:

  • Anzeigen von Unterschieden zwischen zwei Dateien, Zusammenführen von gewünschten und Entfernen unerwünschter Änderungen in einer der beiden Dateien.

  • Bearbeiten von Konflikten zwischen lokalen Änderungen und dem Subversion-Projektarchiv in Folge einer Aktualisierung.

  • Patches anwenden und überprüfen.

Anzeigen und Zusammenführen von Unterschieden

In diesem Modus vergleichen Sie zwei Dateien. Die links angezeigte Datei stellt das Original dar (manchmal auch als Deren bezeichnet) und die rechte Datei die geänderte (manchmal auch als Meine bezeichnet).

Sie können einfache zeilenbasierte Änderungen an der Datei im rechten Bereich vornehmen, darunter:

  • Geänderten Text auf das Original im linken Bereich zurücksetzen.

  • Eine Kombination aus beiden Blöcken, entweder Deren vor Meinem oder Meinen vor Deren übernehmen.

Sie können die Datei im rechten Bereich wie in einem Texteditor bearbeiten. Solche Zeilen werden durch einen Stift gekennzeichnet. Beachten Sie bitte, dass Sie, wenn Sie Zeilen- oder Blockoperationen vornehmen, diese zuerst - vor manuellen Änderungen - durchführen. Für TortoiseMerge wird es sonst unmöglich, die Beziehungen zu den Originaldateien aufrecht zu erhalten.

Konflikte bearbeiten

Dies wird manchmal als Dreiwegevergleich bezeichnet und wird in drei Bereichen angezeigt. Tatsächlich sind aber vier Dateien involviert. Die nicht angezeigte Datei ist die gemeinsame Basis, der letzte Vorgänger der beiden, sich in Konflikt befindenden Dateien. Die Beziehungen zwischen den drei Dateien stellen sich wie folgt dar:

Abbildung 2.1. Dateikonflikt

Dateikonflikt

Die Basis-Datei entspricht der ältesten Version einer Datei, von der aus Sie und die Anderen Änderungen vorgenommen haben. Meine entspricht dabei der Basisdatei mit allen Änderungen, die Sie selbst vorgenommen haben und wird im rechten Bereich angezeigt. Deren entspricht der Basisdatei mit allen Änderungen, die die Anderen gemacht haben und wird im linken Bereich angezeigt. Der untere Bereich enthält die Ausgabedatei. In dieser werden die Konflikte aufgelöst.

Im Dreiwegevergleich, können Sie Blöcke aus Meiner oder Deren Datei oder aus beiden verwenden. Nur gehen in diesem Fall die Änderungen in die Zieldatei, die im unteren Bereich angezeigt wird.

Patches anwenden

Ein Patchdatei ist eine Subversion-Standard-Diff-Datei, die Informationen über Änderungen an einem Satz von Dateien enthält. Der Patch kann von einem anderen Entwickler stammen, sodass Sie seine Änderungen anwenden, überprüfen und gegebenenfalls in das Projektarchiv übertragen können. Die Patchdatei kann auch intern durch TortoiseSVN beim Vergleich zweier Ordner generiert werden. Dies geschieht zum Beispiel, wenn Sie eine Revision im Projektarchiv mit der Arbeitskopie oder auch zwei Revisionen im Projektarchiv oder zwei verschiedene Pfade im Projektarchiv miteinander vergleichen.

In jedem Fall wird TortoiseMerge ein kleines Fenster mit den vom Patch betroffenen Dateien anzeigen. Durch einen Doppelklick auf eine der Dateien wird die Ausgangsrevision geholt und die Änderungen werden angewendet. Im linken Bereich wird die Originaldatei und im rechten die veränderte Datei angezeigt.

Sie können die Datei im rechten Bereich genauso wie im Vergleichsmodus bearbeiten.

Kapitel 3. TortoiseMerge benutzen

Ansichten

TortoiseSVN besitzt drei verschiedene Ansichten: mit einem, zwei oder drei Bereichen. Die Ein-/Zweifensteransicht dient zum Betrachten von Änderungen und die Dreifensteransicht zum Auflösen von Konflikten.

Anzeigen / Zusammenführen

Abbildung 3.1. Vergleich übereinander in einem Bereich

Vergleich übereinander in einem Bereich

Abbildung 3.2. Vergleich nebeneinander mit zwei Bereichen

Vergleich nebeneinander mit zwei Bereichen

Die Zweifensteransicht bietet einige Möglichkeiten, die in der Einfensteransicht nicht zur Verfügung stehen:

  • Unterschiede innerhalb einer Zeile werden in verschiedenen Farben angezeigt. Hinzugefügte Zeichen werden in einer helleren Farbe dargestellt, aber sie können selbstverständlich die verwendeten Farben einstellen. Gelöschte Abschnitte werden durch eine dunkelbraune senkrechte Linie angezeigt.

  • Die Reorganisation von Quellcode führt häufig zu größeren Änderungen an Leerzeichen (Leerzeichen, Tabulatoren, Leerzeilen) ohne tatsächliche Änderungen am Programmcode. Zum Beispiel spalten Sie eine sehr lange Zeile in mehrere kurze Zeilen auf oder lassen einen automatischen Quellcodeformatierer über den Programmcode laufen.

    Solche Änderungen werden durch einen weißen Kreis am linken Rand der Bereiche dargestellt. Wenn Sie einen Kreis sehen, wissen Sie sofort, dass keine echte Codeänderung vorliegt und Sie den Block nicht genauer untersuchen müssen.

  • Manuelles Bearbeiten der rechten Datei ist in der Zweifensteransicht möglich. Änderungen werden durch ein Stiftsymbol gekennzeichnet. Manuelles Bearbeiten der linken Datei ist nur möglich, wenn die Schaltfläche Bearbeiten aktivieren bei aktiver linker Seite gedrückt wurde.

Für den Fall, dass Sie drei Dateien zusammenführen möchten, zeigt TortoiseMerge Ihnen diese in drei Bereichen an. Die gleiche Ansicht wird auch für das Auflösen von Konflikten verwendet.

Abbildung 3.3. Zusammenführen mit drei Bereichen

Zusammenführen mit drei Bereichen

Der linke Bereich zeigt Ihnen die Unterschiede zwischen Deren Datei und der Basis-Datei, während der rechte Bereich die Unterschiede zwischen Meiner Datei und der Basis-Datei darstellt. Der untere Bereich zeigt Ihnen das Ergebnis des Zusammenführens der drei Dateien inklusive möglicher Konflikte.

Wenn Sie mit der Maus über die Titelzeile jedes Bereichs fahren, wird Ihnen der Name der jeweiligen Datei in einem Hinweistext angezeigt.

Manuelles Bearbeiten der linken Datei ist nur möglich, wenn die Schaltfläche Bearbeiten aktivieren bei aktiver linker Seite gedrückt wurde.

Patches anwenden

Nachdem TortoiseMerge die Patchdatei eingelesen hat, wird ein kleines Dialogfenster mit allen Dateien, die durch den Patch geändert würden, angezeigt.

Abbildung 3.4. Patchliste

Patchliste


Wenn der Dateiname schwarz ist, kann der Patch ohne Probleme übernommen werden, weil die Zieldatei dem in der Patchdatei angegebenen Stand entspricht. Ist der Dateiname hingegen rot, dann kann der Patch nicht direkt übernommen werden, da die Zieldatei schon anderweitig geändert wurde.

Das Patchdateifenster hat ein Kontextmenü, das Ihnen eine Vorschau der Änderungen an der aktuellen Datei ermöglicht (Anwenden, ohne zu speichern) sowie die Anwendung und Speicherung der Änderungen für die ausgewählte Datei oder auf alle Dateien in der Liste ermöglicht. Ein Doppelklick startet die Vorschau.

Schaltflächen und andere Steuerelemente

Abhängig von Ihren Einstellungen, sehen Sie entweder eine Werkzeugleiste oder ein Band mit vielen Schaltflächen. Die Schaltflächen besitzen alle einen HInweistext, der ihre Funktion erläutert, sobald Sie mit der Maus darüber fahren.

Am linken Rand ist eine Navigationsleiste. Diese liefert einen schnellen Überblick, wo sich Änderungen in der Datei befinden. Die Leiste hat drei Spalten. Die linke Spalte entspricht dem linken Bereich, die rechte Spalte dem rechten Bereich, die mittlere Spalte, falls angezeigt, dem unteren Bereich. In der Einfensteransicht wird nur die linke Spalte benutzt. Die Navigationsleiste kann auch als Bildlaufleiste benutzt werden, wobei sich dann alle drei Bereiche synchron verschieben.

Wenn Sie auf ein Wort doppelklicken, wird jedes Vorkommen des Wortes im gesamten Dokument hervorgehoben, sowohl in den Fenstern als auch in der Navigationsleiste. Doppelklicken Sie erneut auf das Wort, um die Markierung zu entfernen.

Wenn Sie am linken Rand klicken oder wenn Sie innerhalb einer Zeile dreifach klicken, wird die gesamte Zeile ausgewählt.

Unterhalb des Fensters befindet sich die Statusleiste. Diese zeigt die Anzahl der in Deren und Meine hinzugefügten oder gelöschten Zeilen sowie die Anzahl der verbleibenden Konflikte.

Die Statusleiste enthält auch Kombinationsfeld-Steuerelemente, die festlegen, wie die Dateien behandelt werden sollen:

Codierung

Die Codierung legt fest, wie die Zeichen in den Ansichten geladen, gespeichert und angezeigt werden. Die häufigste Zeichencodierung in Englisch ist ASCII (dies bedeutet die lokale Kodierung der Betriebssystemsprache). Sie können aber auch UTF8, UTF16LE, UTF16BE, UTF32LE und UTF32BE mit oder ohne BOM (Byte Order Mark) einstellen.

Zeilenumbrüche

Unter Windows ist wird üblicherweise CRLF als Zeilenumbruch verwendet, aber Sie können die von Ihnen gewünschte Variante auswählen. Wenn Sie die Zeilenumbrüche ändern, werden alle Zeilenumbrüche in der gesamten Datei entsprechend geändert, auch wenn sie beim Laden unterschiedlich waren.

Tabulator

Die Option oberhalb des Kombinationsfeldes legt fest, ob Tabulatoren oder Leerzeichen eingefügt werden, wenn Sie die Tabulatortaste drücken. Wenn die Option Intelligenter Tabulator aktiviert ist, wird über einen Algorithmus festgestellt, welche Variante die bessere von beiden ist.

Die Tabulatorgröße legt fest, wie viele Leerzeichen eingefügt werden, wenn die Tabulatortaste gedrückt wird, beziehungsweise wie weit das nächste Wort bei einem Tabulatorzeichen eingerückt wird.

Symbole für den Zeilenstatus

In geänderten Zeilen wird die Art der Änderung durch ein Symbol angezeigt.

Eine Zeile wurde hinzugefügt.

Eine Zeile wurde entfernt.

Eine Änderung wurde durch das Zurücksetzen einer Zeile auf ihren Ursprungszustand zurückgenommen.

Diese Zeile enthält nur Änderungen in Leerzeichen. Falls mehrere aufeinanderfolgende Zeilen markiert sind, wurde eventuell ein Absatz neu umgebrochen.

Eine Zeile wurde manuell in TortoiseSVN geändert.

Diese Zeile enthält einen Konflikt.

Diese Zeile enthält einen Konflikt, der aufgrund der Vergleichsoptionen für Zeilenende oder Leerzeichen nicht sichtbar ist.

Diese Zeile wurde an eine andere Stelle verschoben.

Zusammenführen / Konflikte bearbeiten

TortoiseMerge zeigt Ihnen nicht nur die Unterschiede zwischen Dateien an, sondern lässt Sie diese Änderungen auch übernehmen und Konflikte lösen.

Wenn Sie in der Zweifensteransicht sind, dann können nur Sie die Datei im rechten Bereich (Meiner Version) ändern. Um Unterschiede aus der linken Datei (Deren) in die rechte zu übernehmen, machen Sie einen Rechtsklick auf die unterschiedliche Zeile und wählen Sie den gewünschten Befehl aus dem Kontextmenü aus.

Manchmal benötigen Sie beide Textblöcke. Das Kontextmenü bietet Ihnen die entsprechenden Funktionen KontextmenüVerwende beide Blöcke (diesen zuerst) und KontextmenüVerwende beide Blöcke (diesen zuletzt) an.

Sie können die Ausgabedatei wie in einem Texteditor bearbeiten. Solche Zeilen werden durch einen Stift gekennzeichnet. Wenn Sie Zeilen- oder Blockoperationen vornehmen, müssen Sie diese zuerst - vor manuellen Änderungen - durchführen, da es für TortoiseMerge sonst unmöglich wird, die Beziehungen zu den Originaldateien aufrecht zu erhalten.

Wenn Sie einen Dreiwegevergleich durchführen (auch Zusammenführen- oder Konfliktansicht genannt), können Sie nur die Ergebnisdatei im unteren Bereich bearbeiten. Wie auch in der Zweifensteransicht können Sie durch einen Rechtsklick auf Zeilen im Konflikt ein Kontextmenü anzeigen lassen und dann auswählen, wie Sie den Konflikt auflösen möchten. Sie können damit den rechten oder linken Block auswählen, aber auch beide Blöcke entweder Meiner vor Deren oder Deren vor Meinem in die Zieldatei übernehmen.

Manchmal wird in Subversion ein Dateikonflikt angezeigt, es sind jedoch keine Unterschiede sichtbar, wenn Sie die Datei in TortoiseMerge betrachten. Das kann an Ihren Einstellungen für den Vergleich von Leerzeichen oder Zeilenumbrüchen liegen. Falls Sie beschlossen haben, solche Änderungen zu ignorieren, werden die entsprechenden Zeilen durch das Symbol Konflikt Ignoriert gekennzeichnet. Um den Konflikt aufzulösen, müssen Sie trotzdem eine der beiden Varianten auswählen.

Wichtig

Beachten Sie, dass alle Änderungen der Ergebnisdatei verworfen werden, wenn TortoiseMerge nochmals mit denselben Dateien aufgerufen wird, egal ob durch TortoiseMerge oder manuelles Bearbeiten, und die Ergebnisdatei im Ursprungszustand wiederhergestellt wird.

Dateien öffnen

Wenn Sie TortoiseMerge ohne Kommandozeilenbefehle starten, dann müssen Sie die Dateien mit DateiÖffnen von Hand öffnen.

Abbildung 3.5. Der Öffnen-Dialog

Der Öffnen-Dialog

Als erstes müssen Sie entscheiden, ob Sie Dateien vergleichen / zusammenführen oder eine Patchdatei anwenden möchten. Je nachdem, was Sie wählen, werden die entsprechenden Schaltflächen und Eingabefelder aktiviert.

Anzeigen / Zusammenführen

Wenn Sie Dateien vergleichen / zusammenführen möchten, müssen Sie mindestens zwei der drei möglichen Pfade für Basis, Meiner und Deren angeben. Wenn Sie nur zwei Dateien auswählen, wird TortoiseMerge Ihnen die Unterschiede zwischen diesen Dateien entweder in einem Bereich übereinander oder in zwei Bereichen nebeneinander anzeigen.

Wenn Sie drei Dateien zusammenführen, zeigt TortoiseMerge Ihnen diese in einer Dreifensteransicht. Diese Ansicht wird im Allgemeinen zum Auflösen von Konflikten verwendet. Die Ausgabedatei hat in diesem Fall keinen Namen und Sie müssen das Ergebnis mittels DateiSpeichern unter... sichern.

Patches anwenden

Wenn Sie eine Patchdatei anwenden möchten, müssen Sie sowohl die Patchdatei selbst, als auch den Zielordner angeben.

Einstellungen

Allgemeine Einstellungen

Abbildung 3.6. Die allgemeinen Einstellungen

Die allgemeinen Einstellungen

Die meisten Optionen auf dieser Seite sind selbsterklärend. Ein paar benötigen jedoch ergänzende Informationen.

Erstelle Sicherheitskopie benennt die Originaldatei in der Arbeitskopie in Dateiname.bak um, bevor die Änderungen gespeichert werden.

Wenn Standardmäßig UTF-8-Codierung festgelegt ist, werden ANSI-Dateien als UTF-8 codiert geladen und nach der Bearbeitung als solche gespeichert.

Maximale Zeilenlänge für Inline-Diffs TortoiseMerge kann langsam werden, wenn Inline-Diffs für sehr lange Zeilen angezeigt werden sollen. Deshalb werden nur Zeilen, die kürzer als 3000 Zeichen sind, mit Inline-Diffs angezeigt. Sie können diesen Wert hier ändern.

Ignoriere Zeilenende verbirgt Änderungen, die nur aus unterschiedlichen Zeilenumbrüchen bestehen.

Ignoriere Groß-/Kleinschreibung verbirgt Groß-/Kleinbuchstaben-Änderungen. Dies ist besonders nützlich bei Anwendungen wie Visual Basic, die die Schreibweise von Variablen ohne Warnung ändern.

Farbeinstellungen

Abbildung 3.7. Die Farbeinstellungen

Die Farbeinstellungen

Auf dieser Seite können Sie die Hintergrundfarben zum Hervorheben der verschiedenen Änderungen einstellen.

Normal
Alle nicht veränderten Zeilen oder Zeilen, deren Änderungen ausgeblendet sind.
Hinzugefügt
Zeilen, die hinzugefügt wurden.
Entfernt
Zeilen, die gelöscht wurden.
Verändert
Bei Zeilen mit geringem Änderungsumfang werden die Unterschiede innerhalb der Zeile farbig hervorgehoben. Diese Farbe wird für unveränderte Teile der Zeile verwendet. Modifizierte Teile werden durch die unten beschriebenen Farben für hinzugefügt/gelöscht gekennzeichnet. Wenn Änderungen in Zeile farbig hervorheben nicht aktiv ist, wird diese Farbe nicht verwendet und geänderte Zeilen werden als Ersetzungen dargestellt.
Konfliktbehaftet
Dieselbe Zeile wurde in beiden Dateien geändert.
Konflikt aufgelöst
Falls dieselbe Zeile in beiden Dateien geändert wurde und Sie mittlerweile eine der beiden Varianten ausgewählt haben.
Leer
Zeilen wurden im gegenüberliegenden Bereich hinzugefügt und in diesem Bereich existiert keine entsprechende Zeile.
Hinzugefügter Text
Wenn Differenzen innerhalb der Zeile angezeigt werden, wird hinzugefügter Text mit dieser Farbe markiert.
Gelöschter Text
Wenn Differenzen innerhalb der Zeile angezeigt werden, wird gelöschter Text mit dieser Farbe markiert.
Diverse Leerzeichen
Zeichen zur Hervorhebung von Leerraum werden in einer anderen Farbe als der normale Text angezeigt.
Dunkelmodus verwenden
Dunkelmodus für Benutzeroberfläche aktivieren. Erfordert mindestens Windows 10 1809.

Anhang A. Tastaturkürzel

Liste der Tastaturkürzel und Befehle.

Tastaturkürzel

Allgemeine Tastaturkürzel

Strg+Q, Strg+W, Escape

Das Programm beenden

Strg+C

Den markierten Text in die Zwischenablage kopieren

Strg+X, Umschalt+Entf

Den markierten Text in die Zwischenablage ausschneiden

Strg+V, Umschalt+Einfg

Den markierten Text aus der Zwischenablage einfügen

Strg+Z, Alt+Rücktaste

Die letzten Änderungen rückgängig machen

Strg+F

Den Dialog zum Suchen und Ersetzen von Text öffnen

Strg+O

Dateien zum Vergleichen/Zusammenführen öffnen

Strg+S

Änderungen speichern

Strg+Umschalt+S

Speichern unter...

F7, Strg+Pfeil unten

Zum nächsten Unterschied gehen

Umschalt+F7, Strg+Pfeil oben

Zum vorherigen Unterschied gehen

Strg+R

Dateien neu laden und alle Änderungen rückgängig machen

Strg+T

Platzhalter für nicht druckbare Zeichen anzeigen/verstecken

Strg+L

Unveränderte Abschnitte anzeigen/verstecken

Strg+P

Zeilen umbrechen/nicht umbrechen

Strg+G

Gehe zu Zeile

Strg+A

Gesamten Text auswählen

Strg+Mausrad

Anzeige links/rechts rollen

Strg+Tab

Zwischen linker/rechter/unterer Ansicht wechseln

Strg+M

Ausgewählte Änderung markieren/nicht markieren

Diff-Modus Tastaturkürzel

Strg+D

Zwischen Einfensteransicht und Zweifensteransicht wechseln

Strg+M

Ausgewählte Änderung markieren/nicht markieren

Strg+U

Ansichten umschalten

F12

Verwende den linken Block

Konfliktauflösungs-Modus Tastaturkürzel

F8

Zum nächsten Konflikt gehen

Umschalt+F8

Zum vorherigen Konflikt gehen

Strg-F9

Verwende den linken Block

Strg-Shift-F9

Verwende linken vor rechtem Block

Strg-F10

Verwende den rechten Block

Strg-Shift-F10

Verwende rechten vor linkem Block

Anhang B. TortoiseMerge automatisieren

TortoiseMerge kann auch über die Kommandozeile gestartet werden. Auf diese Weise können die zu vergleichenden Dateien direkt ohne den Öffnen Dialog angegeben werden. Dies ist vor allem dann nützlich, wenn Sie TortoiseMerge aus einer anderen Anwendung heraus aufrufen wollen.

TortoiseMerge-Kommandozeilenbefehle

Die meisten Befehle benötigen zusätzliche Informationen, wie einen Pfad oder einen anderen Parameter. Zur Übergabe des Parameters hängen Sie einfach einen ':' an den Befehl an und schreiben den Parameter dahinter. Zum Beispiel:

/base:"C:\Ordner\Meine Basisdatei.txt"

Tabelle B.1. Liste der Kommandozeilenbefehle

BefehlBeschreibung
/?Zeigt einen Dialog mit allen möglichen Kommandozeilenbefehlen an.
/helpDas Gleiche wie ?.
/baseDefiniert die Datei Basis für einen Dreiwegevergleich. Diese ist der gemeinsame Vorgänger der zu vergleichenden Dateien, auch wenn sie nicht angezeigt wird. Beim Zweiwegevergleich wird die Datei im linken Bereich angezeigt.
/basenameDer Anzeigename der Basisdatei. Er wird statt des Dateinamens in der Titelzeile oder beim Dreiwegevergleich in einem Hinweistext angezeigt.
/basereflectednameDer Name für die Editor-Konfigurationsschablonen.
/theirsDefiniert die Deren-Datei für einen Dreiwegevergleich, die im linken Bereich angezeigt wird.
/theirsnameDer Anzeigename von Deren Datei. Er wird statt des Dateinamens in der Titelzeile angezeigt.
/theirsreflectednameDer Name für die Editor-Konfigurationsschablonen.
/mineDefiniert die Meine-Datei, die sowohl beim Dreiwege- als auch im Zweiwegevergleich im rechten Bereich dargestellt wird.
/minenameDer Anzeigename von Meiner Datei. Er wird statt des Dateinamens in der Titelzeile angezeigt.
/minereflectednameDer Name für die Editor-Konfigurationsschablonen.
/merged

Legt die zusammengeführte Ergebnisdatei fest, die in Vergleichen verwendet wird. Dies ist der Dateipfad, in dem das Ergebnis des Zusammenführens bzw. des Konfliktauflösens gespeichert wird.

Wenn dieser Parameter für einen Dreiwegevergleich nicht angegeben wurde, fragt TortoiseSVN den Anwender, wo die Ergebnisse gespeichert werden sollen.

Wenn dieser Parameter für einen Zweiwegevergleich nicht angegeben wurde, wird TortoiseSVN automatisch die im rechten Bereich angezeigte Datei als Ziel verwenden.

/mergednameDer Anzeigename der Zieldatei. Er wird statt des Dateinamens in der Titelzeile angezeigt.
/mergedreflectednameDer Name für die Editor-Konfigurationsschablonen.
/patchpathDer Pfad, in dem ein Patch angewendet werden soll. Wenn Sie diesen Parameter nicht angeben, versucht TortoiseMerge selbst, einen zu den Pfaden in der Patchdatei passenden Basispfad herauszufinden, aber das kann sehr lange dauern.
/saverequiredDiese Option zwingt TortoiseMerge dazu, vor dem Beenden danach zu fragen, ob die Datei gespeichert werden soll, selbst wenn der Anwender keine Änderungen vorgenommen hat.
/saverequiredonconflictsDiese Option zwingt TortoiseMerge dazu, vor dem Beenden bei Konflikten danach zu fragen, ob die Datei gespeichert werden soll, selbst wenn der Anwender keine Änderungen vorgenommen hat.
/patchoriginalDer Anzeigename der zu patchenden Originaldatei.
/patchpatchedDer Anzeigename der Zieldatei.
/diffDer Pfad zu der Patch-/Diff-Datei, die auf ein Verzeichnis angewendet werden soll.
/onewayZwingt TortoiseMerge, mit der Einfensteransicht statt der in den Optionen eingestellten Sicht zu starten.
/reversedpatchVertauscht die Dateien im rechten und linken Bereich.
/createunifieddiffErzeugt eine Standard-Diff-Datei (Patchdatei) aus den beiden in /origfile:"pfad_der_orginaldatei" und /modifiedfile:"pfad_der_geänderten_datei" übergebenen Dateien. Das Ziel wird in /outfile:"pfad_der_ergebnisdatei" spezifiziert. Wenn /outfile leer ist, wird ein Datei Speichern-Dialog angezeigt, in dem der Anwender die Ausgabedatei angeben kann. Hinweis: Wenn /createunifieddiff gesetzt ist, werden alle anderen Parameter ignoriert.
/lineGibt die Zeilennummern an, in die nach dem Laden der Dateien gesprungen werden soll.
/readonlyVerhindert, dass die Datei bearbeitet wird. Das heißt, die Bearbeitungsfunktionen von TortoiseMerge sind deaktiviert.
/nosvnresolveHindert TortoiseSVN daran, nachzufragen, ob eine Datei nach dem Speichern in SVN als aufgelöst markiert werden soll.


Sie können aus Kompatibilitätsgründen mit anderen Vergleichsprogrammen auch einfache Dateinamen auf der Befehlszeile übergeben. In der vereinfachten Form sieht der Aufruf folgendermaßen aus

TortoiseMerge BasisDateiPfad MeinDateiPfad [ DerenDateiPfad ]

Bei zwei Dateien werden diese miteinander verglichen. Bei drei Dateien wird die erste als BASE-Datei verwendet und die beiden anderen in einem Dreiwegevergleich mit ihr verglichen.

Glossar

Hinzufügen

Ein Subversion-Befehl, der zum Hinzufügen von Dateien oder Ordnern zu einem Projektarchiv benutzt wird. Die neuen Objekte werden beim Übertragen zum Projektarchiv hinzugefügt.

BASE-Revision

Die aktuelle Basisrevision einer Datei oder eines Ordners in Ihrer Arbeitskopie. Dies ist die Revision, in der sich die Datei oder der Ordner befand, als zuletzt Auschecken, Aktualisieren oder Übertragen aufgerufen wurde. Die BASE-Revision entspricht normalerweise nicht der HEAD-Revision.

Annotieren

Dieser Befehl steht nur für Textdateien zur Verfügung und er annotiert jede Zeile mit der Revision und dem letzten Autor. In unserer GUI-Anwendung namens TortoiseBlame wird zusätzlich die Logmeldung angezeigt, wenn Sie mit der Maus über die Revisionsnummer fahren.

Verzweigen

Ein Begriff, der häufig in Versionskontrollsystemen verwendet wird, um zu beschreiben, wenn sich die Entwicklung an einem bestimmten Punkt verzweigt und verschiedenen Wegen folgt. Sie können von der Hauptentwicklungslinie abzweigen, um neue Funktionen zu implementieren, ohne den Hauptzweig instabil zu machen. Genauso können Sie eine stabile freigegebene Version abzweigen, an der Sie nur noch Fehler beseitigen, während die Weiterentwicklung am instabilen Hauptzweig erfolgt. In Subversion sind Zweige als billige Kopien implementiert.

Auschecken

Ein Subversion-Befehl, der eine lokale Arbeitskopie in einem leeren Verzeichnis erstellt, indem versionierte Dateien aus einem Projektarchiv heruntergeladen werden.

Bereinigen

Ein Zitat aus dem Subversion-Buch: Bereinigt die Arbeitskopie rekursiv, entfernt dabei Sperren und setzt unvollendete Operationen fort. Wenn Sie jemals einen Fehler Arbeitskopie gesperrt bekommen, führen Sie diesen Befehl aus, um veraltete Sperren zu entfernen und Ihre Arbeitskopie wieder in einen nutzbaren Zustand zu versetzen. Beachten Sie, dass in diesem Zusammenhang Sperren lokale Dateisystemsperren bezeichnet und keine Sperren im Projektarchiv.

Übertragen

Dieser Subversion-Befehl wird verwendet, um die Änderungen in Ihrer lokalen Arbeitskopie zurück in das Projektarchiv zu übertragen.

Konflikt

Wenn Änderungen vom Projektarchiv mit den lokalen Änderungen zusammengeführt werden sollen, kann es vorkommen, dass diese Änderungen in denselben Zeilen der Datei auftreten. In diesem Fall kann Subversion nicht selbst entscheiden, welche Version zu verwenden ist und die Datei wird somit als in Konflikt markiert. Sie müssen die Datei von Hand editieren und den Konflikt auflösen, bevor Sie weitere Änderungen übertragen können.

Kopieren

In einem Subversion-Projektarchiv können Sie eine Kopie einer einzelnen Datei oder eines ganzen Baumes erstellen. Diese sind als billige Kopien in Form eines Verweises auf das Original implementiert. Somit benötigt selbst die Kopie eines Dateibaumes fast keinen Platz. Eine Kopie behält die Historie ihrer Vorgänger, sodass auch Logmeldungen über die Kopie hinaus verfolgt werden können.

Löschen

Wenn Sie ein versioniertes Objekt löschen (und dann übertragen), existiert die Datei oder Ordner nach der übertragenen Revision nicht mehr im Projektarchiv. Aber selbstverständlich existiert diese noch in früheren Revisionen und es kann immer noch darauf zugegriffen werden. Falls nötig, können Sie das gelöschte Objekt wieder in die Arbeitskopie kopieren und es so mit der kompletten Historie wiederherstellen.

Vergleich

Abkürzung für Zeige Unterschiede. Sehr nützlich, wenn Sie genau sehen wollen, welche Änderungen Sie vorgenommen haben.

Export

Dieser Befehl erzeugt eine Kopie eines versionierten Ordners. Wie eine Arbeitskopie, jedoch ohne die lokalen .svn-Ordner.

FSFS

Ein proprietäres Subversion-Dateisystem für Projektarchive. Kann über Netzwerkfreigaben genutzt werden. Seit Version 1.2 Standard für neue Projektarchive.

GPO

Gruppenrichtlinienobjekt.

HEAD-Revision

Die neueste Version einer Datei oder eines Ordners im Projektarchiv.

Import

Ein Subversion-Befehl, mit dem eine vollständige Ordnerhierarchie mit einer einzigen Revision in ein Projektarchiv importiert wird.

Sperre

Wenn Sie eine Datei sperren, wird diese im Projektarchiv als nicht übertragbar markiert, mit Ausnahme der Arbeitskopie, von der aus die Sperre gesetzt wurde.

Log

Zeigt das Änderungsprotokoll einer Datei oder eines Ordners. Auch Historie genannt.

Historie

Zeigt die Revisionshistorie einer Datei oder eines Ordners. Auch als Log bekannt.

Zusammenführen

Der Prozess, mit dem Änderungen vom Projektarchiv zur Arbeitskopie hinzugefügt werden, ohne lokale Änderungen zu beeinträchtigen. Manchmal können diese Änderungen nicht automatisch hinzugefügt werden und die Arbeitskopie befindet sich dann in einem Konflikt.

Das Zusammenführen passiert automatisch, wenn Sie Ihre Arbeitskopie aktualisieren. Sie können auch mit dem TortoiseSVN-Befehl Zusammenführen spezifische Änderungen von einem Zweig in der Arbeitskopie zusammenführen.

Patch

Wenn eine Arbeitskopie nur Änderungen an Textdateien aufweist, ist es möglich, mit dem Diff-Befehl von Subversion eine Datei zu erstellen, die diese Änderungen im Standard-Diff-Format enthält. Eine Datei mit solchem Inhalt wird üblicherweise als Patch bezeichnet und kann zum Beispiel jemandem per Mail geschickt werden, der diese Änderungen dann in seine Arbeitskopie übernehmen kann. Jemand ohne Übertragungsrechte zum Projektarchiv kann so Änderungen vornehmen, diese Änderungen an eine Person mit Übertragungsrechten schicken, die dann diese Änderungen übertragen kann. Oder man kann eine solche Patchdatei anderen zuerst zur Diskussion schicken, bevor man die Änderungen überträgt.

Eigenschaft

Zusätzlich zur Versionierung von Dateien und Ordnern erlaubt Subversion die Versionierung von Metadaten für Ordner und Dateien, auch als Eigenschaften bezeichnet. Jede Eigenschaft hat einen Namen und einen Wert, ähnlich wie ein Registrierungsschlüssel. Subversion selbst hat einige spezielle Eigenschaften definiert, die intern benutzt werden, wie zum Beispiel svn:eol-style. TortoiseSVN nutzt ebenfalls spezielle Eigenschaften, so zum Beispiel tsvn:logminsize. Sie können eigene Eigenschaften mit jedem Namen und Wert erstellen, den sie möchten.

Umplatzieren

Wenn das Projektarchiv verschoben wird, weil Sie es vielleicht in einen anderen Ordner auf dem Server verschoben haben oder der Domänenname des Servers sich ändert, dann müssen Sie die Arbeitskopie umplatzieren, sodass die Projektarchiv-URL zum neuen Ort zeigt.

Hinweis: Sie sollten diesen Befehl nur benutzen, wenn die Arbeitskopie zur selben Stelle im Projektarchiv selbst zeigt und nur das Projektarchiv selbst verschoben wurde. In allen anderen Situationen müssen Sie den Befehl Wechseln zu verwenden.

Projektarchiv

Ein Projektarchiv ist ein zentraler Platz, in dem Daten gespeichert und verwaltet werden. Ein Projektarchiv kann ein Ort sein, an dem sich mehrere Datenbanken oder Dateien zur Verteilung über ein Netzwerk befinden, oder ein Projektarchiv kann ein Ort sein, auf den der Benutzer direkt zugreifen kann, ohne über ein Netzwerk reisen zu müssen.

Konflikt lösen

Wenn sich Dateien in einer Arbeitskopie nach einem Zusammenführen in einem Konflikt befinden, müssen diese Konflikte von einer Person mittels eines Editors (oder vielleicht TortoiseMerge) aufgelöst werden. Dieser Prozess wird als Konflikt lösen bezeichnet. Wenn die Konflikte aufgelöst sind, können diese Dateien als aufgelöst markiert werden, was eine Übertragung erlaubt.

Änderungen rückgängig

Subversion hält eine lokale Basis-Kopie von jeder Datei in dem Zustand, in dem sie zuletzt in der Arbeitskopie aktualisiert wurde. Wenn Sie Änderungen gemacht haben und diese rückgängig machen wollen, können Sie den Befehl Rückgängig verwenden, um zurück zur Basisversion der Datei zu kommen.

Revision

Jedes Mal, wenn Sie Änderungen übertragen, wird eine neue Revision im Projektarchiv erstellt. Jede Revision stellt den Status des Projektarchivs zu einem bestimmten Zeitpunkt in der Vergangenheit dar. Wenn Sie in der Zeit zurückgehen möchten, können Sie das Projektarchiv so untersuchen, wie es bei Revision N war.

Anders ausgedrückt, bezieht sich eine Revision auf eine Menge von Änderungen, die bei der Erstellung dieser Revision vorgenommen wurden.

Revisionseigenschaft (revprop)

So wie Dateien Eigenschaften haben können, hat auch jede Revision im Projektarchiv Eigenschaften. Einige spezielle Revisionseigenschaften werden automatisch hinzugefügt, wenn die Revision erstellt wird. Diese sind: svn:date, svn:author svn:log die das Übertragungsdatum, die Person, welche die Übertragung gemacht hat, und die Logmeldung darstellen. Diese Eigenschaften können verändert werden, aber sie sind nicht versioniert, sodass jede Änderung permanent ist und nicht rückgängig gemacht werden kann.

SVN

Eine häufig verwendete Abkürzung für Subversion.

Der Name des spezifischen Protokolls, das von svnserve genutzt wird.

Wechseln

So wie Aktualisieren zu Revision den Zeitpunkt der Arbeitskopie ändert, um auf einen anderen Punkt in der Historie zu zeigen, ändert Wechseln zu die Position der Arbeitskopie, sodass sie an einen anderen Ort im Projektarchiv zeigt. Dies ist vor allem nützlich, wenn Sie mit verschiedenen Zweigen arbeiten, in denen nur wenige Dateien unterschiedlich sind. Sie können Ihre Arbeitskopie zwischen den Zweigen hin und her wechseln, wobei jeweils nur die Unterschiede übertragen werden.

Aktualisieren

Dieser Subversion-Befehl holt die neuesten Änderungen aus dem Projektarchiv in Ihre Arbeitskopie und führt dabei die Änderungen von anderen mit Ihren Änderungen zusammen.

Arbeitskopie

Dies ist Ihr lokaler Sandkasten, der Bereich, in dem Sie an versionierten Dateien arbeiten. Er liegt normalerweise auf Ihrer lokalen Festplatte. Sie erzeugen eine Arbeitskopie, indem Sie einen Ordner aus einem Projektarchiv Auschecken und Sie führen Ihre Änderungen mit einem Übertragen in das Projektarchiv zurück.