SVN-несоответствие контрольной суммы при обновлении

когда я пытаюсь обновить некоторые файлы из Subversion, я получаю сообщение об ошибке:

org.tigris.subversion.javahl.ClientException: 
Checksum mismatch while updating 'D:WWWProject.svntext-baseimport.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'

почему я получаю это? Как я могу это исправить?

15 ответов


самый простой способ исправить это (если у вас нет много изменений) - скопировать изменения в другой каталог, удалить каталог, в котором ваш проект извлечен, и снова проверить проект.

затем скопируйте изменения обратно (не копируйте их .SVN folders)и совершить, и продолжить.


в случае, если вы используете SVN 1.7+, описан обходной путь здесь.

для справки:

  1. перейдите в папку с файлом, вызывающим проблемы
  2. выполнить команду svn update --set-depth empty (внимание: это удалит ваши файлы, поэтому сначала сделайте копию!)
  3. выполнить команду svn update --set-depth infinity

эти шаги хорошо сработали для меня

  1. перейдите в папку с файлом, вызывающим проблемы

  2. выполнить команду svn update --set-depth empty (Примечание: это будет удалите свои файлы, поэтому сначала сделайте копию!)

  3. выполнить команду svn update --set-depth infinity

но может кто-нибудь сказать мне, почему это происходит? любая конкретная первопричина для этого, поскольку у меня очень большое РЕПО, и делать это все время трудно, а свежий checkout-нет вариант как РЕПО большой.


У меня была проблема с simllar. Основным провайдером был антивирус "FortiClient" (антивирус + VPN клиент). Когда я отключил его - все обновления / проверки были сделаны правильно


Я нашел более простой способ решения этой проблемы. Вы не можете сделать это непосредственно из eclipse. Шаги:

  1. перейдите к структуре папок рабочей области в windows
  2. переименовать папку
  3. обновить в eclipse
  4. Теперь папка и файлы будут удалены из проекта в eclipse и появятся под новой переименованной папкой
  5. Теперь попробуйте "синхронизировать с Respository" вариант.

это восстановит базовую папку text в.svnfolder . Несоответствие контрольной суммы при обновлении ошибки больше не появится.


Это произошло со мной с помощью плагина Eclipse и синхронизации. Файл, вызывающий проблему, не имел локальных изменений (и фактически никаких удаленных изменений с момента моего последнего обновления). Я выбрал "revert" для файла, без каких-либо других изменений в файлах, и все вернулось в норму.


У меня была такая же ошибка, но на один файл. В IntelliJ IDEA я смог сделать копию файла, затем войти в проект и удалить файл, о котором идет речь, а затем успешно зафиксировать. Затем я сделал новый файл с тем же именем и скопировал в него содержимое. Я думаю, вы потеряете историю изменений, но она работает.


чтобы решить эту проблему, выполните следующие действия:

  1. откройте файл записей, расположенный в .SVN каталог, в котором вы получаете ошибку.
  2. найдите запись для файла, дающего ошибку, и замените ожидаемое значение фактическим значением по ошибке.
  3. Теперь синхронизировать и попытаться обновить.

Если он все еще не работает. Попробовать это. Его просто обходной путь, хотя:

  1. удалить файл из система.
  2. удалить запись файла из файла записей. (Начиная с имени файла и заканчивая специальными символами).
  3. Теперь синхронизировать и обновить файл.

Это получит последнюю версию файла из репозитория, и все конфликты будут разрешены.


была аналогичная проблема на сервере, но каталог SVN был очень большим, не хотел удалять и повторно синхронизировать, поэтому я просто сделал копию файлов локально, а затем удалил их. Когда обновление завершилось успешно и добавлены файлы обратно.


попробуйте удалить файл и удалить ссылку файл из записей файла по .каталог СВН


У меня была похожая ошибка и исправлена следующим образом:

(мое "исправление" основано на предположении, которое может быть или не быть правильным, поскольку я не знаю, как subversion работает внутри, но это определенно сработало для меня)

Я предполагаю, что .svn\text-база\импорт.РНР.ожидается, что svn-base будет соответствовать последней фиксации.

когда я проверил файл, в котором у меня была ошибка, базовый файл не соответствовал последней фиксации в хранилище.

Я скопировал текст из последней фиксации и сохранил его в .SVN, заменив неправильный файл (сделал резервную копию в случае, если мои предположения были неправильными). (файл был отмечен только для чтения, я очистил этот флаг, переписал и вернул его только для чтения)

Я был в состоянии успешно совершить.


если у вас есть коллега, с вас:

1) попросите его переименовать файл, вызывающий проблемы и commit

2) вы update (теперь вы видите файл с недопустимой контрольной суммой с другим именем)

3) переименовать его обратно в исходное имя

4) commit (и попросите коллегу update чтобы вернуть файл в исходное состояние)

это решило проблему для меня.


Я нашел очень хорошее решение, что решить моя проблема. Хитрость заключается в редактировании SVN DB (wc.децибел.)

решение описано на этой странице : http://www.exchangeconcept.com/2015/01/svn-e155037-previous-operation-has-not-finished-run-cleanup-if-it-was-interrupted/

Если ссылка не работает, просто посмотрите и следуйте этим инструкциям: enter image description here

Я использовал инструмент sqlite из http://sqlitebrowser.org/.


мое решение было:

  1. выполнить очистку svn из файловой системы
  2. переключиться на другую ветку
  3. разрешать конфликты
  4. переключиться на" проблемную " ветку
  5. выполнить очистку из Spring Tool Suite
  6. Выполнить Обновление Проекта

1."обновить до реверсии "проверьте" только этот элемент " в каталоге 2.обновление еще раз проверьте "полностью рекурсивный"