Я пытался сделать svn cleanup
, потому что я не могу зафиксировать изменения в моей рабочей копии, и я получил следующую ошибку:
sqllite: образ диска базы данных неверен
Что я могу сделать прямо сейчас?
Я пытался сделать svn cleanup
, потому что я не могу зафиксировать изменения в моей рабочей копии, и я получил следующую ошибку:
sqllite: образ диска базы данных неверен
Что я могу сделать прямо сейчас?
У меня была та же проблема. Следующее сообщение в блоге помогло мне решить эту проблему: http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html
Выполняется проверка целостности базы данных sqlite, которая отслеживает репозиторий (/.svn/wc.db):
sqlite3 .svn/wc.db "pragma integrity_check"
Это должно сообщить о некоторых ошибках.
Затем вы можете очистить их, выполнив следующие действия:
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Если после этого все еще есть ошибки, у вас все еще есть возможность проверить новую копию хранилища во временную папку и скопировать папку .svn из новой копии в старую. Затем старая копия должна работать снова, и вы можете удалить временную папку.
Очистка SVN не работает. Папка SVN на моей локальной системе повреждена. Поэтому я просто удалил папку, воссоздал новую и обновил из SVN. Это решило проблему!
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Возможно, вы сможете сбросить содержимое базы данных, которая может быть прочитана в файл резервной копии, а затем вернуть ее обратно в новый файл базы данных:
sqlite3 .svn/wc.db
sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit
mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db
sqlite> .read dump_all.sql
sqlite> .exit
Я скопировал папку .svn из моего рабочего каталога однорангового узла и исправил проблему.
После отключения электроэнергии я столкнулся с ошибкой в образе диска базы данных, и предлагаемая команда узлов реиндекса не устранила все проблемы из-за нарушенных ограничений. Также процедура, описанная в http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%[email protected]%3E, не решила проблему.
Решение в моем случае:
Это может быть полезно, если ваш оригинальный svn checkout содержит много измененных или неверсированных файлов, и вы не хотите переключаться на новую проверку svn.
Возможно, может быть решение:
Теперь снова подключитесь снова:
repositorie
: mine SVN
(в другом случае: git и т.д.)repositorie
Примечание:
В моем случае я сделал резервную копию своих файлов. (безопасный ур назад: P)
Изменить:
Я говорю о плагине SVN
на Eclipse
:)
Вы видели этот пост на сайте subversion? Вы также можете попытаться проверить и "исправить" базу данных напрямую, как описано здесь. (Заметьте, что я не эксперт, я просто сделал быстрый поиск в Google. Возможно, не связан с вашими проблемами).
Лично я попробую снова проверить репо и повторно применить ваши изменения. Не уверен, что это возможно, хотя в вашем случае?
В ходе моих исследований я нашел 2 жизнеспособных решения.
Если вы используете какие-либо соединения, ssh, samba, монтируете, отсоединяете/размонтируете и снова подключаете/монтируете. Повторите попытку, это часто решает проблему для меня. После этого вы можете сделать svn cleanup или просто продолжать нормально работать (в зависимости от того, когда возникла проблема). Перезагрузка моего компьютера также устранила проблему один раз... да, это немой я знаю!
Несколько раз все, что вам нужно сделать, это rm -rf ваши файлы (или если вы не знакомы с термином, просто удалите свою папку svn) и еще раз перепроверьте свой репозиторий svn. Обратите внимание, что это не всегда решает проблему, и у вас также могут быть изменения, которые вы не хотите потерять. Именно поэтому я использую его как второй вариант.
Надеюсь, это поможет вам, ребята!
Я решил проблему с повреждением rep-cache.db визуального svn-сервера.
Это два решения.
Остановить службу Visual SVN Server.
Загрузите оболочку sqllite3.exe с сайта sqlite и скопируйте ее в папку repo db.
Введите в командной строке в папке repo db следующие команды.
- Первое решение -
sqlite3 rep-cache.db
.clone rep-cache-new.db
нажмите ctrl + c, чтобы выйти из sqllite.
ren rep-cache.db rep-cache-old.db
ren re-cache-new.db rep-cache.db
- 2-е решение -
Удалить Rep-cache.db
del rep-cache.db
он будет автоматически создан.
Если вы установите Tortoise SVN, перейдите в диспетчер задач и остановите его. Затем попробуйте удалить папку. он будет работать
не нужно беспокоиться о парнях, блокирующих каталоги.
Просто вам нужно сделать, Если sqllite3 не установлен, введите команду ниже,
>sudo apt-get install sqlite3
Откройте базу данных SVN, введя эту команду,
>sqlite3 .svn/wc.db
Теперь вам нужно только удалить записи блокировок из SVN DB.
sqlite> select * from wc_lock; 1|-1 sqlite> delete from wc_lock; sqlite> select * from wc_lock; sqlite> .q
Выполнен процесс. Вы можете работать в вашем репозитории SVN, выполнять, обновлять, добавлять, удалять операции без проблем.
: -)
это работает для меня!
Во время разработки приложения я обнаружил, что сообщения поступают из частых и массивных операций INSERT и UPDATE. Убедитесь, что INSERT и UPDATE несколько строк или данных за одну операцию.
var updateStatementString : String! = ""
for item in cardids {
let newstring = "UPDATE "+TABLE_NAME+" SET pendingImages = '\(pendingImage)\' WHERE cardId = '\(item)\';"
updateStatementString.append(newstring)
}
print(updateStatementString)
let results = dbManager.sharedInstance.update(updateStatementString: updateStatementString)
return Int64(results)
cd в папку, содержащую .svn
rm -rf .svn
svn co http://mon.svn/mondepot/ . --force