Mehrere Dokumentversionen verwalten

Aus EasyLinux 01/2013

Mehrere Dokumentversionen verwalten

© Hans-Georg Eßer

Kleine Unterschiede

Datensicherung bringt Ihnen verlorene Dateien zurück – aber nur in der letzten Version. Für Dateien, an denen Sie regelmäßig größere Umbauten vornehmen, ist darum auch eine Versionsverwaltung nützlich.

Viele Anwender betreiben eine Art “Versionsverwaltung zu Fuß”, das funktioniert z. B. so: Vor größeren Änderungen kopieren sie eine Datei und hängen an die neue einen Namenszusatz wie -v01, -v02 usw. an. Damit liegen dann im Dokumente-Ordner zahlreiche ähnlich benannte Dateien, deren Namen sich nur in der fortlaufenden Versionsnummer unterscheiden – aktuell ist die Datei mit der höchsten Nummer. Da ältere Dateien nicht mehr angefasst werden, kann man am Dateidatum gut erkennen, von wann welche Version ist. Dieser Ansatz ist durchaus vernünftig, und wer nur von einigen wenigen Dokumenten mehrere Versionen aufheben möchte, kommt damit auch gut zurecht. In der EasyLinux-Redaktion verwalten wir z. B. während der laufenden Produktion den Seitenplan nach diesem Schema (siehe Kasten Seitenplanversionen).

Seitenplanversionen

[esser@caesar:04]$ ls -l Seitenplan*
-rw-rw-r-- 1 esser esser 18261 2012-09-13 16:15 Seitenplan-EL-2012-04-v01.pdf
-rw-rw-r-- 1 esser esser 18179 2012-09-13 17:16 Seitenplan-EL-2012-04-v02.pdf
-rw-rw-r-- 1 esser esser 18217 2012-09-14 15:11 Seitenplan-EL-2012-04-v03.pdf
-rw-rw-r-- 1 esser esser 18182 2012-09-17 13:28 Seitenplan-EL-2012-04-v04.pdf
-rw-rw-r-- 1 esser esser 18117 2012-09-19 17:43 Seitenplan-EL-2012-04-v05.pdf
-rw-rw-r-- 1 esser esser 18237 2012-09-20 14:26 Seitenplan-EL-2012-04-v06.pdf

Ein Vorteil dieses simplen Schemas ist, dass alle Versionen ständig verfügbar sind, weil sie ja als normale Dateien im Verzeichnis liegen. Haben Sie aber sehr viele Dateien, die Sie in Versionen erfassen wollen, geht schnell der Überblick verloren. Dann empfiehlt sich der Einsatz einer professionellen Versionsverwaltung, die nur die jeweils aktuellste Fassung einer Datei sichtbar macht und alte Versionen in ein Archiv schiebt.

Ein- und auschecken

Alle Tools für die Versionsverwaltung bieten zwei zentrale Aktionen an: das Einchecken und das Auschecken. Ein Datei einzuchecken, bedeutet, sie erstmalig oder in einer aktualisierten Fassung in die Versionsverwaltung zu importieren. An der Datei ändert sich dadurch nichts, aber nach jeder Check-in-Aktion gibt es eine zusätzliche Version, die Sie später wiederherstellen könnten. Statt “Check-in” ist auch der Begriff “Commit” üblich.

Beim Auschecken gehen Sie den umgekehrten Weg: Sie holen eine Datei aus der Versionsverwaltung, um damit arbeiten zu können. Wenn Sie das System nur als Backuplösung nutzen, wird das nur vorkommen, wenn Sie eine Datei verloren haben, und dann sind Sie meist an der letzten (aktuellen) Version interessiert. Es ist aber auch möglich, eine ältere Version auszuchecken – z. B., um sie mit der aktuellen zu vergleichen.

Subversion und KDEsvn

Es gibt viele Versionsverwaltungen, die unterschiedliche Features bieten – für den einfachen Fall, in dem Sie als einzelner Anwender mehrere Versionen von Dateien archivieren möchten, spielt es keine Rolle, welches der Tools Sie benutzen. Für diesen Artikel haben wir uns für das Subversion-System [1] entschieden – u. a., weil es mit KDESvn [2] ein komfortables GUI-Tool dafür gibt. Das KDE-Programm erleichtert Ihnen die Arbeit mit Versionen, und Sie müssen keine Shell-Befehle eingeben.

Wenn Sie KDESvn installieren wollen, können Sie unsere Heft-DVD verwenden. Achten Sie dabei darauf, gleichzeitig das Paket subversion mitzuinstallieren; das ist ein Standardpaket.

Repository anlegen

Nach dem Programmstart erzeugen Sie zunächst ein neues Repository, indem Sie den Menüpunkt Datei / Subversion-Admin / Erstelle und öffne ein neues Repository aufrufen. Im sich öffnenden Dialog entfernen Sie das Häkchen vor der Option Erzeuge Hauptverzeichnisse. Ins Feld Pfad zum Repository tragen Sie ~/svn (mit einer führenden Tilde, die Sie über [AltGr]+[+] eingeben) ein – damit legen Sie fest, dass KDESvn in Ihrem Home-Verzeichnis einen Ordner svn/ erzeugt, der das Repository aufnimmt (Abbildung 1). Klicken Sie zum Bestätigen der Angaben auf OK.

Abbildung 1: Sie erzeugen ein neues Repository, das in Ihrem Home-Verzeichnis liegt. Die Option für Hauptverzeichnisse deaktivieren Sie.

Abbildung 1: Sie erzeugen ein neues Repository, das in Ihrem Home-Verzeichnis liegt. Die Option für Hauptverzeichnisse deaktivieren Sie.

Im nächsten Schritt erstellen Sie die Arbeitskopie, die im Ordner Dokumente liegen soll. Rufen Sie dazu den Menüpunkt Subversion / Repository / Checke aktuellen Repository-Pfad aus auf. Es erscheint ein Dialogfenster, in dem Sie nur ein Feld ausfüllen müssen: Klicken Sie neben dem Eingabefeld Wähle Zielverzeichnis auf das Datei-Icon und suchen Sie im Dateiauswahldialog Ihren Dokumente-Ordner. Klicken Sie ihn an und bestätigen Sie mit OK. Im Eingabefeld steht jetzt /home/benutzername/Dokumente (Abbildung 2). Schließen Sie auch dieses Fenster mit einem weiteren Klick auf OK.

Abbildung 2: Das neue Repository müssen Sie im zweiten Schritt auschecken – obwohl es noch keine Dateien enthält.

Abbildung 2: Das neue Repository müssen Sie im zweiten Schritt auschecken – obwohl es noch keine Dateien enthält.

Unterhalb von Dokumente gibt es nun einen neuen Ordner svn – in diesen Ordner schieben Sie mit dem Dateimanager Dolphin alle Dokumente, welche die Versionsverwaltung erfassen soll. Sobald neue Dateien in dem Verzeichnis landen, zeigt KDESvn diese an: In der Spalte Status steht bei jedem Eintrag Nicht versioniert. Das bedeutet, dass KDESvn bemerkt hat, dass es neue Dateien gibt, diese aber noch nicht verwaltet. Das ändern Sie im nächsten Schritt.

Klicken Sie einen der Einträge in der Dateiliste (in KDESvn) an und drücken Sie dann [Strg]+[A], um alle Dateien zu markieren. Danach drücken Sie [Strg]+[#] (oder klicken auf die Schaltfläche Senden bzw. rufen den Menüpunkt Subversion / Arbeitskopie / Senden auf): Dann erscheint ein neues Dialogfenster (Abbildung 3), in dem Sie zunächst oben auf Alles auswählen klicken (um alle Dateien in der Liste zu markieren), dann im unteren Bereich einen Hinweistext (z. B. “erste Versionen der Dateien”) eingeben und schließlich auf OK klicken.

Abbildung 3: Beim Einchecken können Sie einen Kommentar eingeben – in das Feld gehört ein Hinweis, was sich seit der letzten Sicherung geändert hat.

Abbildung 3: Beim Einchecken können Sie einen Kommentar eingeben – in das Feld gehört ein Hinweis, was sich seit der letzten Sicherung geändert hat.

KDESvn kopiert nun die Dateien in das Repository. Wenn das Programm damit fertig ist, verschwinden die Einträge in der Status-Spalte; dafür erscheint in der Spalte Letzte geänderte Revision überall die Zahl 1: Sie haben soeben die erste Revision Ihres Repositories erzeugt (Abbildung 4). Wann immer Sie nun neue Dateien einchecken oder bereits vorhandene aktualisieren, zählt Subversion diesen Wert hoch – die Revisionsnummern beziehen sich also nicht auf einzelne Dateien, sondern auf den Gesamtzustand des Repositories.

Abbildung 4: Nach dem Einchecken über "Subversion / Arbeitskopie / Senden" speichert das Repository die aktuellen Versionen der Dateien.

Abbildung 4: Nach dem Einchecken über “Subversion / Arbeitskopie / Senden” speichert das Repository die aktuellen Versionen der Dateien.

Arbeiten mit der Arbeitskopie

Schließen Sie nun das geöffnete Repository mit einem Klick auf die Schließen-Schaltfläche (oder über [Strg]+[W]) und öffnen Sie dann die Arbeitskopie in KDESvn: Dazu klicken Sie auf Öffnen (oder drücken [Strg]+[O]) und tragen von Hand oder über den Dateiauswahldialog den Pfad Ihrer Arbeitskopie ein; im Beispiel ist das /home/benutzername/Dokumente/svn. Bei allen künftigen Starts gelangen Sie schneller zur Arbeitskopie: Über Datei / Zuletzt geöffnete URLs können Sie das Verzeichnis dann direkt auswählen.

Es erscheint (fast) dieselbe Ansicht wie vorher; Sie sehen nur an der Titelleiste des Fensters und am links angezeigten Ordner svn, dass KDESvn jetzt die Arbeitskopie verwendet.

Aktualisieren

Interessant wird es erst, wenn Sie an einigen der eingecheckten Dateien Änderungen vornehmen. KDESvn bemerkt das und weiß, dass die Version im Repository nicht mehr aktuell ist. Sobald Sie eine Datei verändert haben, färbt KDESvn die zugehörige Zeile in der Dateiliste rot ein und setzt in die Status-Spalte den Hinweis Lokal bearbeitet (Abbildung 5). Auch wenn Sie neue Dateien in den Ordner Dokumente/svn legen, fällt dem Programm das auf: Es nimmt solche Dateien mit dem schon erwähnten Status Nicht versioniert in die Liste auf.

Abbildung 5: Wenn Sie in KDESvn die Arbeitskopie öffnen, bemerkt das Programm jede Änderung an den Dateien.

Abbildung 5: Wenn Sie in KDESvn die Arbeitskopie öffnen, bemerkt das Programm jede Änderung an den Dateien.

KDESvn wird geänderte Dateien nicht automatisch in das Repository kopieren – es könnte ja sein, dass Sie mit den Inhalten eines Dokuments ein wenig herum spielen und die Zwischenversionen gar nicht sichern wollen.

Um eine neue Version ins Repository zu schieben, markieren Sie eine oder mehrere Dateien und drücken wieder [Strg]+[#] oder klicken auf Senden. Es erscheint dann der gleiche Dialog wie beim ersten Einchecken. Setzen Sie auch diesmal alle Häkchen, tragen Sie einen Kommentar ein und bestätigen Sie mit OK. Wenn Sie nun die Revisionsnummern anschauen, sehen Sie, dass die erstmals eingecheckte und die aktualisierte Datei jetzt Revisionsnummer 2 tragen, während bei unveränderten Dateien weiterhin Nummer 1 steht. KDESvn zeigt immer die Nummer der Revision an, bei der sich zuletzt etwas an einer Datei geändert hat. Wenn Sie nun noch eine weitere neue Datei einchecken, erhält diese direkt die Revisionsnummer 3, während alle übrigen Dateien die Nummern 1 und 2 behalten.

Vergleichen

Ein Feature, das nur für reine Textdateien (wie z. B. Konfigurationsdateien des Linux-Systems) sinnvoll ist, ist der Vergleich zweier Versionen einer Datei. Klicken Sie eine Datei mit der rechten Maustaste an und wählen dann im Kontextmenü den Eintrag Zeige letzte Änderungen, dann öffnet sich ein Fenster, das die Änderungen von der letzten zur aktuellen Version anzeigt (Abbildung 6). Das Format ist allerdings nicht intuitiv verständlich. Mit “+” beginnende, grün gefärbte Zeilen sind neu hinzugekommen, während Zeilen mit “-” am Anfang und roter Schrift entfernt wurden.

Abbildung 6: Die Diff-Ausgabe zeigt die Unterschiede zwischen aktueller und vorheriger Version einer Datei.

Abbildung 6: Die Diff-Ausgabe zeigt die Unterschiede zwischen aktueller und vorheriger Version einer Datei.

Sie können die Unterschiedsanzeige aber verbessern, indem Sie ein externes Programm dafür konfigurieren. Installieren Sie dazu zunächst über die Paketverwaltung das Programm tkdiff. (Unter Ubuntu benötigen Sie das Paket tkcvs, bei OpenSuse heißt auch das Paket tkdiff.) Dann rufen Sie den Menüpunkt Einstellungen / Kdesvn einrichten auf und wechseln links zum Bereich Vergleich & Zusammenführen. Aktivieren Sie auf der rechten Seite die Option Benutze externe Unterschiedsanzeige und tragen Sie im Feld Externe Diff-Anzeige den Befehl

tkdiff %1 %2

ein. Wenn Sie die Einstellungen mit OK schließen und erneut die letzten Änderungen an einer Datei abrufen, erscheint jetzt ein deutlich übersichtlicheres Fenster (Abbildung 7), in dem Sie auf einen Blick erkennen können, welche Bereiche geändert, hinzugefügt oder entfernt wurden.

Abbildung 7: Die "tkdiff"-Ausgabe zeigt die Dokumentversionen vollständig an.

Abbildung 7: Die “tkdiff”-Ausgabe zeigt die Dokumentversionen vollständig an.

Zugriff auf alte Versionen

Haben Sie versehentlich eine mit KDESvn verwaltete Datei gelöscht oder möchten aus einer alten Version der Datei Inhalte übernehmen, kommt der große Moment: Jetzt können Sie eine Version aus dem Repository auschecken. In der Übersicht erscheinen auch gelöschte Dateien (mit dem Status Fehlt). Markieren Sie den Eintrag und klicken Sie dann auf die Schaltfläche Erneuere, stellt KDESvn die letzte Version wieder her. Um eine ältere Version auszuchecken, ist etwas mehr Arbeit nötig. Zunächst sollten Sie sich einen Überblick über die verschiedenen Revisionen der Datei verschaffen – dazu markieren Sie diese und klicken auf die Schaltfläche Geschichte. Es erscheint dann eine Auflistung aller Revisionen, und Sie können sich auch die Kommentare anzeigen lassen, die Sie beim Einchecken vergeben haben. Ein direkter Zugriff auf die alten Versionen ist aus KDESvn nicht möglich, dafür verwenden Sie den Dateimanager Dolphin.

Dolphin liest das Repository

Dolphin beherrscht den Zugriff auf das Repository: Öffnen Sie ein neues Dateimanager-Fenster und drücken Sie [Strg]+[L], damit die Adressleiste erscheint. Hier geben Sie nun die URL svn+file:/home/benutzer/svn/ ein (wobei Sie benutzer durch Ihren Benutzernamen ersetzen). Das ist der Ordner, der das Repository (und nicht die Arbeitskopie) enthält. Sie sehen nun die Dateien und Verzeichnisse, die Sie über das Repository verwalten – jeweils in der aktuellsten Revision.

Wenn Sie (mit [Strg]+[N]) ein zweites Dolphin-Fenster öffnen und darin dieselbe URL eingeben, aber zusätzlich ?rev=X anhängen (wobei X eine Revisionsnummer ist), dann sehen Sie Dateien, wie sie zum Revisionszeitpunkt X aktuell waren (Abbildung 8). Diese historischen Versionen können Sie nun wie gewohnt in einer Anwendung öffnen oder per Drag & Drop aus dem Repository heraus in das normale Dateisystem kopieren.

Abbildung 8: Dolphin kann auch Repository-Inhalte anzeigen – über den URL-Parameter "?rev=X" greifen Sie auf alte Revisionen zu (oben).

Abbildung 8: Dolphin kann auch Repository-Inhalte anzeigen – über den URL-Parameter “?rev=X” greifen Sie auf alte Revisionen zu (oben).

Subversion beherrscht noch viele andere Tricks, die aber nur dann nützlich sind, wenn mehrere Anwender auf dasselbe Repository zugreifen. Dann kann es z. B. vorkommen, dass zwei Nutzer ein Dokument auschecken, lokal verändern und dann wieder ins Repository einchecken wollen – das verursacht einen Konflikt, den Subversion erkennt; es gibt dann verschiedene Lösungsmöglichkeiten. Im lokalen Einbenutzerbetrieb kann so etwas aber nicht passieren. Auch auf die Netzwerkfunktionen sind wir hier nicht eingegangen: Ein Repository kann auch auf einem entfernten Rechner liegen: In dem Fall sichern Sie Dateien automatisch ins Netz, wenn Sie diese einchecken. Für das lokale Repository ist aber weiterhin eine Datensicherung nötig, denn wenn Sie durch Plattenschaden das ganze Home-Verzeichnis verlieren, verschwindet auch das Subversion-Repository.

Die Kombination aus Backup und Versionsverwaltung sichert Sie zuverlässig gegen alle möglichen Datenverluste ab: Wenn Sie aus einem Dokument wichtige Passagen löschen und das erst nach Monaten bemerken, finden Sie im Repository immer noch eine alte Version vor der Löschung – immer vorausgesetzt, dass Sie diese Datei regelmäßig eingecheckt haben.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
EasyLinux 01/2013 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben