it-swarm.com.de

SVN - Prüfsummenkonflikt während der Aktualisierung

Wenn ich versuche, einige Dateien von Subversion zu aktualisieren, erhalte ich die Fehlermeldung:

org.tigris.Subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

Warum bekomme ich das? Wie kann ich es reparieren?

111
Koralek M.

Der einfachste Weg, das Problem zu beheben (wenn Sie nicht viele Änderungen vorgenommen haben), besteht darin, Ihre Änderungen in ein anderes Verzeichnis zu kopieren, das Verzeichnis zu löschen, in dem Ihr Projekt ausgecheckt ist, und das Projekt erneut auszuchecken.

Kopieren Sie dann Ihre Änderungen wieder in (kopieren Sie keine .svn-Ordner), bestätigen Sie Ihre Eingaben und fahren Sie fort.

64
sjakubowski

Wenn Sie SVN 1.7+ verwenden, wird eine Problemumgehung beschrieben hier

Nur zur Wiederholung:

  1. Wechseln Sie in den Ordner mit der Datei, die Probleme verursacht
  2. Führen Sie den Befehl svn update --set-depth empty aus (Hinweis: Dadurch werden Ihre Dateien gelöscht. Erstellen Sie daher zuerst eine Kopie!)
  3. Befehl ausführen svn update --set-depth infinity
183
jrd

Ich hatte ein ähnliches Problem. Hauptanbieter war Antivirus "FortiClient" (Antivirus + VPN CLient). Wenn ich es deaktiviert habe - alles Update/Checkout wurde korrekt gemacht

6
pawicek

Ich habe einen einfacheren Weg gefunden, dieses Problem zu beheben ... Sie können dies nicht direkt von Eclipse aus tun. Schritte:

  1. Navigieren Sie in Windows zur Ordnerstruktur des Arbeitsbereichs
  2. benennen Sie den Ordner um 
  3. aktualisieren Sie in Eclipse
  4. Nun werden der Ordner und die Dateien aus dem Projekt in Eclipse entfernt und unter neu umbenanntem Ordner angezeigt
  5. Versuchen Sie nun die Option "Mit Respository synchronisieren".

Dadurch wird der Textbasisordner im .svnfolder wiederhergestellt. Prüfsummenkonflikt beim Aktualisierungsfehler wird nicht weiter angezeigt.

5
Divya

Dies ist mir mit dem Eclipse-Plug-In und der Synchronisierung passiert. Die Datei, die das Problem verursacht hat, hatte keine lokalen Änderungen (und tatsächlich keine Remote-Änderungen seit meinem letzten Update). Ich habe "revert" für die Datei gewählt, ohne weitere Änderungen an den Dateien, und die Dinge sind wieder normal.

1
Jason Merecki

Ich habe eine sehr schöne Lösung gefunden, die GELÖST mein Problem. Der Trick besteht darin, die svn-DB (wc.db) zu bearbeiten.

Die Lösung wird auf dieser Seite beschrieben: http://www.exchangeconcept.com/2015/01/svn-e155037-previous-operation-has-not-finished-run-cleanup-if-it-was-rupt-/

Wenn der Link nicht funktioniert, schauen Sie einfach nach und befolgen Sie diese Anweisungen: enter image description here

Ich habe das sqlite-Tool von http://sqlitebrowser.org/ verwendet.

1
Alexei Bondarev

Ich hatte den gleichen Fehler aber für eine Datei. In IntelliJ IDEA konnte ich eine Kopie der Datei erstellen, dann in das Projekt gehen und die betreffende Datei löschen, dann die Festschreibung erfolgreich ausführen. Dann habe ich eine neue Datei mit demselben Namen erstellt und den Inhalt wieder in diese kopiert. Ich denke, Sie würden die Revisionshistorie verlieren, aber es funktioniert.

1

hatte ein ähnliches Problem auf einem Server, aber das SVN-Verzeichnis war sehr groß, wollte nicht löschen und erneut synchronisieren, also habe ich nur eine Kopie der Dateien lokal erstellt und sie dann gelöscht. Wenn das Update erfolgreich war und Dateien wieder hinzugefügt wurden.

0
rocketdoctor

versuchen Sie, die Datei zu löschen, und entfernen Sie den Dateiverweis aus den Dateieinträgen im Verzeichnis .svn

0
mocia

Ich hatte einen ähnlichen Fehler und wie folgt behoben:

(Mein "Fix" basiert auf einer Annahme, die möglicherweise nicht korrekt ist, da ich nicht so viel darüber weiß, wie Subversion intern funktioniert, aber es funktionierte definitiv für mich.)

Ich gehe davon aus, dass erwartet wird, dass .svn\text-base\import.php.svn-base dem letzten Commit entspricht.

Bei der Überprüfung der Datei, in der der Fehler aufgetreten war, stimmte die Basisdatei NICHT mit dem letzten Commit im Repository überein.

Ich habe den Text aus dem letzten Commit kopiert und im Ordner .svn gespeichert. Dabei wurde die falsche Datei ersetzt (eine Sicherungskopie erstellt, falls meine Annahmen falsch waren). (Datei war als schreibgeschützt markiert, ich habe das Flag gelöscht, überschrieben und wieder auf schreibgeschützt gesetzt.)

Ich konnte mich dann erfolgreich verpflichten.

0
mendel

1. Aktualisieren, um 'Nur diesen Punkt überprüfen' im Verzeichnis .__ zu deaktivieren.

0
sevenpounds

Meine Lösung war:

  1. Führen Sie die svn-Bereinigung über das Dateisystem aus
  2. Wechseln Sie zu einem anderen Zweig
  3. Konflikte lösen
  4. Wechseln Sie in den Zweig "problematisch"
  5. Führen Sie die Bereinigung von Spring Tool Suite aus
  6. Projektaktualisierung durchführen
0
Alessandro C

Wenn Sie einen Kollegen haben, der mit Ihnen zusammenarbeitet:

1) bitten Sie ihn, die Datei umzubenennen, die Probleme verursacht, und commit

2) Sie update (jetzt sehen Sie die Datei mit ungültiger Prüfsumme mit anderem Namen)

3) benennen Sie es wieder in seinen ursprünglichen Namen um

4) commit (und bitten Sie Ihren Kollegen um update, um den Dateinamen wieder in den Ausgangszustand zu bringen)

Dies hat das Problem für mich gelöst.

0
Petko Kostov

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:

  1. Öffnen Sie die Eintragsdatei im .svn-Verzeichnis, in dem Sie den Fehler erhalten.
  2. Suchen Sie den Eintrag für die fehlerhafte Datei und ersetzen Sie den erwarteten Wert durch den tatsächlichen Fehlerwert.
  3. Jetzt synchronisieren und aktualisieren. 

Wenn es immer noch nicht klappt. Probiere diese. Es ist nur ein Workaround:

  1. Löschen Sie die Datei von Ihrem System.
  2. Löschen Sie den Eintrag der Datei aus der Eintragsdatei. (Beginnend vom Dateinamen bis zu den Sonderzeichen).
  3. Jetzt synchronisieren und aktualisieren Sie die Datei. 

Dadurch wird die neueste Version der Datei aus dem Repository abgerufen, und alle Konflikte werden gelöst.

0
DeepInJava

Ich verwende Tortoise SVN, nachdem ich alle Lösungen auf dieser Seite ausprobiert habe und nicht funktioniert habe.

Ich habe endlich die Problemdatei gesichert. Verwenden Sie Repo Browser, um die darin enthaltene Problemdatei zu löschen, und aktualisieren Sie dann den lokalen Ordner, sodass die Datei im lokalen Ordner gelöscht wird. Kopieren Sie dann die Sicherungsdatei und Add > Commit zurück, dann kann ich erfolgreich aktualisieren.

Der einzige Nachteil dieser Methode ist, dass der Verlauf dieser Datei entfernt wird.

0
yu yang Jian