Die svn-Dump-Datei scheint ein fehlerhaftes oder falsches Format zu haben

925
ChrisW

Ich versuche, einen svn-Dump des Inhalts meines Assembla- SVN-Repositorys zu erhalten. Ich habe die Anweisungen befolgt und die tar.gz-Datei heruntergeladen, die der Export generiert.

Ich möchte svndumpfilter auf dem Dump ausführen, bevor ich ihn in ein anderes Repo importiere, aber alles, was ich mache, erzeugt einige Fehler.

  • Wenn ich tar xzfauf die Datei starte, bekomme ich den gesamten Inhalt (ein Verzeichnis, keine flache Datei) - wenn ich diese Inhalte dann in ein Verzeichnis stelle und svndumpfilter starte, erhalte ich einen Fehlersvndumpfilter: E000021: Can't read stream: Is a directory
  • Wenn ich nur die gz-Datei dekomprimiere (und nicht entpacke), und dann versuche, svndumpfilter auf die tar-Datei auszuführen, die ich bekomme svndumpfilter: E140001: Malformed dumpfile header 'breakout.ini'
  • Wenn ich versuche, einen Dump direkt herunterzuladen, svnrdump dump http://subversion.assembla.com/svn/<repo_name>/bekomme ich die Fehlermeldung:

    * Dumped revision 6. svnrdump: E175002: REPORT of  'http://subversion.assembla.com/svn/<repo_name>': Could not read response body: Connection reset by peer (http://subversion.assembla.com) 

    Dies geschieht durchgängig nach der überlassenen Revision 6.

  • Wenn ich versuche, die unkomprimierte Datei in ein lokales Repo zu importieren, bekomme ich es

    $ sudo svnadmin create my_repo $ sudo svnadmin load --force-uuid my_repo < repo_download.tar.gz svnadmin: E140001: Malformed dumpfile header '?\8' 

Lokal verwende ich svn Version 1.7.4 unter Ubuntu. Ich weiß nicht, welche Version assembla verwendet.

Gibt es etwas offensichtliches, das mir fehlt, oder verwirren sie Dinge, indem sie den Inhalt zusammenfassen, der eine flache Dump-Datei sein sollte?

Beim Ausführen eines Baums für den nicht komprimierten Download erhalten Sie:

tree -d . âââ tmp âââ db â   âââ node-origins â   âââ revprops â   â   âââ 0 â   âââ revs â   â   âââ 0 â   âââ transactions â   âââ txn-protorevs âââ hooks â   âââ post-commit.d â   âââ post-revprop-change.d â   âââ pre-commit.d âââ locks  14 directories 
0
Seien Sie vorsichtig - "zip" ist eine bestimmte Art von Archivierung und Komprimierung. Sie können ein tar-Archiv oder komprimierte gzip-Daten nicht "entpacken". Attie vor 6 Jahren 1
"_Ich führe tar xzf für die Datei aus. Ich erhalte den gesamten Inhalt (ein Verzeichnis, keine flache Datei) _" es klingt, als hätten Sie möglicherweise eine Momentaufnahme der Repository-Dateien heruntergeladen (ausgecheckt) oder eine Kopie des Backends SVN-Repository. Bitte posten Sie eine Auflistung / einen Screenshot oder eine Beschreibung und teilen Sie uns mit, welche Dateien Sie sehen. Attie vor 6 Jahren 0
@Attie Ich habe die Ausgabe vom Ausführen von "Baum" bereitgestellt - reichen diese Informationen aus? ChrisW vor 6 Jahren 0
Dies sieht aus wie eine sehr entfernte (keine Überarbeitungen, fehlende Formatierung uuid) des Backend-SVN-Repositorys ... (ähnlich wie bei svnadmin create $ `... können Sie es noch einmal versuchen Um sicher zu gehen, dass Sie es richtig machen, ist es möglich, dass Sie Duff-Daten erhalten. Attie vor 6 Jahren 0
Wenn Sie `file` auf einem einfachen (nicht komprimierten) Dump ausführen, sollten Sie etwa Folgendes sehen:` Subversion dumpfile (version: 2) `- Dies ist eine einzelne Datei, die in` svnadmin load 'eingegeben werden sollte Attie vor 6 Jahren 0
Hoppla, ich habe `tree` mit der` -d`-Option aus Gründen der Kürze ausgeführt ... das `db`-Verzeichnis enthält tatsächlich ein` rev \ 0 \ `-Verzeichnis, das eine Datei für jede Revision enthält. Läuft `file` auf 71, wird` 71: data` zurückgegeben. Der Versuch, diese in ein neues Repo zu importieren, führt zu `svnadmin: E140001: Fehlerhafter Dumpfile-Header 'DELTA 69 444409853 344' ' ChrisW vor 6 Jahren 0
In diesem Fall handelt es sich wahrscheinlich um ein SVN-Repository. Versuchen Sie `svn checkout file: // $ (pwd) / tmp` und sehen Sie, was passiert ... Attie vor 6 Jahren 1
@Attie ja! Es ist! Ich hatte wirklich nicht gemerkt, dass man so ein komplettes Repo exportieren könnte - zumindest weiß ich jetzt, wie eines aussieht :) ChrisW vor 6 Jahren 0
Großartige Neuigkeiten! Bitte akzeptieren Sie meine aktualisierte Antwort, wenn Sie das Gefühl haben, dass ich es verdient habe :) Attie vor 6 Jahren 0

1 Antwort auf die Frage

1
Attie

Aktualisieren:

Aus Ihren zusätzlichen Informationen ergibt sich, dass Sie ein gesamtes Backend- SVN-Repository heruntergeladen haben . Versuchen Sie es, wie in den Kommentaren erläutert, mit dem folgenden Befehl auszuchecken:

svn checkout file://$(pwd)/tmp ./checkout 

Nach Ihren zusätzlichen Informationen sieht es so aus, als hätten Sie das Falsche heruntergeladen oder der Download-Dienst ist am Ende defekt.

svnrdump sollte funktionieren, aber es lohnt sich möglicherweise, das entfernte Repository in ein lokales Repository zu spiegeln:

svnadmin create mirror echo '#!/bin/true' > mirror/hooks/pre-revprop-change chmod +x mirror/hooks/pre-revprop-change svnsync init file://$(pwd)/mirror http://subversion.assembla.com/svn/$ svnsync sync file://$(pwd)/mirror 

Leider werden Sie feststellen, dass dies auch bei / nach Revision 6 auftritt, aber es ist einen Versuch wert - vielleicht ist die Problemrevision besonders groß?

Wenn Sie svnsyncauch reisen, können Sie die problematische Revision normalerweise überprüfen?

svn checkout -r 6 http://subversion.assembla.com/svn/$ ./my_repo 

ANMERKUNG: Es ist möglich, dass Version 6 in Ordnung ist, und dass das Problem tatsächlich bei Version 7 liegt. Versuchen Sie das auch.