it-swarm.com.de

svn cleanup: sqlite: Das Image der Datenbankfestplatte ist fehlerhaft

Ich habe versucht, einen svn cleanup auszuführen, da ich die Änderungen in meiner Arbeitskopie nicht festschreiben kann. Folgende Fehlermeldung wurde angezeigt: 

sqllite: Das Image der Datenbankfestplatte ist fehlerhaft

Cleanup failed to process the following paths

Was kann ich jetzt machen?

85
Rubens Mariuzzo

Ich hatte das gleiche Problem. Der folgende Blogbeitrag half mir dabei, das Problem zu lösen: http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html

Sie führen eine Integritätsprüfung der sqlite-Datenbank durch, die das Repository verfolgt (/.svn/wc.db):

sqlite3 .svn/wc.db "pragma integrity_check"

Das sollte einige Fehler melden.

Dann können Sie sie aufräumen, indem Sie Folgendes tun:

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

Wenn danach immer noch Fehler auftreten, haben Sie immer noch die Möglichkeit, eine neue Kopie des Repositorys in einen temporären Ordner auszuchecken und den .svn-Ordner aus der neuen Kopie in die alte zu kopieren. Dann sollte die alte Kopie wieder funktionieren und Sie können den temporären Ordner löschen.

88
HenningJ

Integritätsprüfung

sqlite3 .svn/wc.db "pragma integrity_check"

Aufräumen

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

Alternative

Möglicherweise können Sie den Inhalt der Datenbank, der gelesen werden kann, in eine Sicherungsdatei speichern und sie dann in eine neue Datenbankdatei zurückholen:

sqlite3 .svn/wc.db

sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit

mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db

sqlite> .read dump_all.sql
sqlite> .exit
17
matt burns

Die SVN-Bereinigung hat nicht funktioniert. Der SVN-Ordner auf meinem lokalen System wurde beschädigt. Also habe ich einfach den Ordner gelöscht, einen neuen erstellt und von SVN aktualisiert. Das hat das Problem gelöst!

16
EmKay

Ich habe den .svn-Ordner aus dem Verzeichnis meines Kollegen kopiert und das Problem wurde behoben.

12
user3884070

Nach einem Stromausfall stieß ich auf den database-Datenträgerabbild mit einem fehlerhaften -Fehler, und der vorgeschlagene Befehl zum Neuindexieren von Knoten konnte nicht alle Probleme aufgrund von verletzten Einschränkungen beheben. Auch das in http://mail-archives.Apache.org/mod_mbox/Subversion-users/201111.mbox/%[email protected]%3E beschriebene Verfahren konnte das Problem nicht lösen.

Lösung in meinem Fall:

  • Überprüfen Sie das SVN-Repository erneut in einen temporären Ordner
  • Kopieren Sie die Datei ".svn/wc.db" aus dem neuen Checkout in den beschädigten

Dies kann nützlich sein, wenn Ihre ursprüngliche SVN-Kasse viele modifizierte oder nicht versionierte Dateien enthält und Sie nicht zu einer neuen SVN-Kasse wechseln möchten. 

12
Thomas853

Vielleicht könnte eine Lösung sein:

  1. rechter Mausklick über Projekt
  2. team -> trennen
  3. Wählen Sie: Auch löschen ...

Verbinden Sie sich jetzt erneut:

  1. rechter Mausklick über Projekt
  2. team -> Projekt teilen
  3. wähle deine repositorie aus: meine SVN
  4. wählen Sie Ihren repositorie-Ordner aus

Hinweis:  

In meinem Fall habe ich eine Sicherungskopie meiner Dateien erstellt. (sicher ur zurück: P)

Bearbeiten:  

Ich spreche über SVN plugin auf Eclipse :)

2
mfruizs2

Ich habe mein Problem mit der Korruption von svn server rep-cache.db gelöst.

Es gibt zwei Lösungen.

Beenden Sie den Visual SVN Server-Dienst.

Laden Sie die sqllite3.exe-Shell von der sqllite-Website herunter und kopieren Sie diese in den db-Ordner des Repos.

Geben Sie die folgenden Befehle an der Eingabeaufforderung im Datenbankordner des Repos ein.

- Erste Lösung -

sqlite3 rep-cache.db

.clone rep-cache-new.db

drücke ctrl + c, um sqllite zu verlassen.

ren rep-cache.db rep-cache-old.db

ren re-cache-new.db rep-cache.db

- 2. Lösung -

Löschen Sie die rep-cache.db

del rep-cache.db

es wird automatisch erstellt.

Verschwenden Sie nicht Ihre Zeit mit checking integrity oder dem Löschen von Daten aus der work queue-Tabelle, da dies temporäre Lösungen sind und Sie nach einer Weile zurückschlagen werden.

Führen Sie einfach ein anderes checkout aus und ersetzen Sie den vorhandenen .svn-Ordner durch den neuen. Machen Sie eine update und dann sollte es glatt gehen. 

1
Jawad Khan

Ich habe dieses Problem behoben, indem ich den versteckten .svn-Ordner löschte und dann den Ordner unter derselben URL auscheckte.

Dabei wurden keine meiner modifizierten Dateien überschrieben und stattdessen nur die vorhandenen Dateien versioniert, anstatt neue Kopien vom Server zu beziehen.

1
David Liljeblad

In all meinen Recherchen habe ich 2 praktikable Lösungen gefunden.

  1. Wenn Sie irgendeine Art von Verbindungen verwenden, ssh, samba, mounten, trennen/aushängen und erneut verbinden/neu mounten. Versuchen Sie es noch einmal, dadurch wurde das Problem oft für mich gelöst. Danach können Sie svn cleanup durchführen oder einfach normal weiterarbeiten (je nachdem, wann das Problem aufgetreten ist). Beim Neustart meines Computers wurde das Problem auch einmal behoben. Ja, es ist dumm, ich weiß!

  2. Manchmal müssen Sie nur Ihre Dateien rm -rf speichern (oder, wenn Sie mit dem Begriff nicht vertraut sind, löschen Sie einfach Ihren svn-Ordner) und überprüfen Sie Ihr svn-Repository erneut. Bitte beachten Sie, dass dadurch das Problem nicht immer gelöst wird und Sie möglicherweise auch Änderungen haben, die Sie nicht verlieren möchten. Deshalb benutze ich es als zweite Option.

Hoffe das hilft euch Jungs!

1
Psykehoe
  1. schauen Sie sich dieses SVN an einem anderen Ort an
  2. verborgene .svn-Datei anzeigen
  3. wc-Datei ersetzen

das funktioniert für mich!

1
Kaikai

Hast du diesen Beitrag auf der Subversion-Site gesehen? Sie können möglicherweise auch versuchen, die Datenbank direkt zu validieren und zu "reparieren", wie in hier beschrieben. (Beachten Sie, dass ich kein Experte bin. Ich habe nur eine schnelle Google-Suche durchgeführt. Möglicherweise hängt dies nicht mit Ihren Problemen zusammen).

Ich persönlich würde versuchen, das Repo erneut auszuchecken und die Änderungen erneut anzuwenden. Sie sind sich nicht sicher, ob dies in Ihrem Fall möglich ist?

1
Mightymuke

Wenn Sie den Tortoise-SVN installieren, gehen Sie zum Task-Manager und stoppen Sie ihn. __ Versuchen Sie dann, den Ordner zu löschen. es wird klappen

0
Ramesh Babu

sie brauchen sich keine Sorgen um ein Verzeichnis zu machen.

Sie müssen nur Folgendes tun: Wenn sqllite3 nicht installiert ist, geben Sie folgenden Befehl ein:

>Sudo apt-get install sqlite3

Öffnen Sie die SVN-Datenbank, indem Sie diesen Befehl eingeben.

>sqlite3 .svn/wc.db 

Jetzt müssen Sie nur noch Sperreneinträge aus der SVN-DB entfernen.

sqlite>  select * from wc_lock;
1|-1           
sqlite>  delete from wc_lock;
sqlite>  select * from wc_lock;
sqlite>  .q

Prozess abgeschlossen. Sie können problemlos an Ihrem SVN-Repository arbeiten, Commits ausführen, aktualisieren, hinzufügen oder entfernen.

:-)

0
mukesh bhoj