Forum: PC Hard- und Software Subversion Repository auf Integrität überprüfen


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,
ich habe ein Subversion-Repository auf einem Datenträger, bei dem gerade 
einige Dateisystemfehler gefunden wurden. Mit e2fsck wurden jede Menge 
Fehler auf dem Datenträger gefunden, aber das Repository scheint intakt 
geblieben zu sein- zumindest ließen sich einige Versionen auschecken.

Natürlich gibt es vom Repository ein Backup- aber das enthält die 
letzten Änderungen noch nicht. Mir geht es jetzt darum, ob es sinnvoller 
ist, das Repository aus dem Backup oder das Repository vom 
wiederhergestellten Datenträger weiterzuverwenden.

Gibt es für Subversion ein Kommando, mit dem sich die Integrität eines 
Repositorys testen läßt?

Viele Grüße
W.T.

von A. H. (ah8)


Lesenswert?

Abschließend kann ich Deine Frage nicht beantworten, ich glaube aber 
eher nicht, dass es so etwas gibt. Es ist die Aufgabe des Dateisystems 
die Konsistenz der Daten sicher zu stellen. Wenn es dass aus 
irgendwelchen Gründen nicht mehr kann, sollte es einen Lesefehler 
melden. Es besteht für eine Applikation im Allgemeinen also kein Grund, 
selbst Konsistenzprüfungen einzubauen; Anwendungen sollten sich auf die 
Prüfungen des Dateisystems verlassen können..

Entsprechend würde ich von einem Filesystemcheck – ich lasse mich hier 
gerne eines besseren belehren – auch erwarten, dass er nur Fehler in der 
Verzeichnisstruktur behebt, nicht aber in den Dateien selber. Das 
schlimmste, was so passieren könnte, wäre dass Dateien trunkiert werden. 
Das sollte Subversion dann aber merken. Da Subversion seine Repositories 
meines Wissens nach am Ende fortschreibt müssten die jüngsten Versionen 
am ehesten betroffen sein.

Für eine genaue Beurteilung wäre es natürlich wichtig zu wissen, welche 
Fehler fsck gemeldet hat und welche Dateien betroffen waren. Ohne 
entsprechende Logs lässt sich wohl keine definitive Aussage treffen.

Ich würde auf jeden Fall erst einmal ein Kopie des betroffenen 
Repositories erstellen, idealerweise mit SVN-eigenen Mitteln, die 
sollten am ehesten merken, wenn etwas nicht stimmt. (Ich habe länger 
nicht mehr mit SVN gearbeitet, aber svndump oder svnsync könnten da 
hilfreich sein, auch Repository Replication im SVN Buch wäre ein guter 
Einstieg.) Wenn das klappt, wäre ich schon mal optimistisch.

Solltest Du auf Nummer sicher gehen wollen und den Aufwand nicht scheuen 
könntest Du – nachdem die Ursache der Fehler behoben und das Filesystem 
neu formatiert ist – das Backup einspielen. Das möglicherweise korrupte 
Repository legst Du an einen temporären Ort. Dann holst Du die noch 
nicht gesicherten Versionen eine nach der anderen in eine temporäre 
Arbeitskopie, gleichst die Daten mit rsync o.ä. in Deiner produktiven, 
mit der letzten gesicherten Version neu ausgecheckten Arbeitskopie 
entsprechend ab und checkst sie von dort in das wiederhergestellte 
Repository ein. Dabei kannst Du für jede Version nach Belieben eigene 
Checks einfügen, zum Beispiel einfach mal prüfen, ob noch alles 
compiliert.

Ich hoffe das konnte helfen.

von Axel S. (a-za-z0-9)


Lesenswert?

Walter Tarpan schrieb:
> Gibt es für Subversion ein Kommando, mit dem sich die Integrität eines
> Repositorys testen läßt?

Ist dein Google kaputt?

~ $svnadmin help verify
verify: usage: svnadmin verify REPOS_PATH

Verifies the data stored in the repository.


XL

von Walter T. (nicolas)


Lesenswert?

Axel Schwenke schrieb:
> Ist dein Google kaputt?

Nein, aber von meinem zehnbändigen Lexikon "Alle Google-Suchbegriffe von 
A-Z in Deutsch und Englisch" hat sich mein Nachbar wieder mal den Band 
"Por-Tit" ausgeliehen. Und genau in dem Band sollte ja auch "Subversion" 
stehen.

Axel Schwenke schrieb:
> verify: usage: svnadmin verify REPOS_PATH

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.