# Das Handbuch zu &kdesvn;

Rajko
Albrecht

    &Rajko.Albrecht.mail;

Burkhard
Lück

    lueck@hube-lueck.de

Übersetzung
2005
2008
&Rajko.Albrecht;
&FDLNotice;
2016-05-22
kdesvn 2.0

&kdesvn; - Ein Subversion-Client von &kde;.

KDE
kdesvn
Subversion
Versionsverwaltungssystem

## Einleitung

&kdesvn; ist ein Subversion-Client von &kde;.

Sie sollten einige Grundkenntnisse über Subversion selbst haben, aber die meisten Einträge sind selbst erklärend.

Sie können Fehlerberichte und Wünsche für neue Funktionen über das &kde;-Fehlerverfolgungssystems senden.

### Begriffe

Haben Sie Erfahrung mit Versionsverwaltungssysteme, dann können Sie diesen Abschnitt überspringen.

Repository

  Zentraler Speicher von Daten. Das kann eine Datenbank oder ein flaches Dateisystem sein. Ohne besondere Programme können Sie die Daten darin darin nicht lesen. Für Subversion-Repositorien is &kdesvn; so ein Programm.

Arbeitskopie

  Eine flache Kopie eines Repositorys auf einem lokalen Dateisystem. Dies kann mit jeder Dateiverwaltung benutzt und bearbeitet werden. Informationen des Versionsverwaltungssystems können mit Programmen wie &kdesvn; gelesen werden.

  Denken Sie daran, dass Subversion nicht über Ein-/Ausgabemodule weiß, daher muss eine Arbeitskopie ohne ein spezielles Protokoll erreichbar sein, &eg; fish:// und ähnliche Protokolle sind nicht möglich.

WebDAV

  WebDav ist ein Protokoll, mit dem Sie Dateien auf einem entfernten Webserver bearbeiten können. Subversion ist eine besondere Art von WebDav, wenn über einen Webserver auf Repositorien zugegriffen wird, normalerweise nur lesbar. Mit speziellen Einstellungen können Sie Schreib- und Lesezugriff mit WebDav erhalten und dann mit speziellen Browsern darauf zugreifen. &kdesvn; ist kein WebDav-Dienstprogramm, aber &konqueror; kann das Protokoll webdav:// verwenden. Aber mit &kdesvn; können Sie den Versionsbaum eines Repositorys über das Protokoll http:// durchsehen.

## Arbeiten mit &kdesvn;

### Leistungsmerkmale von &kdesvn;

&kdesvn; benutzt folgende Protokolle für das Browsen in Repositorien:

http

  Standard-Protokoll für Webbrowser.

https

  Verschlüsseltes Standard-Protokoll für Webbrowser.

(k)svn+http

  Standard-Protokoll für Webbrowser. Kann benutzt werden, damit &konqueror; automatisch &kdesvn; aufruft.

(k)svn+https

  Verschlüsseltes Standard-Protokoll für Webbrowser. Kann benutzt werden, damit &konqueror; automatisch &kdesvn; aufruft.

(k)svn+file

  Protokoll für lokale Repositorien. Kann benutzt werden, damit &konqueror; automatisch &kdesvn; aufruft.

(k)svn

  Server-Protokoll von Subversion.

(k)svn+ssh

  Subversion über ssh.

file

  Direkter Zugriff auf das Repository. &kdesvn; überprüft, ob ein angegebener Pfad ein Repository oder eine Arbeitskopie ist und öffnet den Pfad im richtigen Modus. Für Subversion gibt es Unterschiede zwischen `file:///dir` und `/dir`.

Diese aufgelisteten Protokolle können auch für &URL;s auf der Befehlszeile verwendet werden.

### Einführung zu Subversion und &kdesvn;

Dieser Abschnitt ist hauptsächlich für Personen gedacht, die sich mit Subversion nicht auskennen und erklärt, wie Subversion bzw. Versionsverwaltungssysteme (RCS) funktionieren.

#### Erstellen einer Arbeitskopie

Arbeitskopien müssen als lokale Pfade erreichbar sein. Subversion kennt keine Pseudo-Dateisysteme wie `smb://` oder `fish://`. &kdesvn; übersetzt einige von ihnen, wenn möglich, wie zum Beispiel `system:/home`, aber das funktioniert nicht über ein Netzwerk.

Als erstes müssen Sie eine Arbeitskopie Ihres Repositorys erstellen. Dazu wählen Sie Subversion Allgemein Auslesen eines Repositorys . Im folgenden Dialog müssen Sie eine &URL; des Repositorys &eg; `http://localhost/repos/myproject` eingeben. Auch Unterordner eines Repositorys &eg; `http://localhost/repos/myproject/trunk` sind möglich.

Wählen oder erstellen Sie einen lokalen Ordner, in dem die Arbeitskopie gespeichert wird.

Dann müssen Sie noch die Revision zum Auslesen wählen. Meistens wird das HEAD sein. Damit haben Sie die neueste Version referenziert.

Nachdem Sie auf OK geklickt haben, erstellt &kdesvn; Ihre neue Arbeitskopie und wird sie öffnen, wenn diese Einstellung aktiviert ist.

Wenn Sie ein Repository zum Durchsehen geöffnet haben, können Sie einen Ordner markieren, dann Subversion Repository Aktuellen Repository-Pfad auslesen wählen und den Dialog wie oben beschrieben ausfüllen. Dann wird nur der markierte Pfad ausgelesen.

#### Lokale Änderungen einspielen

Markieren Sie den oder die Einträge, die Sie einspielen möchten und wählen Sie im Menü &Ctrl;# Subversion Arbeitskopie Einspielen

Haben Sie bei dieser Aktion keinen Eintrag ausgewählt, verwendet &kdesvn; das oberste Element der geöffneten Arbeitskopie, &ie; den Pfad zur Arbeitskopie selbst.

Dieser Vorgang ist immer rekursiv, d. h. wenn ein Ordner ausgewählt ist, werden immer alle darunterliegenden geänderten Einträge gesendet. Haben Sie eingestellt, dass vor dem Einspielen alle Einträge überprüft werden sollen, werden im folgenden Dialog alle zu sendenden Einträge aufgelistet. Dann können Sie die Markierung für Einträge entfernen, die nicht gesendet werden sollen. In diesem Fall werden alle Einträge einzeln und nicht rekursiv gesendet. Sie können auch nicht versionierte Einträge zum Hinzufügen und Einspielen auswählen, wenn Sie nicht als ignoriert markiert sind. So können Sie erkennen, ob es neuere Einträge gibt, die Sie vergessen haben.

Geben Sie einen Kommentar über die eingespielten Änderungen, drücken Sie auf OK und die Übertragung beginnt.

#### Arbeitskopie aktualisieren

Dies gleicht Ihre lokale Arbeitskopie mit dem Repository ab. Sie können &kdesvn; so einstellen, dass beim Öffnen einer Arbeitskopie die Überprüfung auf neuere bzw. geänderte Einträge durchgeführt wird. Dies geschieht im Hintergrund und Sie können in der Zwischenzeit mit &kdesvn; bereits arbeiten. Wenn die Überprüfung abgeschlossen ist, werden alle Einträge mit neueren Versionen und alle Ordner, die neuere Einträge enthalten, markiert.

Um die Änderungen zu holen, wählen Sie Subversion Arbeitskopie Auf HEAD-Revision aktualisieren . Damit wird Ihre Arbeitskopie auf die neueste Version im Repository aktualisiert. Möchten Sie eine bestimmte Revision holen, wählen Sie Subversion Arbeitskopie Auf Revision aktualisieren und geben im folgenden Dialog die gewünschte Revision an.

Ist kein Eintrag ausgewählt, wird die gesamte geöffnete Arbeitskopie aktualisiert, ansonsten nur rekursiv vom ausgewählten Eintrag aus.

#### Hinzufügen und Löschen in der Arbeitskopie

Für beide Operationen sind zwei Schritte erforderlich: Zuerst hinzufügen oder löschen und dann die Änderungen ins Repository einspielen. Vor dem Einspielen können Sie das Hinzufügen oder Löschen zurücknehmen.

##### Einträge hinzufügen

Es gibt drei verschiedene Möglichkeiten, um Einträge in eine Arbeitskopie einzufügen.

Wählen Sie nicht versionierte Einträge und fügen Sie sie hinzu

  Kopieren Sie die Einträge mit &konqueror; oder einer anderen Dateiverwaltung in den Bereich der Arbeitskopie. Gehen Sie die Liste durch und markieren die Einträge. Wählen Sie dann Einfg Subversion Arbeitskopie Ausgewählte Dateien/Ordner hinzufügen . Möchten sie Ordner mit allen Untereinträgen hinzufügen, wählen Sie &Ctrl;Einfg Subversion Arbeitskopie Ausgewählte Dateien/Ordner rekursiv hinzufügen aus.

Suchen und rekursiv hinzufügen

  Sie können überprüfen, ob es in der Arbeitskopie irgendwo nicht versionierte Einträge gibt. Nach der Auswahl von Subversion Arbeitskopie Nach nicht versionierten Einträgen suchen wird ein Dialog geöffnet, in dem alle nicht versionierten Einträge aufgelistet sind. Drücken Sie auf OK, dann werden alle markierten Einträge zur Arbeitskopie hinzugefügt. Bei Einträgen, die nicht aufgenommen werden sollen, müssen Sie vorher die Markierung entfernen.

Ziehen und Ablegen

  Markieren Sie in &konqueror; oder anderen kompatiblen Dateiverwaltungen Einträge, die Sie hinzufügen möchten und ziehen Sie sie in &kdesvn;. Sie können diese Einträge auf Ordner innerhalb geöffneter Arbeitskopien ablegen, dann kopiert &kdesvn; die abgelegten Einträge dahin und fügt die Einträge hinzu.

##### Einträge aus der Arbeitskopie löschen und aus der Version herausnehmen

Das Löschen von Einträgen funktioniert immer rekursiv. Wenn Sie zum Beispiel einen Ordner löschen, werden auch alle Einträge in diesem Ordner mit gelöscht. Markieren Sie Ihre Wünsche und wählen Sie den Menüeintrag Subversion Allgemein Ausgewählte Dateien/Ordner löschen . Dann werden die Einträge aus der Version genommen und von der Festplatte gelöscht.

#### Anzeige der Protokolle

Die Anzeige des Protokolls kann mit &Ctrl;L gestartet werden, wenn nur ein oder kein Eintrag in der Übersicht markiert ist. Abhängig von Ihren Einstellungen (siehe ), wird &kdesvn; die Protokolleinträge beginnend mit HEAD holen und sie anzeigen.

##### Dialog Protokollanzeige

Auf der linken Seite sehen Sie die Liste mit den von &kdesvn; abgeholten Protokoll-Einträgen. Die Protokoll-Meldungen sind gekürzt, so dass sie in eine Zeile passen. Die vollständige Meldung erscheint im oberen rechten Fenster, wenn ein Eintrag markiert ist. Im rechten unteren Fenster sehen Sie eine Liste der geänderten Dateien. Diese Fenster erschien nur, wenn die Liste abhängig von Ihren Einstellungen geholt wird.

Mit den Knöpfen oben können Sie einen anderen Bereich des Protokolls zur Anzeige auswählen.

Dieser Bereich wird ohne voreingestellte Begrenzung benutzt, daher sollten Sie bei großen Repositorys damit vorsichtig sein.

Die unten angezeigten Knöpfe funktionieren nur für ausgewählte Einträge im Protokoll, nicht für Einträge, die in der Liste der geänderten Dateien markiert sind. Wenn Sie Mit Vorherigen vergleichen wird der Unterschied für alle geänderten Einträge in dieser Revision angezeigt, wenn sie gleich oder unterhalb des Subversions-Eintrags liegen, der vorher für das Abholen des Protokolle ausgewählt wurde. Das gleiche gilt für die Funktion Revisionen vergleichen.

Anmerkungen funktionieren natürlich nur, wenn es sich um eine Datei handelt.

Für alle Listeneinträge in beiden Listen gibt es ein Kontextmenü mit einigen zusätzlichen Aktionen. In der linken Liste ist dies Version als linke Seite für Diff setzen, &ie; als Start-Revision und Version als rechte Seite für Diff setzen, &ie; als End-Revision oder Ziel für Diff, das ist im „Unified Diff“ der mit `+++` markierte Teil. Wenn Sie Revisionen für diese beiden Aktionen auswählen, werden Sie mit kleinen Pfeilen markiert.

### Arbeiten mit Repositorien

Das Durchsehen eines Repositorys kann mit &konqueror;, &dolphin; oder anderen Dateiverwaltungsprogramm erfolgen: Öffnen Sie eine URL mit dem in beschriebenen Protokoll (die Varianten mit k am Anfang). Dann wird der Inhalt angezeigt. Dann können einfache Operationen wie Kopieren, Verschieben oder Löschen ausgeführt werden. Wird eine Abfrage wie ?rev=xxx angehängt, wird die angegebene Revision angezeigt. Das Format der Revisions-Abfrage ist in beschrieben. Weitere Informationen über KIO::ksvn finden Sie in .

Alle Arbeiten außer dem Kopieren sollten nur beim Durchsehen der Revision HEAD ausgeführt werden.

#### Gelöschte Einträge wiederherstellen

In Subversion ist das Wiederherstellen eines gelöschten Eintrags tatsächlich das Kopieren dieses Eintrags von einer früheren Revision. Wenn Sie einen Eintrag wiederherstellen möchten, laden Sie eine Ansicht des Repository mit einer Version bevor der Eintrag gelöscht wurde. Dazu wählen Sie Subversion Repository Revision zum Durchsehen auswählen und geben die gewünschte Revision ein. Dann zeigt &kdesvn; den Inhalt des Repository mit dieser Revision an. Markieren Sie den Eintrag, den Sie wiederherstellen möchten, und wählen Sie &Ctrl;C Subversion Allgemein Kopieren . Im dadurch geöffneten Dialog ist das Ziel immer die Revision HEAD, die Quelle ist die zum Durchsehen und Kopieren ausgewählte Revision. Geben Sie den Pfad ein, klicken Sie auf OK und das Kopieren beginnt. Wechseln Sie danach zurück zur Revision HEAD, der wiederhergestellte Eintrag wird dann angezeigt.

#### Ordner importieren

Wegen Beschränkungen in Subversion selbst können nur Ordner, nicht aber einzelne Dateien importiert werden.

##### Ziehen und Ablegen

Markieren Sie in jeder kompatiblen Dateiverwaltung die Ordner, die Sie importieren möchten, und ziehen Sie sie zum Ordnereintrag in &kdesvn;, in den Sie importieren möchten.

##### Ordner für den Import mit dem Dateisystem-Browser auswählen

Markieren Sie den Ordner, in den Sie einen neuen Ordner importieren möchten. Wählen Sie dann Subversion Allgemein Ordner in aktuellen Ordner importieren und dann wählen Sie den gewünschten Ordner.

### Andere Operationen

#### Zusammenführen

Öffnen Sie ein Repository oder eine Arbeitskopie, markieren Sie den gewünschten Eintrag zum Zusammenführen und wählen Sie Subversion Allgemein Zusammenführen . Geben Sie im dann geöffneten Dialog die nötigen Werte ein. Wurde dieser Dialog von einem Repository aus geöffnet, dann sind die Angaben für Quelle 1 und Quelle 2 bereits ausgefüllt. Beim Öffnen aus einer Arbeitskopie ist das Ziel mit dem ausgewählten Eintrag ausgefüllt. Die Behandlung dieser Parameter ist für das interne Diff von Subversion anders als für ein externes Programm wie &kdiff3;. Als Ziel muss immer ein lokaler Ordner oder eine lokale Datei angegeben werden. Sie können zwischen intern und extern mit dem Ankreuzfeld Externes Zusammenführen verwenden wechseln.

##### Internes zusammenführen

Die Optionen haben die gleiche Bedeutung wie das Befehlszeilenprogramm von Subversion. Wenn source1 und source2 gleich sind, müssen Start- und Endrevision unterschiedlich sein. Sind die Quellen nicht gleich, wird die Startrevision source1 und die Endrevision source2 zugewiesen. Das Ziel muss eine Arbeitskopie sein, sonst gibt Subversion eine Fehlermeldung aus.

Die Ankreuzfelder haben folgende Bedeutungen:

Rekursiv

  Alle Operationen bei der Bearbeitung von Ordnern rekursiv ausführen.

Behandelt nicht zugehörige als zugehörige Einträge

  Ist dies aktiv, werden nicht zugehörige wie zugehörige Einträge bei der Generierung des Unterschieds behandelt. Ansonsten entfernt Subversion eine Seite und fügt sie auf der anderen Seite wieder hinzu.

Löschen bei bearbeiteten/nicht versionierten Einträgen erzwingen

  Ist dies nicht aktiviert und erfordert das Zusammenführen ein Löschen eines geänderten oder nicht versionierten Eintrags, schlägt das Zusammenführen in Subversion fehl. Ansonsten werden die Einträge gelöscht.

Nur Testausführung ohne Änderungen

  Ist dies aktiviert, sendet Subversion nur Benachrichtigungen darüber, was ausgeführt würde, ohne tatsächlich die Arbeitskopie zu verändern.

##### Externe Programme zum Zusammenführen verwenden

In finden Sie weitere Details zur Einrichtung eines externen Programms zum Zusammenführen. &kdesvn; generiert die Befehlszeile wie dort beschrieben. Davor wird folgendes ausgeführt:

1. Die Startrevision wird der Quelle 1 und die Endrevision der Quelle 2 zugewiesen. Dann wird überprüft, ob es Unterschiede im Pfad oder in der Revision gibt. Wenn ja, wird eine Drei-Wege-Zusammenführung durchgeführt, ansonsten ein einfaches Zusammenführen von Quelle zu Ziel. Ist Quelle 2 leer, wird ebenfalls ein einfaches Zusammenführen ausgeführt.

2. Es wird ein Export in einen temporären Ordner erzeugt. Handelt es sich um eine einfache Zusammenführung, wird Quelle 1 an der Startrevision, ansonsten beide Quellen mit ihren Revisionen exportiert. Ist der Eintrag eine Datei und kein Ordner, wird der Kontext zu einer bestimmten Revision geholt.

3. Aufruf eines externen Programms zum Zusammenführen wie in den Einstellungen festgelegt. Die Fehlerausgabe wird im Protokollfenster angezeigt, so dass Sie mögliche Fehler erkennen können.

Im Unterschied zum internen Zusammenführen kann das Ziel eine flacher Ordner oder Datei sein, die sich nicht unter Versionskontrolle befindet, da externe Programme dies nicht beachten.

Ist rekursiv nicht aktiviert, wird der Export als flacher Export ausgeführt. Beachte Sie, dass dabei Externals der Arbeitskopie nicht exportiert.

#### Auflösen von Konflikten

&kdesvn; selbst enthält kein Modul zur Auflösung von Konflikten, Sie können jedoch ein externes Programm von &kdesvn; aus dafür aufrufen. In finden Sie Informationen zur Einrichtung für dieses Programm.

Wenn Sie einen Eintrag mit dem Status Konflikt, erkennbar an einem roten Kreuz in der Listenansicht, markieren, können Sie Subversion Arbeitskopie Konflikte auflösen . Diese Aktion finden Sie auch im Kontextmenü von Einträgen im Konflikt. &kdesvn; startet nun das von Ihnen dafür eingerichtete Programm. Wurde der Konflikt gelöst, sollten Sie den Konflikt für den Eintrag als aufgelöst kennzeichnen, indem Sie aus dem Menü Subversion Arbeitskopie Als gelöst markieren benutzen, ansonsten können Sie Ihre Änderungen nicht einspielen.

### Von &kdesvn; benutzte Eigenschaften für die Einrichtung

#### Einbindung des Fehlerverfolgungssystems

Das TortoiseSVN-Projekt hat ein Eigenschaftssystem für die Einbindung des Fehlerverfolgungssystems in die grafische Bedienungsoberfläche von Subversion entwickelt. Die aktuelle Version von &kdesvn; unterstützt die zusätzlichen Felder beim Einspielen nicht und kennt nur die folgenden Eigenschaften:

##### Eigenschaften der Einbindung des Fehlerverfolgungssystems

Eigenschaft | Beschreibung | Beispiel
--- | --- | ---
`bugtraq:url` | Enthält die &URL; zum Fehlerverfolgungssystem. Die `%BUGID%`-Markierung muss auch enthalten sein. | https://bugs.kde.org/show_bug.cgi?id=%BUGID%

`bugtraq:logregex`

Enthält ein oder zwei reguläre Ausdrücke, getrennt durch Zeilenvorschubzeichen.

Ist nur ein regulärer Ausdruck angegeben, muss die Fehlernummer (BUGID) auf den regulären Ausdruck zutreffen. Sind zwei Ausdrücke abgegeben, dann wird der erste Ausdruck verwendet, um einen Text mit Bezug zur BUGID zu finden. Daher darf der erste Ausdruck mehr als nur die BUGID &eg; Issue #123 or resolves issue 123 enthalten. Der zweite Ausdruck wird dann verwendet, um die BUGID in dem Text zu finden, der mit dem ersten Ausdruck extrahiert wurde.

Bitte achten Sie auf unerwünschte Leerzeichen nach regulären Ausdrücken und vergessen Sie nicht die eckigen Klammern um Zahlen.

Einzeln (Anwendung mit TRAC)

    #(\d+)

Jetzt werden all Zahlen wie #190 eingelesen und in eine &URL; in der Protokollausgabe übersetzt.

Zwei Ausdrücke:

    [Ii]ssue #?(\d+)(,? ?#(\d+))*
    (\d+)

##### Speichern

Achten Sie auf Leerzeichen nach dem Ausdruck `(\d+)`. Dies ist einer der häufigsten Fehler und führt dazu, dass diese Ausdrücke nicht zutreffen.

Bei lokal geöffneten Repositorien, &ie; mit dem Protokoll `file://`, und bei Arbeitskopien werden diese Eigenschaften vom geöffneten Ordner aufwärts gesucht, bis Sie gefunden wurden oder die oberste Ebene des Revisionsbaums erreicht ist. Bei Repositorien, die über das Netzwerk geöffnet wurden, &ie; alle außer dem Protokoll `file://`, wird nur im geöffneten Ordner selbst gesucht.

Unterstützung für mehrere Gruppen von Eigenschaften wird möglicherweise später noch hinzugefügt wie &eg; zusätzliche Werte in Unterordnern für andere Fehlerverfolgungssysteme &etc; In den meisten Fällen sollte jedoch die Evaluierung von Verknüpfungen für einzelne Fehlerverfolgungssysteme ausreichend sein.

### Der Revisionsbaum

Im Revisionsbaum wird der vollständige Verlauf eines Eintrag angezeigt, so dass Sie einen besseren Überblick über den Verlauf erhalten. Dazu muss das vollständige Protokoll des Repository eingelesen werden, weil für den Revisionsbaum einige Informationen nötig sind, die von Subversion nicht bereitgestellt werden. Da durch diesen Prozess ein erheblicher Netzwerkverkehr erzeugt wird, wird für den Revisionsbaum immer der interne Protokoll-Zwischenspeicher benutzt.

#### Systemanforderungen

Der Revisionsbaum wird mit dot erstellt. Daher müssen Sie für einen funktionierenden Revisionsbaum das Paket graphviz installieren.

### Interner Protokoll-Zwischenspeicher

&kdesvn; kann einen internen Protokoll-Zwischenspeicher für einige Operationen verwenden, hauptsächlich für den Revisionsbaum, aber auch für die einfache Protokollanzeige im Offline-Modus. Die Zwischenspeicher werden in SQLite-Datenbanken im Ordner `$HOME/.sqvnqt/logcache` gespeichert. Jede nummerierte Datei ist die Datenbank für ein einzelnes Repository.

Die Datenbanken können sehr groß werden. Daher sollten Sie die automatische Aktualisierung des Protokoll-Zwischenspeichers in den Einstellungen abschalten.

Eine Datenbank können Sie einfach löschen, dann gibt es kein gespeichertes Protokoll und keinen Revisionsbaum für dieses Repository. Ist das automatisch Füllen des Zwischenspeichers nicht abgeschaltet, wird beim nächsten Öffnen dieses Repository oder der zugehörigen Arbeitskopie der Zwischenspeicher wieder gefüllt.

#### Offline-Modus

Mit &kdesvn; kann auch ohne Netzwerkverbindung gearbeitet werden, &ie; Sie können den Zugriff auf ein Netzwerk für &kdesvn; abschalten. Dann bezieht &kdesvn; die Protokolle aus dem Zwischenspeicher. Dieses Protokoll ist aus technischen Gründen auf die wesentlichen Informationen beschränkt, daher kann sich das zwischengespeicherte Protokoll vom tatsächlichen Protokoll unterschieden. Der Unterschied besteht darin, dass nicht alle Kopier-Operationen enthalten sind, sogar wenn Protokolle folgen Knotenänderungen aktiviert wurde.

#### Protokoll-Zwischenspeicher und Revisionsbaum

Der Revisionsbaum verwendet nur den Protokoll-Zwischenspeicher, da ansonsten immer wieder die Protokolle eingelesen werden müssen. Der Protokoll-Zwischenspeicher wird nicht erneut eingelesen. Dieses Verhalten kann sich aber in späteren Versionen ändern.

### Bedeutung der Einblendungen auf den Symbolen

Einträge können mit eingeblendeten Symbolen markiert werden, wenn sie nicht im normalen Zustand sind.

Gesperrt

  Dieser Eintrag ist gesperrt. In der letzten Spalte wird der Eigentümer der Sperre aufgeführt. Sie können &kdesvn; so einstellen, dass es auch Repositorien auf gesperrte Einträge überprüft. Bedenken Sie aber, dass dies abhängig vom Server lange dauern kann.

Muss gesperrt werden

  Dieser Eintrag muss vor dem Bearbeiten und Einspielen gesperrt werden. Der Eintrag bleibt in Subversion nur lesbar, bis Sie eine Sperre setzen.

Aktualisiert

  Dieser Eintrag oder bei einem Ordner ein Eintrag darin hat eine neuere Version im Repository.

Geändert

  Dieser Eintrag oder bei einem Ordner ein Eintrag darin wurde lokal geändert.

Hinzugefügt

  Dieser Eintrag wurde lokal zu Subversion hinzugefügt, ist aber noch nicht eingespielt worden.

Gelöscht

  Dieser Eintrag wurde lokal aus Subversion gelöscht, ist aber noch nicht eingespielt worden.

Gelöscht

  Dieser Eintrag oder bei einem Ordner ein Eintrag darin hat einen Konflikt bei der letzten Aktualisierung, der aufgelöst werden muss.

### &kdesvn; und Passwörter

&kdesvn; und Subversion können Passwörter speichern. Dies ist immer ein Sicherheitsrisiko, erleichtert aber die Arbeit mit einer grafischen Bedienungsoberfläche.

#### Kein Speichern von Passwörtern

Der sicherste Weg, aber mit grafische Bedienungsoberflächen wie &kdesvn; ziemlich umständlich. Besonders der Hintergrundprozess von &kdesvn; fragt dann immer nach dem Passwort, wenn das Repository einen eingeschränkten Zugriff für lesende Operationen wie Aktualisierung und Status hat. Das gleich gilt für das Einspielen. Wenn Sie die Passwörter nicht speichern, sollten Sie die Einstellung Aktualisierungs-Überprüfung beim Öffnen einer Arbeitskopie starten und weitere Einstellungen nicht verwenden.

#### Passwörter in &kwallet5; speichern

Dieser sichere Passwortspeicher wird von vielen &kde;-Programmen wie &kmail; und &konqueror; verwendet. Wenn Sie Ihr Passwort speichern möchten und meistens &kdesvn; verwenden, sollten Sie ebenfalls &kwallet5; benutzen. Einzelheiten dazu finden Sie im Handbuch zu &kwallet5;

#### Speichern im Passwortspeicher von Subversion

Dies wird nicht empfohlen, da die Passwörter als Klartext gespeichert werden. Sie finden die Passwörter in den Dateien in `~/.subversion/auth/svn.simple`. Sie sollten diese Methode nur verwenden, wenn Sie häufig andere Subversions-Programme als &kdesvn; wie zum Beispiel rapidsvn, esvn oder das originale Befehlszeilenprogramm svn verwenden. Sie sollten das Befehlszeilenprogramm nur für das Auslesen und Aktualisierungen verwenden, die beide kein Passwort erfordern. Zum Einspielen, Kopieren und Verschieben benutzen Sie dann &kdesvn; mit der Speicherung des Passworts in &kwallet5;.

#### Interner Passwort-Zwischenspeicher

Sie können eine internen Passwort-Zwischenspeicher aktivieren, der das Passwort im Speicher behält solange &kdesvn; ausgeführt wird. Daher müssen Sie das Passwort zweimal eingeben, sogar wenn Sie es nicht im Passwortspeicher ablegen.

#### Sonderfall „svn+ssh“

Wenn Sie Subversion mit „svn+ssh“ benutzen, kann das Speichern von Passwörtern mit SSH und ssh-agent erfolgen. Dazu brauchen Sie Zugriff zum entfernten Rechner und dem Repository über SSH. Beim Speichern sollten Sie die Authentifizierung mit dem öffentlichen Schlüssel. Dazu müssen Sie Ihren öffentlichen SSH-Schlüssel auf dem Zielsystem mit dem Repository ablegen. SSH-Passwörter werden nicht vom Subversion-Passwortspeicher, von &kwallet5; oder vom internen Passwortspeicher behandelt.

Möchten Sie nicht nach dem Passwort für Ihren SSH-Schlüssel gefragt werden, können Sie das Programm ssh-agent benutzen, indem Sie im Menü Subversion SSH-Identitäten zum SSH-Agenten hinzufügen auswählen. Dann können Sie Ihr Passwort für den SSH-Schlüssel für Ihre aktuelle Sitzung speichern und werden nicht weiter gefragt, wenn das Passwort benötigt wird.

## &konqueror;, KIO, &kdesvn;

### Beschreibung

Ab Version 0.7.0 von &kdesvn; sind einige Module vorhanden, die einige Befehle direkt in die Menüs von &konqueror; einbinden.

KIO-Protokolle

  Implementiert die Verarbeitung folgender Protokolle:

  - ksvn+http

  - ksvn+https

  - ksvn+file

  - ksvn+ssh

  - ksvn

  Diese Protokoll wurden für Repositorys, nicht für Arbeitskopien entwickelt. `ksvn+file:///path` zum Beispiel muss auf dem Anfang eines Repositorys zeigen, verschieden in der Anwendung selbst oder in KPart. Arbeitskopien können mit &konqueror; durchgesehen werden.

  Um eine bestimmte Revision durchzusehen, können Sie?rev=revision an die &URL; anhängen.

Kontextmenüs

  &kdesvn; installiert Kontextmenüs für &konqueror;. Sie können durch Klicken mit der &RMBn; auf einen Eintrag, der in &konqueror; im Dateiverwaltungsmodus angezeigt wird, das Kontextmenü öffnen und die meisten Standardaktionen in &konqueror; oder anderen Dateiverwaltungen wie &dolphin; ausführen. Dies wird als direkter Aufruf einer Befehlszeilenvariante von &kdesvn; ausgeführt.

#### Anwendung der Ein-/Ausgabemodule außerhalb von &konqueror; - ein Beispiel

Jedes Programm, das die Ein-Ausgabemodul-Bibliothek verwendet, kann diese Protokolle benutzen. Daher ist es möglich, mit &kdiff3; alle Unterschiede zwischen zwei Revisionen ohne tiefere Kenntnisse zu erhalten.

##### Unterschiede zwischen Revisionen mit &kdiff3; und KIO::ksvn ermitteln

    kdiff3 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=423127 \
      ksvn://anonsvn.kde.org/home/kde/trunk/KDE/arts?rev=455064

&kdiff3; zeigt alle Unterschiede zwischen zwei Revisionen.

Verwenden Sie dies innerhalb &kdesvn; (Unterschied zwischen zwei Revisionen) ist erheblich schneller, da die internen Mechanismen von Subversion benutzt werden.

### Informationen zu KIO::ksvn für Entwickler

Sie können diesen Abschnitt überspringen, wenn Sie kein Interesse an der KIO-Programmierung haben.

KIO::ksvn::special kennt die folgenden Operationen.

#### Befehlsliste

##### Befehlsübersicht zu `KIO::ksvn::special`

Befehlsname | Numerische Kennung | Parameterliste | In der aktuellen Version implementiert?
--- | --- | --- | ---
Auslesen | 1 | KURL repository, KURL target, int revnumber, QString revkind Das „target“ wird nicht verändert, aber &eg; der Inhalt wird ausgelesen, ohne einen Unterordner zu erzeugen. Wenn zum Beispiel als „source“ `http://server/repos/project/trunk` und als „target“ `/home/user/proj/` gesetzt ist, wird der Inhalt von trunk in `/home/user/proj/` kopiert, nicht in `/home/user/proj/trunk/`. | Ja
Aktualisieren | 2 | KURL url, int revnum, QString revstring Ist revnum < 0 dann wird revstring verarbeitet. Das Format von revstring ist im Anhang beschrieben. | Ja
Einspielen | 3 | KURL::List urls urls ist eine Liste von lokalen Adressen zum Einspielen. Die Protokoll-Nachricht wird abgefragt. | Ja
Protokoll | 4 | int startrevnumber, QString startrevstring, int endrevnumber, QString endrevstring, KURL::List Vorsicht bei der Anwendung - dies kann viele Daten produzieren | Ja
Importieren | 5 | KURL targetrepository, KURL sourcepath | Ja
Hinzufügen | 6 | KURL | Ja
Entf | 7 | KURL::List | Ja
Zurücknehmen | 8 | KURL::List Zurückzunehmen wird im Ein-/Ausgabemodul immer nicht rekursiv durchgeführt. Dies muss durch die aufrufende Anwendung selbst erfolgen. | Ja
Status | 9 | KURL item, bool checkRepos, bool recurse item - Eintrag, über den Informationen geholt werden, checkRepos - überprüft, ob es neuere Versionen im Repository gibt, recurse - Ob rekursiv überprüft werden soll oder nicht.. | Ja
Mkdir | 10 | KURL::List | Ja
Auflösen | 11 | KURL, bool recursive | Ja
Wechseln | 12 | KURL working_copy_path, KURL new_repository_url, bool recursive,int revnumber, QString revkind | Ja
Diff | 13 | URL uri1, KURL uri2, int r1, QString rstring1, int r2, QString rstring 2, bool recursive Für den Unterschied zwischen Repository „file:///“ und der Arbeitskopie richten Sie die URLs der Arbeitskopie ohne Protokoll ein. | Ja

#### Rückgabewerte

Rückgabewerte können über Metadaten angegeben werden, siehe Apidoc für weitere Details.

##### Inhalt der Metadaten

Schlüssel | Mögliche Werte
--- | ---
path | Pfad des Eintrags, an dem die Aktion ausgeführt wurde, &eg; die angegebene URL
action | Numerischer Aktionstyp
kind | Art des Eintrags (meistens Ordner oder Datei)
mime_t | Mimetyp des Eintrags in Subversion
content | Status des Inhalts (Wert von Subversion)
prop | Status der Eigenschaft (Wert von Subversion)
rev | Ergebnis-Revision oder bearbeitete Revision
string | Intern definierte von Menschen lesbare Nachricht.
loggedaction | In Subversion definierte Zeichen für Aktionen (A,M,D)
loggedcopyfrompath | Wenn kopiert von welchem Pfad? (kann leer sein)
loggedcopyfromrevision | Wenn kopiert von welcher Revision? (kann < 0 sein)
loggedpath | In welchen einzelnen Pfad die protokollierte Aktion des Eintrags gesetzt ist. Der Pfad wird auf die aufrufende URL gesetzt.
diffresult | Eine Zeile mit Ausgabe des Unterschieds

## &kdesvn; auf der Befehlszeile verwenden

### Überblick

Einige Operationen für Subversion können auf der Befehlszeile &eg; wie in einer normalen Konsole eingegeben werden, die Interaktion mit dem Benutzer findet aber über die grafische Oberfläche statt. Die normale Syntax lautet `kdesvn exec command parameter url`.

Wenn ein einzige Revision für eine einzige &URL; gewünscht wird, kann sie als Parameter der &URL; angegeben werden:

    svn://your-server/path-to-repository/item?rev=<your-rev>

Dies überschreibt die Option `-r <rev>`.

Eine Revision kann als Zahl, als `HEAD`, als `BASE` oder als Datumformat wie {YYYY-MM-DD} angegeben werden.

### Befehlsliste

Wenn in der folgenden Übersicht als möglicher Parameter `-r revision` angegeben ist, kann diese Revision als `url?rev=the-revision` angegeben werden.

#### Subversion-Befehle

Befehl | Bedeutung | Akzeptierte Optionen
--- | --- | ---
commit (oder ci) | Änderungen an Einträgen ins Repository einspielen |
log | Protokoll des Eintrags ausgeben | -r startrevision:endrevision -l limit_display
cat | Inhalt eines Eintrags anzeigen | -r revision
copy (oder cp) | Kopiert Einträge in einer Arbeitskopie oder Repository. Ist das Ziel nicht angegeben, wird es von &kdesvn; abgefragt. |
move (oder mv, rename) | Verschieben oder Umbenennen von Einträgen in einer Arbeitskopie oder Repository. Ist das Ziel nicht angegeben, wird es von &kdesvn; abgefragt. |
get | Inhalt von Einträgen holen und speichern. | -r revision -o <outputfile> (outputfile muss angegeben werden)
blame (oder annotate) | Anmerkungen zur Datei | -r startrevision:endrevision
update | Eintrag in Arbeitskopie aktualisieren | -r revision
diff | Unterschied zweier Revisionen eines Eintrags oder der Unterschied zweier Einträge von angegebenen Revisionen | -r startrev:endrev
info | Detaillierte Informationen über den Eintrag | -r revision
checkout (oder co) | Auslesen eines Repository-Pfads in einen Pfad zu einer neuen Arbeitskopie. Der Zielpfad und die Quell-Revision werden abgefragt. |
checkoutto (oder coto) | Auslesen eines Repository-Pfads in einen Pfad zu einer neuen Arbeitskopie. Der Unterschied zwischen dem Quell-Pfad und der Quell-Revision wird abgefragt. |
export | Export eines Repository-Pfads oder eines Pfad einer Arbeitskopie in einen Ordner. Der Zielpfad und die Quell-Revision werden abgefragt. |
exportto | Export eines Repository-Pfads oder eines Pfad einer Arbeitskopie in einen Ordner. Der Quell-Pfad und die Quell-Revision werden abgefragt. |
delete (del, remove, rm) | Löscht URL(s) aus dem Archiv oder der Arbeitskopie. |
add | Fügt die &URL; zur Arbeitskopie hinzu. Die &URL; muss zu einer Arbeitskopie gehören, kein Import |
revert (oder undo) | Nimmt aktuelle Änderungen an der Arbeitskopie zurück. Kann nur mit URLs für Arbeitskopien benutzt werden |
checknew (oder addnew) | Überprüft die angegebene &URL; auf neue, nicht versionierte Einträge und fügt sie gegeben falls zur Arbeitskopie hinzu. |
tree | Zeigt den Revisionsbaum der Einträge (nur das erste Argument). Wird die &URL; mit ?rev=xxx angegeben, wird diese Revision angezeigt. | -r startrev:endrev
lock | Sperrt Url(s), wenn die Option `-f` angegeben ist, werden vorhandene Sperren aufgehoben. | -f
unlock | Entsperrt Url(s), wenn die Option `-f` ist, dann werden auch fremde Sperren aufgehoben oder nicht vorhandene Sperren werden ignoriert. | -f
help | Zeigt diese Seite an |

#### Parameter für Subversion-Befehle

Parameter | Mögliche Werte | erlaubt für
--- | --- | ---
`-r` | revision oder startrev:endrev | alle außer Einspielung
`-R` | (keine) | alle außer Einspielung
`-o` | dateiname | get
`-l` | Zahl | log
`-f` | (keine) | (Ent)Sperren

#### Der Befehl log

Der Befehl „log“ zeigt einen Dialog mit dem Protokoll zu der angegebenen &URL;. Mit Subversion 1.2 oder neuer kann ein Grenzwert angegeben werden, &ie; wie viele Einträge angezeigt werden sollen.

In diesem Dialog können Sie Protokolleinträge auswählen und sich die Unterschiede dazwischen anzeigen lassen.

##### Die letzten 20 Einspiel-Protokolle anzeigen

    kdesvn exec log -l 20 -r HEAD:1 myfile.c

Beachten Sie die Reihenfolge der Revision: Sie möchten von HEAD zu START für die letzten Einträge. Daher müssen Sie HEAD als Startpunkt angeben, ansonsten würden Sie die ersten 20 Einträge erhalten.

#### Der Befehl diff

Sie erhalten die Unterschiede zwischen Revisionen für einen Eintrag oder zwischen zwei Einträgen in derselben Arbeitskopie oder demselben Repository. Beim Abfragen des Unterschieds für einen Eintrag sollten die Revisionen als `-r STARTREV:ENDREV` angegeben werden. Beim Abfragen des Unterschieds für einen Eintrag in einer Arbeitskopie ohne Angabe von Revisionen wird der Unterschied zum Repository ausgegeben.

##### Gibt die Unterschiede zum Repository &ie; lokale Änderungen aus

    kdesvn exec diff myfile.c

##### Unterschied zwischen Revisionen ausgeben

    kdesvn exec diff -r 21:20 myfile.c

Bei der Anzeige von Unterschieden zwischen den Revisionen zweier Einträge kann zur &URL; der Einträge angefügt werden, &eg;:

    http://server/path/item?rev=HEAD

##### Unterschied zwischen markierten Versionen

    kdesvn exec diff http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_2 http://www.alwins-world.de/repos/kdesvn/tags/rel_0_6_3

## Einstellungen

Einstellungen können im Einrichtungsdialog geändert werden. Der Dialog besteht aus mehreren Seiten.

### Allgemein

Größe der Symbole in der Listenansicht | Die Größe der Symbole in der Hauptlistenansicht
Datei-Infos anzeigen | Ob Kurzinfos beim Überfahren eines Eintrags mit dem Mauszeiger angezeigt werden
Eintragsstatus mit überlagerten Symbolen markieren | Wenn ein Eintrag nicht im normalen zustand von Subversion ist, kann ein Symbol eingeblendet werden. Siehe .
Sortierreihenfolge beachtet Groß-/Kleinschreibung | Ob beim Sortieren im Hauptfenster die Groß- und Kleinschreibung berücksichtigt wird, &ie; ob a gleich A ist.
Ignorierte Dateien anzeigen | Einträge anzeigen, die in Subversion als ignoriert markiert sind.
Maximale Anzahl der Protokoll-Meldungen im Verlauf | Anzahl der Protokollnachrichten, die in &kdesvn; behalten werden.
Farbige Anmerkungen anzeigen | Verwendet die Farben für Anmerkungen, die im Einrichtungsdialog eingestellt wurden.
Navigations-Bereich anzeigen | Schaltet die Anzeige der Baumansicht des Repository ein und aus.

### Einstellungen für Subversion und zeitgesteuerte Aufgaben

#### Subversion

Update-Überprüfung beim Öffnen einer Arbeitskopie starten | Beim Öffnen einer Arbeitskopie wird eine Überprüfung auf Aktualisierungen im Hintergrund gestartet
Log-Zwischenspeicher nach dem Öffnen füllen | Ist dies aktiv, startet &kdesvn; das Füllen des Protokoll-Zwischenspeichers, wenn ein Repository oder eine Arbeitskopie geöffnet wird und die Repository-&URL; nicht lokal zugewiesen ist (`file://`)
Prüfen ob Eintrag die Eigenschaft svn::needs-lock gesetzt hat | Prüft in Arbeitskopien, ob ein Eintrag diese Eigenschaft hat. Wenn ja, wird ein besonderes Symbol angezeigt. Mit dieser Einstellung kann das Auflisten sehr langsam werden.
Details bei Fernabfragen holen | Wenn aktiviert, holt &kdesvn; detailliertere Informationen über Dateieinträge, wenn es eine Liste in entfernten Repositorys erstellt. So können Sie Sperren in der Übersicht erkennen. Seien Sie vorsichtig: Dies kann Listen sehr langsam werden lassen.
Eintragsinformationen rekursiv holen | Ist dies aktiviert, wird der Befehl `info` für Ordner Informationen über alle untergeordneten Einträge anzeigen, auch wenn das langsam ist.
Passwörter für entfernte Verbindungen speichern | Das Speichern von Passwörtern ist oft ein Sicherheitsproblem. Subversion speichert sein Passwörter in einer einfachen Datei. Seien Sie also vorsichtig bei dieser Einstellung und lesen Sie auch den nächsten Eintrag. Wenn Passwörter in der Voreinstellung gespeichert werden, können Sie dies für besondere Anforderungen eines Anmeldungsdialogs ändern.

Passwörter in der KDE-Passwortverwaltung speichern

Beim Speichern von Passwörter ist die Klartextdatei von Subversion ein Sicherheitsrisiko. &kdesvn; kann seit Version 0.12.0 Passwörter stattdessen im verschlüsselten &kde;-Passwortspeicher ablegen und diesen zu verwenden. Andererseits können andere Subversion-Programme benutzt werden, die den Passwortspeicher nicht lesen können. Daher müssen Sie in diesen Fällen die Passwörter wieder eingeben, wenn Sie Programme wie svn oder rapidsvn benutzen. Solange Subversion Passwörter nicht verschlüsselt speichert, sollten Sie hier vorsichtig sein.

Internen Passwort-Zwischenspeicher verwenden | Wenn ein Passwort nicht dauerhaft gesperrt ist, kann &kdesvn; das Passwort bis zum Ende des Programms im Speicher halten. Dann müssen Sie es nicht wieder für jede einzelne Operation neu eingeben. Dieser Zwischenspeicher ist nie dauerhaft, &ie; das Passwort wird nirgends gespeichert.
Protokolle folgen Knotenänderungen | Ist dies aktiviert, folgen die Protokolle Kopier-Operationen.
Protokolle lesen immer die Liste der geänderten Einträge | Mit dem Befehl „log“ können Sie eine Liste geänderter Dateien in Einspielungen lesen. Dies ist nützlich und n den meisten Fällen wird nicht wirklich viel mehr Netzwerkverkehr erzeugt.
Einträge vor dem Einspielen überprüfen | Beim Einspielen überprüft &kdesvn; was ausgeführt werden muss. Wenn sich zum Beispiel nicht versionierte Einträge unterhalb dieses Elements befinden, die hinzugefügt werden sollen, werden die Einträge in der Liste geändert und mit der aktuellen Operation eingespielt. Abhängig vom Revisionsbaum kann dies mehr oder weniger aufwändig sein.
Neue Einträge in Übertragungsdialog ausblenden | Sollen nicht versionierte Einträge im Übertragungsdialog angezeigt werden oder nicht.
Aktualisieren führt zu Änderung anstatt von Konflikten | Ist dies aktiviert, führt das lokale Hinzufügen im gleichen Pfad wie eine eingehende Hinzufügen der gleichen Knotenart zu einem normalen Knoten mit einer möglichen lokalen Änderung, anstatt zu einem Baumkonflikt.
Aktualisierung erstellt fehlende übergeordnete Einträge | Ist dies aktiviert, werden auch mit der Option „depth=empty“ alle nicht vorhandenen übergeordneten Ordner beim Auslesen erstellt

#### Zeitlich festgelegte Aufträge

Auf bearbeitete Einträge prüfen alle N Sekunden Auf aktualisierte Einträge prüfen alle N Sekunden | Falls gesetzt, wird regelmäßig auf Aktualisierungen oder Änderungen in der Arbeitskopie geprüft, falls das Netzwerk aktiviert wurde

### Vergleich & Zusammenführen

Diff ignoriert den Inhaltstyp

  Nur wichtig, wenn der Unterschied mit Subversion selbst erstellt wird. Ist dies aktiviert, dann ignoriert Subversion beim Unterschied den Inhaltstyp von Einträgen. Ansonsten werden keine Unterschiede von binären Dateien erstellt.

Diff im Revisionsbaum ist rekursiv

  Ist dies aktiviert, werden Unterschiede in der Ansicht des Revisionsbaums rekursiv wie in allen anderen Fällen auch durchgeführt. Ansonsten werden nur Änderungen an Einträgen in diesem Ordner angezeigt. Abhängig von Ihren Einstellungen wird der Unterschied mit Subversion selbst oder mit externen Programmen erzeugt.

Diff ignoriert Änderungen der Leerzeichen

  Ignoriert Änderungen bei der Anzahl von Leerzeichen (Einstellung `-b` für diff)

Diff ignoriert alle Leerzeichen

  Ignoriert alle Leerzeichen (Option `-w` für diff)

Externes Zusammenführen bevorzugen

  Dies sollte gesetzt werden, falls das Zusammenführen mit einem externen Programm bevorzugt wird und nicht durch Subversion ausgeführt werden soll

diff-Format von Git verwenden

Kopien als hinzugefügt anzeigen

#### Externe Diff-Anzeige verwenden

Wählt eine externe Anwendung zur Anzeige von Unterschieden. Voreinstellung ist &kompare;.

#### Externe Diff-Anzeige

Definiert, welches Programm &kdesvn; für die externe Anzeige von Unterschieden benutzt und wie das Programm aufgerufen wird. Es gibt hier drei Möglichkeiten:

<program> <parameter>

  Der Unterschied wird mit Subversion generiert und direkt in die Standardeingabe des externen Programms geleitet, &ie; es werden keine temporären Dateien gebraucht.

<program> <parameter> %f

  Der Unterschied wird mit Subversion generiert und in eine temporäre Datei gespeichert. Der Parameter `%f` wird durch den Dateinamen ersetzt. Dies kann zum Beispiel in einem einfachen Aufruf von less oder einem Textbetrachter benutzt werden.

<program> <parameter> %1 %2

  &kdesvn; benutzt das externe Programm für die Generierung des Unterschieds. %1 und %2 wird mit den erforderlichen Werten, Dateinamen oder Ordnernamen, ersetzt. &kdesvn; speichert den Inhalt zum Vergleichen in einer temporären Umgebung (bei Ordnern wird ein export, bei einer einzelnen Datei wird ein cat ausgeführt), wenn erforderlich und räumt nach dem Schließen des externen Programms oder dem eigenen Schließen auf.

Externes Zusammenführen bevorzugen

  Aktivieren Sie dies, wenn im Dialog zum Zusammenführen als Voreinstellung Externes Zusammenführen verwenden angekreuzt sein soll.

#### Externes Programm zum Zusammenführen

Einstellungen des Programms und der Optionen, wenn das Interne Zusammenführen von Subversion nicht verwendet wird. Die Voreinstellung ist `kdiff3 %s1 %s2 %t`. Die Reihenfolge der ersetzen Variablen ist unwichtig und Variablen können auch mehrfach verwendet werden, &eg; wie `kdiff3 -o %t %s1 %s2 %t`. Diese Funktion wurde nur mit meld und &kdiff3; getestet. Bedenken Sie, dass externe Programme nichts über den Parameter `ignore` von Subversion wissen, so dass dann viel mehr als erwartet angezeigt wird.

##### Variablenersetzung für externe Programme zum Zusammenführen

%s1

  Wird durch die Quelle Nummer 1 ersetzt.

%s2

  Wird durch die Quelle Nummer 2 ersetzt. Wenn dies leer ist oder dies wie die Quelle Nummer 1 ist und Start- und Endrevision gleich sind, wird diese Variable ausgelassen. Seien Sie daher vorsichtig bei Befehlen wie `xxdiff --title1 %s1 --title2 %s2 %s1 %s2 %t`.

%t

  Ersetzt durch das Ziel.

#### Programm zur Konfliktlösung

Sie können ein externes Programm wie &kdiff3; zur Auflösung von Konflikten benutzen, der Standard Befehl lautet `kdiff3 %o %m %n -o %t`.

##### Variablenersetzung für externe Programme zur Konfliktlösung

In Klammern wird nach jeder Beschreibung ein Beispiel genannt, wie die Dateien in Subversion genannt werden. Diese Optionen wurden für &kdiff3; entwickelt, weil es zurzeit das einzige Programm ist, das alle Parameter unterstützt, die für eine erfolgreiche Konfliktlösung erforderlich ist.

%o oder %l

  Alte (lokale, linke) Version. Dies bedeutet die niedriger Revisionsnummer, &ie; den Startpunkt von Änderungen im Konflikt. (`foo.cc.r2`)

%m oder %w

  Meine (Arbeits-)Version der datei, &ie; was Sie gegenüber der alten Version geändert haben. (`foo.cc.mine`)

%n oder %r

  Neue (entfernte, rechte) Version der Datei. Zum Beispiel die Version, die jemand anders erstellt hat. (`foo.cc.r3`)

%t

  Zielname, &eg; der ursprüngliche Name. Für &kdiff3; zum Beispiel ist dies der Name nach dem Parameter `-o` (=Ausgabedatei), `foo.cc`.

### KIO / Befehlszeile

Nach dem Ausführen eines Befehls Protokoll anzeigen

  Öffnet einen Dialog mit dem Protokoll des letzten Subversions-Befehls, wenn er über die Befehlszeile oder aus dem Aktionsmenü von &konqueror; ausgeführt wird.

Minimale Anzahl anzuzeigender Protokoll-Zeilen

  Wenn Protokoll anzeigen ... eingestellt ist, ist dies die Mindestanzahl an Zeilen, ehe der Dialog angezeigt wird. Sie sollten dies so einstellen, dass das Fenster nur dann angezeigt wird, wenn eine interessante Ausgabe generiert wurde wie zum Beispiel ein Protokoll vom Einspielen.

Kein Kontextmenü in der KDE-Dateiverwaltung anzeigen;

  Ist dies aktiviert, wird kein Menüeintrag für &kdesvn; in &konqueror; angezeigt.

Keine Einträge im obersten "Aktionen"-Kontextmenü anzeigen

  Falls gesetzt, wird kdesvn kein Menü innerhalb des Aktionen-Menüs von &konqueror; oder &dolphin; anzeigen.;.

KIO-Operationen verwenden eine Standard-Protokoll-Meldung

  Wenn Operationen für ein Repository mit dem &kdesvn;-KIO-Protokoll von &konqueror; aus (&ie;, ksvn+... -Protokoll) ausgeführt werden, würde &kdesvn; bei großen Operationen wie Kopieren oder Verschieben von Ordnern nach einer Protokollmeldung für jeden einzelnen Eintrag fragen. Dies ist das Verhalten von &konqueror;. Ist diese Einstellung aktiv, wird die KIO-Implementation von &kdesvn; eine Standard-Protokollmeldung benutzen. Diese Einstellung wird nicht für Operationen aus dem &kdesvn;-Aktionsmenü für &konqueror; benutzt, aber nur für copy/move/mkdir/delete ausgeführt mit &konqueror; oder anderen Dateiverwaltungen an einer KIO-url.

Standardmeldung

  Die Meldung, die das &kdesvn;-Ein-/Ausgabemodul bei Aktionen von &konqueror; aus verwendet, wenn die oben genannte Einstellung aktiviert ist. Die Voreinstellung ist Revision made with &kdesvn; KIO.

Ein-/Ausgabemodul kann überschreiben

  Falls dies aktiviert ist, haben Sie eine einfache Schreibunterstützung für bestehende Eintrage. Sie können &eg;, Dateien im Editor öffnen und direkt ohne vorheriges Auslesen speichern (&kdesvn; macht dies im Hintergrund).

  Nutzen Sie das nur wenn Sie sich sicher sind, welche Auswirkungen die Aktionen haben

Ein-/Ausgabemodul zeigt Fortschrittsmeldungen an

  Ist dies aktiviert, werden ausführliche Nachrichten des Ein-/Ausgabemodul über den aktuellen Vorgang in den Plasma-Benachrichtigungen angezeigt. Fehlermeldungen des Ein-/Ausgabemoduls werden immer angezeigt und können nicht abgeschaltet werden.

## Befehlsreferenz

### Das Hauptfenster von &kdesvn;

#### Das Menü Datei

&Ctrl;O Datei Öffnen

  Öffnet eine lokale Arbeitskopie oder ein vorher geladenes Repository.

Datei Zuletzt geöffnete URLs

  In diesem Untermenü finden Sie die zuletzt geöffneten Repository oder lokalen Arbeitskopien. Klicken Sie auf einen Eintrag in der Liste, um ihn in &kdesvn; zuz laden..

&Ctrl;N Datei Neu

  Öffnet ein Fenster mit einer neuen Instanz von &kdesvn;

Datei Subversion-Admin

  Menüeinträge mit Verwaltungsaufgaben für ein Subversion-Repository wie:

  - Neues Repository erstellen oder öffnen
  - Repository in eine Datei archivieren
  - Hotcopy eines Repositorys
  - Abzug in ein Repository laden
  Weitere Informationen finden Sie in der Ausgabe von `svnadmin --help`
&Ctrl;W Datei Schließen

  Schließt das gerade geöffnete Repository oder die Arbeitskopie

&Ctrl;Q Datei Beenden

  Beendet &kdesvn;

#### Das Menü Lesezeichen

Informationen dazu finden Sie im Handbuch zu &konqueror;.

#### Das Menü Subversion

##### Allgemeine Aktionen für Subversion

&Ctrl;L Subversion Allgemein Verlauf des Eintrags

  Zeigt das Protokoll des Verlaufs für den gerade ausgewählten Eintrag. Dies kann eine lange Liste werden.

&Ctrl; &Shift;L Subversion Allgemein Verlauf des Eintrags ohne Kopien

  Zeigt den Verlauf des ausgewählten Eintrages ohne Kopien zu folgen.

&Ctrl;I Subversion Allgemein Details

  Zeigt ausführliche Informationen über die ausgewählten Einträge an

Subversion Allgemein Blame

  Eine Liste der Anmerkungen für alle Einspielungen, Dies kann viel Zeit benötigen.

Subversion Allgemein Blame für Bereich

  Anmerkungen für einen Bereich von Einspielungen für eine Datei.

Subversion Allgemein HEAD ausgeben

  Zeigt den Inhalt der letzten eingespielten Version des Eintrags, Dies kann sich von der aktuell bearbeiteten Arbeitskopie unterscheiden.

F2 Subversion Allgemein Verschieben

  Eintrag in einer Arbeitskopie oder in einem Repository verschieben oder Umbenennen

&Ctrl;C Subversion Allgemein Kopieren

  Kopiert einen Eintrag in einer Arbeitskopie oder einem Repository

Entf Subversion Allgemein Ausgewählte Dateien/Ordner löschen

  Löscht ausgewählte Einträge. Arbeiten Sie in einer Arbeitskopie, müssen Sie das Löschen hinterher einspielen.

Subversion Allgemein Neuer Ordner

  Erstellt einen neuen Ordner.

Subversion Allgemein Ordner in aktuellen Ordner importieren

  Auswahl von Ordnern, die Sie in den aktuell ausgewählten Ordner importieren möchten.

Subversion Allgemein Auslesen eines Repositorys

  Erstellt eine neue Arbeitskopie eines Repositorys

Subversion Allgemein Repository exportieren

  Exportiert ein Repository in ein Dateisystem, &ie; erstellt einen aufgeräumten Revisionsbaum ohne Subversion-Informationen.

Subversion Allgemein Aktuelle Einträge sperren

  Markiert den aktuellen Eintrag als gesperrt. Lesen Sie das Handbuch zu Subversion, ehe Sie diese Funktion benutzen.

Subversion Allgemein Aktuelle Einträge entsperren

  Entfernt Sperren von aktuellen Einträgen. Lesen Sie das Handbuch zu Subversion, ehe Sie diese Funktion benutzen.

##### Arbeitskopie

Subversion Arbeitskopie Auf HEAD-Revision aktualisieren

  Aktualisiert die Arbeitskopie auf die neueste Version (HEAD) des Repositorys

Subversion Arbeitskopie Auf Revision aktualisieren ...

  Aktualisiert die Arbeitskopie auf eine bestimmte Version des Repositorys

&Ctrl;# Subversion Arbeitskopie Einspielen

  Spielt Änderungen in der Arbeitskopie für ausgewählte Einträge in das Repository ein.

&Ctrl;D Subversion Arbeitskopie Lokale Änderungen anzeigen

  Zeigt die lokalen Änderungen als Diff-Ausgabe ohne Netzwerkzugriff. Dies ist nur der Unterschied zum letzten aktualisierten Stand der Arbeitskopie, nicht zur Version im Repository.

&Ctrl;H Subversion Arbeitskopie Unterschied zu HEAD

  Zeigt die Unterschiede der Arbeitskopie zu HEAD im Repository.

&Ctrl;P Subversion Arbeitskopie Eigenschaften

  Anzeige und Bearbeitung der Eigenschaften des aktuellen Eintrags.

Einfg Subversion Arbeitskopie Ausgewählte Dateien/Ordner hinzufügen

  Fügt die ausgewählten Dateien oder Ordner zur Versionskontrolle hinzu.

Subversion Arbeitskopie Aktuelle Änderungen zurücknehmen

  Nimmt alle Änderungen in der Arbeitskopie zurück und stellt den letzten aktualisierten Stand wieder her.

Subversion Arbeitskopie Als gelöst markieren

  Entfernt die Konflikt-Markierung von Einträgen und ebenfalls die zugehörigen Dateien.

Subversion Arbeitskopie Zwei Revisionen zusammenführen

  Führt zwei Versionen von Einträgen in die Arbeitskopie zusammen.

Subversion Arbeitskopie Aktuelle Einträge ignorieren/nicht ignorieren

  Bearbeitet die Eigenschaft des übergeordneten Ordners des aktuellen Eintrags, so dass der ausgewählte Eintrag als ignoriert markiert wird, wenn dies noch nicht gesetzt war. Ansonsten wird eine vorhandene Markierung zum Ignorieren entfernt.

Subversion Arbeitskopie Aufräumen

  Räumt die Arbeitskopie auf und entfernt eventuell vorhanden Sperren.

Subversion Arbeitskopie Repository wechseln

  Wechselt die Basis der aktuellen Arbeitskopie.

##### Repository

Subversion Repository Aktuellen Repository-Pfad auslesen

  Erstellt eine Arbeitskopie aus dem aktuell ausgewählten Eintrag, wenn es sich um einen Ordner handelt.

Subversion Repository Aktuellen Repository-Pfad exportieren

  Erstellt eine aufgeräumte Arbeitskopie auf dem lokalen Dateisystem aus dem aktuell ausgewählten Eintrag, wenn es sich um einen Ordner handelt.

##### Ansichtsaktionen

F5 Subversion Ansicht Ansicht aktualisieren

  Aktualisiert den aktuellen Status aller angezeigten Einträge. Dies zeigt für jeden angefragten Eintrag den aktuellen Status an.

Subversion Ansicht Dateibaum ausklappen / Dateibaum einklappen

  Baumansicht des Repository ein- bzw. ausklappen

Subversion Protokoll-Zwischenspeicher Aktualisierung des Protokoll-Zwischenspeichers abbrechen

  Das Protokoll wird zwischengespeichert und zur Anzeige des Revisionsbaums eines Repository benutzt. Abhängig von der Internetverbindung, der Größe des Subversion-Repository, und der Größe des Verlaufs kann diese Aktion länger dauern. Daher können Sie mit dieser Aktion die Aktualisierung abbrechen.

Subversion SSH-Identitäten zum SSH-Agenten hinzufügen

  Speichert Ihr Passwort für den SSH-Schlüssel für die aktuelle Sitzung, dann müssen Sie Ihr Passwort nicht dauernd eingeben.

#### Das Menü Datenbank

Datenbank Inhalt der Datenbank anzeigen

  Zeigt eine Übersicht des zwischengespeicherten Inhalt der Datenbank für bekannte Repository. Der Zwischenspeicher oder das Repository können gelöscht und die Einstellungen eines Repository können geändert werden.

Datenbank Einstellungen für das aktuelle Repository

  Zeigt einen Dialog mit Einstellungen für den Zwischenspeicher, Protokolle und Statistiken.

#### Die Menüs Einstellungen und Hilfe

Außer den bekannten &kde;-Menüeinträge Einstellungen und Hilfe, die in den Abschnitten zu den Menüs Einstellungen und Hilfe in den &kde;-Grundlagen beschrieben werden, gibt es für &kdesvn; noch einen zusätzlichen Eintrag:

Einstellungen Schnelleinstellungen
  Zuletzt geöffnete URL beim Starten öffnen

    Zuletzt geöffnete URL erneut laden, wenn keine andere auf der Befehlszeile angegeben wurde..

  Protokolle folgen Knotenänderungen

  Ignorierte Dateien anzeigen

    Zeigt Einträge, die in Subversion als ignoriert markiert sind.

  Unbekannte Dateien anzeigen

    Dateien anzeigen, die nicht zum Subversion-Archiv hinzugefügt wurden.

  Unveränderte Dateien ausblenden

    Benutzen Sie diese Aktion, um nur geänderte Dateien anzuzeigen, so dass eine einfache und kurzgefasste Übersicht entsteht.

  Online arbeiten

    Wenn Sie Offline arbeiten, dann wird der Protokollzwischenspeicher nicht aktualisiert, daher kann das zwischengespeicherte Protokoll vom tatsächlichen Protokoll abweichen.

## Danksagungen, Mitwirkende und Lizenz

Programm Copyright 2005-2009 &Rajko.Albrecht; &Rajko.Albrecht.mail;

Vielen Dank an diese Mitwirkenden:

- Andreas Richter ar@oszine.de - für die Portierung von svnqt zu Qt4

- Michael Biebl biebl@teco.edu - viele Hilfen, Ideen, Implementation and Hinweise.

- Bram Schoenmakers bramschoenmakers@kde.nl - für Hinweise zu &kde;, Niederländische Übersetzung, Aufräumen des Quelltexts.

Vielen Dank an alle Übersetzer, auch für Ihre negativen und positiven Rückmeldungen.

Möchten Sie die der Übersetzung von &kdesvn; mit helfen, lesen Sie die &kde;-Lokalisierungsseite oder fragen Sie auf der kde-i18n-doc@kde.org Mailingliste.

Dokumentation Copyright 2005-2006 &Rajko.Albrecht; &Rajko.Albrecht.mail;

Übersetzung Burkhard Lück lueck@hube-lueck.de

&underFDL; &underGPL;

## Syntax für Revisionen

Revisionen können in der gleichen Form wie beim normalen svn-Programm angegeben werden, also Nummer, Schlüsselwort oder Datum

Nummer

  Eine Nummer größer oder gleich -1. -1 bedeutet nicht spezifizierte Revision, 0 ist die erste Revision. Normalerweise sollten Sie dies nicht benutzen, da die meisten Operationen damit fehlschlagen.

Schlüsselwort

  Eins von

  - HEAD

  - BASE

  - COMMITED

  - PREV

  - START

  - WORKING

  Bei den Schlüsselwörten wird die Groß-/Kleinschreibung beachtet, „head“ ist nicht das gleiche wie „HEAD“.

Datum

  Datum im Format {YYYY-MM-DD}. Es muss MM oder DD benutzt werden, &eg; für 2005-1-1 muss {2005-01-01} angegeben werden.

Das Anhängen einer bestimmten Revision wird immer mit ?rev=revision ausgeführt.

&documentation.index;