SVN - Prüfsummenfehlanpassung während der Aktualisierung


122

Wenn ich versuche, einige Dateien von Subversion zu aktualisieren, wird folgende Fehlermeldung angezeigt:

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?

Antworten:


70

Der einfachste Weg, dies zu beheben (wenn Sie nicht viele Änderungen 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), schreiben Sie fest und fahren Sie fort.


9
Ich habe gerade den Ordner gelöscht, in dem sich eine Problemdatei befand, und das gesamte Projekt aktualisiert. Jetzt scheint es in Ordnung zu sein.
Koralek M.

+1 Die andere Alternative, die ich gefunden habe, hat mich viel einfacher
gehackt,

@ SeanDowney wie geht das?
Arvindwill

@arvindwill Sorry, ich war in meinem Kommentar nicht sehr klar, diese Methode ist viel einfacher. Hier ist die beängstigende Alternative: maymay.net/blog/2008/06/17/…
SeanDowney

2
Dies ist überhaupt keine spezifische Lösung. Sie können jederzeit alle Ihre lokalen Daten löschen und mit einer neuen Kopie aus dem Repo beginnen.
Tim

197

Falls Sie SVN verwenden 1.7+ gibt es eine Abhilfe beschrieben hier .

Nur um es noch einmal zusammenzufassen:

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

17
Während dies für mich funktionierte, wird "svn update --set-depth empty" alles von diesem Pfad löschen, also erst eine Kopie
erstellen

3
Dies funktionierte hervorragend, um ein riesiges Repository an einem entfernten Ort zu reparieren. Während eine neue Kaufabwicklung funktioniert hätte, hätte es über eine Stunde gedauert; das dauerte Minuten.
Brian Gillespie

Hallo, ich habe Fenster und Schildkröten als SVN-Client verwendet. Ich habe Ihre Lösung ausprobiert. Aber es zeigt immer noch die isse
Amit Bera

Gerade ersetzt .svn Verzeichnis vom neuen Repository zum alten, es hat funktioniert :)
harishkumar329

Das hat super für mich funktioniert, danke! Es ist erwähnenswert, dass Punkt 1 darin besteht, einen Drilldown zu dem tatsächlichen Ordner (oder der Datei) durchzuführen, der / die das Problem verursacht. Dann müssen Sie nicht viel aktualisieren. Ich hatte einen Ordner mit ein paar Dutzend Dateien, in dem ich Tortoise "Update To-> only this item" für den Ordner und dann "Update To-> vollständig rekursiv" verwendet habe, um alles zurückzubekommen. Trotzdem sollten alle aufpassen, dass dadurch die Dateien in diesem Ordner gelöscht werden! Bei einer langsamen VPN-Verbindung mit einem Repo von vielen Gigabyte und fein abgestimmten Set-Tiefen war die "Standard" -Lösung einfach nutzlos.
Dash-Tom-Bang

6

Ich hatte ein ähnliches Problem. Hauptanbieter war Antivirus "FortiClient" (Antivirus + VPN CLient). Als ich es deaktiviert habe, wurden alle Updates / Checkout korrekt durchgeführt


1
Dies ist die einzige Antwort, die mein Problem gelöst hat. Daran konnte ich nie denken. Vielen Dank!
Zeit

5

Ich habe einen einfacheren Weg gefunden, um 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. In Eclipse aktualisieren
  4. Jetzt werden der Ordner und die Dateien in Eclipse aus dem Projekt entfernt und unter einem neuen umbenannten Ordner angezeigt
  5. Versuchen Sie nun die Option "Mit Respository synchronisieren".

Dadurch wird der Textbasisordner in .svnfolder wiederhergestellt. Die Nichtübereinstimmung der Prüfsumme beim Aktualisieren des Fehlers wird nicht weiter angezeigt.


1

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 für die Datei "Zurücksetzen" gewählt, ohne weitere Änderungen an den Dateien vorzunehmen, und die Dinge haben sich wieder normalisiert.


1

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 und dann erfolgreich festschreiben. Dann habe ich eine neue Datei mit demselben Namen erstellt und den Inhalt wieder in ihn kopiert. Ich denke, Sie würden den Revisionsverlauf verlieren, aber es funktioniert.


1

Wenn Sie einen Kollegen haben, der mit Ihnen zusammenarbeitet:

1) Bitten Sie ihn, die Datei umzubenennen, was zu Problemen führt, und commit

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

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

4) commit(und bitten Sie updateIhren Kollegen, den Dateinamen wieder in den Ausgangszustand zu versetzen)

Dies löste das Problem für mich.



1

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

Ich habe endlich die Problemdatei gesichert. Verwenden Sie Repo BrowserLöschen der darin enthaltenen Problemdatei und aktualisieren Sie dann den lokalen Ordner, sodass die Datei im lokalen Ordner gelöscht wird. Dann kopiere die Sicherungsdatei zurück und Add > Commitdann kann ich erfolgreich aktualisieren.

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


0

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

  1. Öffnen Sie die Eintragsdatei im Verzeichnis .svn, in dem der Fehler angezeigt wird.
  2. Suchen Sie den Eintrag für die fehlerhafte Datei und ersetzen Sie den erwarteten Wert durch den tatsächlichen fehlerhaften Wert.
  3. Jetzt synchronisieren und versuchen zu aktualisieren.

Wenn es immer noch nicht funktioniert. Probiere diese. Es ist jedoch nur eine Problemumgehung:

  1. Löschen Sie die Datei von Ihrem System.
  2. Löschen Sie den Eintrag der Datei aus der Eintragsdatei. (Ausgehend vom Namen der Datei 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

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


0

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


0

Ich hatte einen ähnlichen Fehler und habe ihn wie folgt behoben:

(Mein 'Fix' basiert auf einer Annahme, die möglicherweise richtig ist oder nicht, da ich nicht so viel darüber weiß, wie Subversion intern funktioniert, aber es hat definitiv bei mir funktioniert.)

Ich gehe davon aus, dass .svn \ text-base \ import.php.svn-base voraussichtlich mit dem letzten Commit übereinstimmt.

Als ich die Datei überprüfte, für die ich den Fehler hatte, 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 und dabei die falsche Datei ersetzt (eine Sicherungskopie erstellt, falls meine Annahmen falsch waren). (Datei wurde als schreibgeschützt markiert, ich habe dieses Flag gelöscht, überschrieben und auf schreibgeschützt zurückgesetzt)

Ich konnte mich dann erfolgreich festlegen.


0

Meine Lösung war:

  1. Führen Sie die SVN-Bereinigung aus dem 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 ausführen

0

1. 'Auf Umkehrung aktualisieren' Nur dieses Element 'im Verzeichnis' überprüfen '2.Um Update erneut' Vollständig rekursiv '

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.