Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Затем скопируйте свои изменения (не копируйте папки .svn) и не совершайте и продолжайте.

Ответ 2

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

Просто чтобы наброситься:

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

Ответ 3

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

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

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

  • Выполнить команду svn update --set-depth infinity

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

Ответ 4

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

Ответ 5

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

  • Перейдите к структуре папок рабочего пространства в окнах
  • переименовать папку
  • Обновить в eclipse
  • Теперь папка и файлы будут удалены из проекта в eclipse и появятся в новой переименованной папке
  • Теперь попробуйте вариант "Синхронизировать с репозиторием".

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

Ответ 6

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

Ответ 7

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

Ответ 8

Если у вас есть коллега, работающий с вами:

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

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

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

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

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

Ответ 9

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

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

Если ссылка отсутствует, просто посмотрите и следуйте этим инструкциям: введите описание изображения здесь

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

Ответ 10

Я использую Tortoise SVN, после того, как выложили все решения на этой странице и не работают,

Я наконец резервное копирование файла проблемы. и используйте Repo Browser, удалите файл проблемы в нем, затем обновите локальную папку, чтобы удалить файл в локальной папке. Затем скопируйте обратно файл резервной копии и Add > Commit, после чего я смогу успешно обновить.

Единственный недостаток этого метода - история этого файла будет удалена.

Ответ 11

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

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

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

  • Удалите файл из вашей системы.
  • Удалить запись файла из файла записей. (Начиная с имени файла до специальных символов).
  • Теперь синхронизировать и обновлять файл.

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

Ответ 12

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

Ответ 13

попробуйте удалить файл и удалить ссылку на файл из записей файла в каталоге .svn

Ответ 14

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

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

Я предполагаю, что .svn\text-base\import.php.svn-base будет соответствовать последней фиксации.

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

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

Затем я смог успешно выполнить.

Ответ 15

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

  • Выполнение svn очистки из файловой системы
  • Переключиться на другую ветку
  • Решить конфликты
  • Перейдите в "проблемную" ветвь
  • Выполнить очистку из Spring Tool Suite
  • Выполнение обновления проекта

Ответ 16

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