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+, описан обходной путь здесь.
для справки:
- перейдите в папку с файлом, вызывающим проблемы
- выполнить команду
svn update --set-depth empty
(внимание: это удалит ваши файлы, поэтому сначала сделайте копию!) - выполнить команду
svn update --set-depth infinity
эти шаги хорошо сработали для меня
перейдите в папку с файлом, вызывающим проблемы
выполнить команду
svn update --set-depth empty
(Примечание: это будет удалите свои файлы, поэтому сначала сделайте копию!)выполнить команду
svn update --set-depth infinity
но может кто-нибудь сказать мне, почему это происходит? любая конкретная первопричина для этого, поскольку у меня очень большое РЕПО, и делать это все время трудно, а свежий checkout-нет вариант как РЕПО большой.
У меня была проблема с simllar. Основным провайдером был антивирус "FortiClient" (антивирус + VPN клиент). Когда я отключил его - все обновления / проверки были сделаны правильно
Я нашел более простой способ решения этой проблемы. Вы не можете сделать это непосредственно из eclipse. Шаги:
- перейдите к структуре папок рабочей области в windows
- переименовать папку
- обновить в eclipse
- Теперь папка и файлы будут удалены из проекта в eclipse и появятся под новой переименованной папкой
- Теперь попробуйте "синхронизировать с Respository" вариант.
это восстановит базовую папку text в.svnfolder . Несоответствие контрольной суммы при обновлении ошибки больше не появится.
Это произошло со мной с помощью плагина Eclipse и синхронизации. Файл, вызывающий проблему, не имел локальных изменений (и фактически никаких удаленных изменений с момента моего последнего обновления). Я выбрал "revert" для файла, без каких-либо других изменений в файлах, и все вернулось в норму.
У меня была такая же ошибка, но на один файл. В IntelliJ IDEA я смог сделать копию файла, затем войти в проект и удалить файл, о котором идет речь, а затем успешно зафиксировать. Затем я сделал новый файл с тем же именем и скопировал в него содержимое. Я думаю, вы потеряете историю изменений, но она работает.
чтобы решить эту проблему, выполните следующие действия:
- откройте файл записей, расположенный в .SVN каталог, в котором вы получаете ошибку.
- найдите запись для файла, дающего ошибку, и замените ожидаемое значение фактическим значением по ошибке.
- Теперь синхронизировать и попытаться обновить.
Если он все еще не работает. Попробовать это. Его просто обходной путь, хотя:
- удалить файл из система.
- удалить запись файла из файла записей. (Начиная с имени файла и заканчивая специальными символами).
- Теперь синхронизировать и обновить файл.
Это получит последнюю версию файла из репозитория, и все конфликты будут разрешены.
была аналогичная проблема на сервере, но каталог 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/
Если ссылка не работает, просто посмотрите и следуйте этим инструкциям:
Я использовал инструмент sqlite из http://sqlitebrowser.org/.
мое решение было:
- выполнить очистку svn из файловой системы
- переключиться на другую ветку
- разрешать конфликты
- переключиться на" проблемную " ветку
- выполнить очистку из Spring Tool Suite
- Выполнить Обновление Проекта
1."обновить до реверсии "проверьте" только этот элемент " в каталоге 2.обновление еще раз проверьте "полностью рекурсивный"