www.mikrocontroller.net

Forum: PC Hard- und Software SVN-Repository reparieren?


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Allerseits,

für alle meine Projekte habe ich ein subversion-Repository auf einem 
kleinen Server eingerichtet. Neulich bekam ich beim frischen Auschecken 
eines Projektes eine seltsame Fehlermeldung, dass eine Datei nicht 
gefunden werden konnte.

'svnadmin verify <PROJEKT>' gab mir den Hinweis, dass eine 
Revisionsdatei keine Leerzeile am Dateiende besitzt. Als ich diese Datei 
(Revision 16 von 30 Revisionen, also mittendrin :( ) geöffnet habe, fiel 
mir auf, dass sich deren Inhalt von dem der anderen Revisionsdateien 
unterscheidet - hier war nur unleserlicher Binärkram enthalten. Von 
daher gehe ich aus, dass diese Datei defekt ist.

Gibt es einen Weg, dieses zu reparieren?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
ich habe noch eine komplette Arbeitskopie dieses Repositories auf einem 
anderen Rechner - könnte ich evtl. daraus die korrupte Revisionsdatei 
neu generieren?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hört sich nach FSFS an ... oder ist's BDB?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich um ein FSFS-basiertes Repository

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>hier war nur unleserlicher Binärkram enthalten. Von
>daher gehe ich aus, dass diese Datei defekt ist.
Die anderen waren lesbar? Ich dachte, SVN komprimiert...
Wenn deine aufgezeichnete Änderung eine Binärdatei betroffen hat, so 
wird der Inhalt der Rivisionsdatei wohl auch binär sein.

- Kannst du eine alte Revision auschecken?
- Hast du mal nach der exakten Fehlermeldung im Web gesucht?
- Bietet svn admin keine repair-Funktionen an?

Ich habe selbst mit SVN noch nicht so viel gemacht...

Gruß

Kai

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast Recht: in allen Revisionsdateien sind unleserliche Stellen 
enthalten, nur zum Dateiende hin sind sind die Einträge wieder lesbar - 
in der korrupten Datei jedoch nicht.

- Ich kann alle Teilprojekte bis Revision 15 auschecken, ein Projekt 
lässt sich sogar bis Revision 30 updaten.
- Ja, ich habe aber noch nichts Brauchbares gesehen
- Ich habe keine gefunden

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Doku ist da ziemlich eindeutig:
"that means that your repository has at least one corrupted revision and 
you should restore the corrupted revision from a backup (you did make a 
backup, didn't you?)."

Auch wenn dir das nicht gefallen wird.

Mach erstmal ein Backup von deinem defekten Repository () und versuch 
dann mal alle Revisionen ab und inklusive der defekten zu löschen. Und 
check dann deine working copy ein. Wenn das klappt (verify) hast du nur 
ein paar Revisionen verloren. Ist aber nicht vorgesehen und ich habe 
keine Ahnung, ob das für Langzeitschäden sorgt! Du wirst dem evtl 
irgendwie nach dem Löschen noch mitteilen, dass die aktuelle Revision 
eine andere ist.

Zur Not: alles löschen und neu einchecken.

Backup beschrieben in:
http://svnbook.red-bean.com/en/1.4/svn-book.html#s...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, über eine vernünftige Backup-Strategie habe ich natürlich bis jetzt 
noch nicht nachgedacht...

Danke für Deine Hinweise!

Autor: Oliver S. (z0ttel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachdem mir nun bewusst ist, dass ich eine Backup-Lösung für meine 
Repositories brauche, stellt sich die Frage, wie man dieses effektiv 
angeht?

Aus meiner Sicht müsste das Archiv über eine Historie verfügen, damit 
sich auch Probleme, die in der Vergangenheit liegen, beheben lassen. 
Andererseits möchte ich ungern jedesmal einen 'full dump' machen.

Da ich mich mit meinen Basteleien ausschliesslich im Hobby-Bereich 
bewege, brauche ich keine Multi-k€ Backuplösung mit X redundanten 
Servern.

Wie wird das von Euch gehandhabt? Einige Leute verwenden rsync, andere 
inkrementelle tar-Archive...

Wie sind so die Erfahrungen mit rsync / tar?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Externe Platte am Linux-Server und folgende Scripts:

Datei: backup-daily
./backup /mount/backup/daily/`date +%u-%A`

Datei: backup-monthly
./backup /mount/backup/monthly/`date +%m-%B`

Datei: backup
rm -rf /tmp/backup

mkdirhier /tmp/backup/svn-myproject
cd /tmp/backup/svn-myproject
svnadmin hotcopy /var/svn/myproject .
tar -czf $1/svn-myproject.tar.gz *

rm -rf /tmp/backup

backup-daily wird täglich aufgerufen und backup-monthly monatlich (soll 
es zumindest mal, wenn ich die Berechtigungen hingekriegt habe - im 
Moment starte ich die manuell).

Die Platte muss insgesamt 7+12 = 19 Vollbackups fassen. tar kann aber 
auch inkrementell arbeiten, das ist wahrscheinlich das, was du suchst.

Restore testen nicht vergessen.

Keine Garantie für gar nichts - bin selber noch am lernen ;)

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benutze kein SVN, sondern GIT, aber:

Die mit GnuPG verschlüsselten Repository-Backups brenne ich auf CD. 
Source-Code ist zu wertvoll.

Der GnuPG-Archiv-Key ist übrigens an verschiedene Stellen hinterlegt 
(verschiedene Ortschaften!).

Der Vorteil der gebrannten CDs ist mehrfach:

  - Kann nicht ausversehen gelöscht werden.
  - Kann nicht durch Überspannung zerstört werden.
  - CDs können auch in Bankschließfächern verwahrt werden.

D.h. die Hütte kann sogar abbrennen, und ich kann meine (u.a.) 
Source-Codes wieder restaurieren.

Das beruhigt die Nerven ungemein. So ein Bankschließfach kostet auch 
nicht die Welt, und die CD-Rohlinge erst recht nicht.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

denk aber daran das die Haltbarkeit von CDs (insbesondere von CD-R(W)) 
nicht so prickelnd ist. Wenn du ältere Backups (>1 Jahr) noch brauchst 
würde ich die einmal im Jahr auf einen neuen Rohling brennen.

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.