Eu estava tentando fazer um svn cleanupporque não consigo enviar as alterações em minha cópia de trabalho e recebi o seguinte erro:
sqllite: a imagem do disco do banco de dados está malformada

O que posso fazer agora?
Eu estava tentando fazer um svn cleanupporque não consigo enviar as alterações em minha cópia de trabalho e recebi o seguinte erro:
sqllite: a imagem do disco do banco de dados está malformada

O que posso fazer agora?
Respostas:
Eu tive o mesmo problema. A seguinte postagem do blog me ajudou a resolver isso: http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html
Você faz uma verificação de integridade no banco de dados sqlite que rastreia o repositório (/.svn/wc.db):
sqlite3 .svn/wc.db "pragma integrity_check"
Isso deve relatar alguns erros.
Então você poderá limpá-los fazendo:
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Se ainda houver erros depois disso, você ainda terá a opção de fazer o check-out de uma nova cópia do repositório para uma pasta temporária e copiar a pasta .svn da nova cópia para a antiga. Em seguida, a cópia antiga deve funcionar novamente e você pode excluir a pasta temporária.
Error: unable to identify the object to be reindexed
sqlite3 .svn/wc.db "pragma integrity_check"
sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"
Você pode despejar o conteúdo do banco de dados que pode ser lido em um arquivo de backup e, em seguida, colocá-lo de volta em um novo arquivo de banco de dados:
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
ROLLBACK;para COMMIT;antes de doung o .read dump_all.sql.
svn: E235000: In file 'D:\Development\SVN\Releases\TortoiseSVN-1.9.7\ext\subversion\subversion\libsvn_wc\wc_db_wcroot.c' line 311: assertion failed (format >= 1), no entanto, há uma solução alternativa aqui: hanscarpenter.blogspot.com.au/2016/05/…
sqlite3 .svn/wc.db 'PRAGMA user_version;'no banco de dados original para obter o número correto. 2. executar sqlite3 .svn/wc.db 'PRAGMA user_version = XXX;'contra a versão restaurada com o número correto.
A limpeza do SVN não funcionou. A pasta SVN em meu sistema local foi corrompida. Então, acabei de excluir a pasta, recriei uma nova e atualizei do SVN. Isso resolveu o problema!
Após um apagão de energia, encontrei a imagem do disco do banco de dados com um erro malformado e o comando de nós de reindexação sugerido não corrigiu todos os problemas devido a restrições violadas. Além disso, o procedimento descrito em http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%3C874nybhpxi.fsf@stat.home.lan%3E não resolveu o problema.
Solução no meu caso:
Isso pode ser útil, se o seu svn checkout original contém muitos arquivos modificados ou não versionados e você não deseja mudar para um svn checkout novo.
Copiei a pasta .svn do diretório do meu colega de trabalho e isso corrigiu o problema.
Talvez, poderia ser uma solução:
Agora, reconecte-se novamente:
repositorie: meu SVN(outro caso: git, etc)repositoriepastaNota:
No meu caso, fiz um backup dos meus arquivos. (seguro de volta: P)
Editar:
Estou falando sobre SVNplugin no Eclipse:)
Você viu esta postagem no site do Subversion? Você também pode tentar validar e "consertar" o banco de dados diretamente, conforme descrito aqui . (Observe que não sou especialista, acabei de fazer uma pesquisa rápida no Google. Pode não estar relacionado aos seus problemas de forma alguma).
Pessoalmente, eu tentaria verificar o repositório novamente e reaplicar suas alterações. Não tem certeza se isso é possível no seu caso?
Ao longo das minhas pesquisas, encontrei 2 soluções viáveis.
Se você estiver usando qualquer tipo de conexão, ssh, samba, montagem, desconectar / desmontar e reconectar / remontar. Tente novamente, isso geralmente resolve o problema para mim. Depois disso, você pode executar o svn cleanup ou apenas continuar trabalhando normalmente (dependendo de quando o problema apareceu). Reinicializar meu computador também resolveu o problema uma vez ... sim, é burro, eu sei!
Algumas vezes, tudo o que há a fazer é rm -rf seus arquivos (ou se você não estiver familiarizado com o termo, apenas exclua sua pasta svn), e verifique novamente seu repositório svn. Observe que isso nem sempre resolve o problema e você também pode ter alterações que não deseja perder. É por isso que o uso como segunda opção.
Espero que isso ajude vocês!
Resolvi meu problema de corrupção de rep-cache.db do servidor svn visual.
São duas soluções.
Pare o serviço do Visual SVN Server.
Baixe o shell sqllite3.exe do site sqllite e copie-o para a pasta db do repo.
Digite os seguintes comandos no prompt de comando na pasta db do repo.
- Primeira Solução -
sqlite3 rep-cache.db
.clone rep-cache-new.db
pressione ctrl + c para sair do sqllite.
ren rep-cache.db rep-cache-old.db
ren re-cache-new.db rep-cache.db
- 2ª Solução -
Exclua o rep-cache.db
del rep-cache.db
ele será criado automaticamente.
Corrigi isso para uma instância em que acontecia comigo, excluindo a pasta oculta .svn e, em seguida, realizando uma verificação na pasta para o mesmo URL.
Isso não substituiu nenhum dos meus arquivos modificados e apenas modificou a versão de todos os arquivos existentes em vez de obter novas cópias do servidor.
Não perca seu tempo checking integrityexcluindo dados da work queuetabela, porque essas são soluções temporárias e você receberá uma resposta após um tempo.
Basta fazer outro checkoute substituir a pasta .svn existente pela nova. Faça um updatee então deve ficar bom.
Se você instalar o Tortoise SVN, vá para o gerenciador de tarefas e pare-o. Em seguida, tente excluir a pasta. vai funcionar
A resposta marcada pode ser a correta, de acordo com a limpeza do Subversion. Mas o erro é definitivamente genérico, o que me trouxe até aqui, esta página de perguntas.
Nosso projeto possui a dependência System.Data.SQLite e a mensagem de erro era a mesma:
a imagem do disco do banco de dados está malformada
No meu caso, executei o seguinte script de verificação e os seguintes via SQLiteStudio 3.1.1 .
pragma integrity_check
(Não tenho ideia se essas estatísticas ajudariam, mas vou compartilhá-las de qualquer maneira ...)
O arquivo DataBase está sendo usado diariamente por 1,5 ano, por meio do modo de diário de conexão na memória, e tinha cerca de 750 MB. Havia aproximadamente 140 mil registros por tabela e 6 tabelas eram desse tamanho.
Após a execução do script de verificação de integridade , 11 linhas foram retornadas após 30 minutos do tempo de execução.
wrong # of entries in index sqlite_autoindex_MyTableName_1
wrong # of entries in index MyOtherTableAndOrIndexName_1
wrong # of entries in index sqlite_autoindex_MyOtherTableAndOrIndexName_2
etc...
Todos os resultados foram sobre os índices. Acompanhando a reconstrução de cada índice, meu problema foi resolvido.
reindex sqlite_autoindex_MyTableName_1;
reindex MyOtherTableAndOrIndexName_1;
reindex sqlite_autoindex_MyOtherTableAndOrIndexName_2;
Após a reindexação, a verificação de integridade resultou "ok".
Eu recebi esse erro no ano passado e restaurei o banco de dados do backup e, em seguida, re-commitado todas as alterações, o que foi um verdadeiro pesadelo ...
não há necessidade de se preocupar com um bloqueio de diretório pessoal.
Só o que você precisa fazer é, se sqllite3 não estiver instalado, digite o comando abaixo,
>sudo apt-get install sqlite3
Abra o banco de dados SVN digitando este comando,
>sqlite3 .svn/wc.db
Agora, tudo o que você precisa fazer é remover as entradas de bloqueios do banco de dados SVN.
sqlite> select * from wc_lock; 1|-1 sqlite> delete from wc_lock; sqlite> select * from wc_lock; sqlite> .q
Processo completo. Você pode trabalhar em seu repositório SVN, submeter, atualizar, adicionar e remover operações sem problemas.
:-)
Durante o desenvolvimento do aplicativo, descobri que as mensagens vêm das operações INSERT e UPDATE frequentes e massivas. Certifique-se de inserir e ATUALIZAR várias linhas ou dados em uma única operação.
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)