2009-07-20 17 views
4

Ich kann nicht herausfinden, warum ich diesen Fehler beim Check-in bekomme. Ich habe in nur erfolgreich, vor ein paar Stunden so nicht sicher, warum jetzt ist esSchildkröte Check-in Fehler Checksum Mismatch

Error: Commit failed (details follow): 
Error: Checksum mismatch for 
Error: 'C:\sss\sss\trunk\xxxx\.svn\text-base\Header.ascx.svn-base'; expected: 
Error: '3cee96f580409a1711a47541a07860dd', actual: 'a5fc0f8819b88bf32ab38d4c9a6b0654' 
Error: Try a 'Cleanup'. If that doesn't work you need to do a fresh checkout. 

beschweren Ich habe letzte und führte auch eine Clean-up, die die erfolgreich so nicht sicher, was anderes zu tun.

Antwort

9

Irgendetwas ist nicht mehr synchron oder korrupt geworden, und weil es in Ihrem .svn BASE-Verzeichnis ist, ist es wahrscheinlich besser, das übergeordnete Element des .svn-Verzeichnisses zu löschen und dann auszuführen, wenn Sie nicht damit experimentieren ein Update. Natürlich, nehmen Sie eine Sicherungskopie oder sehen Sie, ob ein Export funktioniert, bevor Sie dies tun, damit Sie keine Änderungen verlieren.

FWIW, bekomme ich dies manchmal mit unseren Bibliotheksreferenzen wo Visual Studio scheint einige Dateien (auch wenn es nicht kompiliert) zu sperren und lässt mich nicht aktualisieren. Ich glaube, das hängt mit den XML-Dokumentationsdateien zusammen.

Hinweis: Subversion 1.7+ implementiert eine neue working copy approach, die die Meta-Daten zentralisiert, und es hat jetzt ein einziges Verzeichnis .svn an der Wurzel Ihrer Arbeitskopie. Ihre beste Wette ist eine Bereinigung, fehlgeschlagen, dass ein neues Auschecken in ein anderes Verzeichnis und exportieren oder kopieren Sie die beschädigte Arbeitskopie mit Ausnahme des .svn-Verzeichnisses, um zum frischen Auschecken und alle lokalen Änderungen zu committen.

+0

Sie sagen also, löschen Sie den übergeordneten .svn-Ordner? – PositiveGuy

+0

Ich habe meine Eltern .svn gelöscht, aber dann verlieren Sie den Update-Befehl in Ihrem Kontextmenü ..? – PositiveGuy

+0

> Außerdem habe ich festgestellt, dass xxxx.svn seinen Namen für SO geändert hat, weil es normalerweise nur .svn ist. Es war ein Buchungsproblem, ich wickelte den Fehler oben in Code-Tags, die den echten Fehler macht, wie ich es sah – PositiveGuy

3

Sieht aus wie eine Ihrer SVN-Dateien beschädigt ist. Zuerst checken Sie alles ein, was sicher eingecheckt werden kann, und stellen Sie sicher, dass alles gesichert wird. Dann beheben Sie die anstößige Datei - in der Regel müssen Sie sie aus Ihrem Repository löschen. Dies sollte in Ordnung sein, wenn Sie trotzdem eine neue Version einchecken.

+1

Sind Sie sicher, dass Sie es aus dem Repository löschen müssen? Es sieht so aus, als ob nur die Arbeitskopie beschädigt ist. Außerdem ist die Datei die BASE-Kopie in .svn, normalerweise wollen Sie nicht mit diesem Verzeichnis herumspielen. – si618

+0

Ich stimme zu. Es ist besser, die Eltern zu löschen und neu zu aktualisieren. – bkritzer

+0

aber wie kann ich einchecken, wenn es sich um ein atomares Commit handelt, wenn Sie an der Basis committen? – PositiveGuy

0

Ich erhielt einen ähnlichen Fehler, nachdem unser Projekt-Repository auf einen neuen Server verschoben wurde. Versuchen Sie, Ihre Datei zurückzusetzen und Ihre Änderungen erneut anzuwenden.

+0

Ich war in der gleichen Situation (Repo auf einen neuen Server verschoben) und versuchte dies, aber es hat nicht funktioniert. Ich musste die beleidigende Datei aus dem Repo löschen und neu hinzufügen. – kmoser

0

Ich hatte das gleiche Problem nach dem googeln für einige Hilfe gefunden Artikel, die vorgeschlagen, die Prüfsumme in der .svn \ Einträge Datei überschreiben. Aber in dieser Datei war die Prüfsumme tatsächlich die erwartete in der Fehlermeldung.

Um das Problem zu beheben, navigierte ich zu .svn \ text-base Verzeichnis der Problemdatei und fand heraus, dass es eine Kopie der Datei gibt, ich versuchte, Änderungen für zu überprüfen. Ich habe diese Datei in Notepad ++ geöffnet und den Inhalt der Datei mit dem Inhalt der zu ersetzenden Datei ersetzt und konnte anschließend committen. Erstellen Sie eine Sicherungskopie der Datei .svn \ text-base. Ich glaube, das passierte, weil ich vor dem Commit ein Svn-Update gemacht habe, weil es sich beschwert hat, dass meine Version veraltet ist. Wie auch immer, es ist für mich behoben und ich hoffe, meine Lösung hilft auch anderen.