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
Was kann ich jetzt machen?
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.
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
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
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!
Ich habe den .svn-Ordner aus dem Verzeichnis meines Kollegen kopiert und das Problem wurde behoben.
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:
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.
Vielleicht könnte eine Lösung sein:
Verbinden Sie sich jetzt erneut:
repositorie
aus: meine SVN
repositorie
-Ordner ausHinweis:
In meinem Fall habe ich eine Sicherungskopie meiner Dateien erstellt. (sicher ur zurück: P)
Bearbeiten:
Ich spreche über SVN
plugin auf Eclipse
:)
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.
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.
In all meinen Recherchen habe ich 2 praktikable Lösungen gefunden.
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ß!
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!
das funktioniert für mich!
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?
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
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.
:-)