web-dev-qa-db-ja.com

svn cleanup:sqlite:データベースディスクイメージの形式が正しくありません

作業コピーの変更をコミットできないため、svn cleanupを実行しようとしましたが、次のエラーが発生しました。

sqllite:データベースディスクイメージの形式が正しくありません

Cleanup failed to process the following paths

今何ができますか?

87
Rubens Mariuzzo

同じ問題がありました。次のブログ投稿は解決に役立ちました: http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html

リポジトリ(/.svn/wc.db)を追跡するsqliteデータベースで整合性チェックを実行します。

sqlite3 .svn/wc.db "pragma integrity_check"

それはいくつかのエラーを報告するはずです。

次に、以下を実行することでそれらをクリーンアップできる場合があります。

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

それでもエラーが発生する場合は、リポジトリの新しいコピーを一時フォルダーにチェックアウトし、.svnフォルダーを新しいコピーから古いフォルダーにコピーするオプションがあります。その後、古いコピーが再び機能し、一時フォルダーを削除できます。

88
HenningJ

整合性チェック

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
17
matt burns

SVNクリーンアップは機能しませんでした。ローカルシステムのSVNフォルダーが破損しました。そのため、フォルダーを削除し、新しいフォルダーを再作成して、SVNから更新しました。これで問題は解決しました!

16
EmKay

ピアワーカーのディレクトリから.svnフォルダーをコピーし、問題を修正しました。

12
user3884070

電源遮断後、データベースディスクイメージが不正な形式のエラーに遭遇しました。 http://mail-archives.Apache.org/mod_mbox/Subversion-users/201111.mbox/%[email protected]%3E で説明されている手順も解決しませんでした問題。

私の場合の解決策:

  • Svnリポジトリを一時フォルダーに再度チェックアウトします
  • ファイル「.svn/wc.db」を新しいチェックアウトから破損したチェックアウトにコピー、つまり置き換えます

これは、元のsvnチェックアウトに多くの修正またはバージョン管理されていないファイルが含まれており、新しいsvnチェックアウトに切り替えたくない場合に便利です。

12
Thomas853

たぶん、解決策かもしれません:

  1. プロジェクトを右クリック
  2. チーム->切断
  3. 選択:削除も...

次に、再接続します。

  1. プロジェクトを右クリック
  2. チーム->プロジェクトの共有
  3. repositorieを選択してください:私のSVN(他の場合:gitなど)
  4. repositorieフォルダーを選択します

注:

私の場合、ファイルのバックアップを作成しました。 (安全に戻る:P)

編集:

SVNEclipseプラグインについて話しています:)

2
mfruizs2
  1. 別の場所でこのsvnをチェックしてください
  2. 隠し.svnファイルを表示
  3. wcファイルを置き換える

これは私のために働く!

2
Kaikai

視覚的なsvnサーバーのrep-cache.dbの破損の問題を解決しました。

それらは2つのソリューションです。

Visual SVN Serverサービスを停止します。

Sqllite Webサイトからsqllite3.exeシェルをダウンロードし、それをリポジトリのdbフォルダーにコピーします。

リポジトリの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

自動的に作成されます。

checking integritywork queueテーブルからデータを削除するのに時間を無駄にしないでください。これらは一時的な解決策であり、しばらくすると戻ってきます。

別のcheckoutを実行し、既存の.svnフォルダーを新しいフォルダーに置き換えます。 updateを実行すると、スムーズになります。

1
Jawad Khan

非表示の.svnフォルダーを削除し、同じURLへのフォルダーでチェックアウトを実行することにより、この問題のインスタンスを修正しました。

これは、変更したファイルを上書きせず、サーバーから新しいコピーを取得する代わりに、既存のファイルをすべてバージョン管理しました。

1
David Liljeblad

私の研究を通して、2つの実行可能なソリューションを見つけました。

  1. Ssh、samba、マウント、切断/アンマウント、再接続/再マウントのいずれかのタイプの接続を使用している場合。もう一度試してください。これで問題が解決することがよくありました。その後、svn cleanupを実行するか、正常に動作し続けることができます(問題が発生したタイミングによって異なります)。コンピューターを再起動しても問題は一度解決しました。

  2. ファイルをrm -rfする(または、用語に慣れていない場合は、svnフォルダーを削除する)だけで、svnリポジトリをもう一度チェックアウトするだけです。これが常に問題を解決するとは限らないことに注意してください。また、失いたくない変更があるかもしれません。 2番目のオプションとして使用する理由です。

これが皆さんのお役に立てば幸いです!

1
Psykehoe

Subversionサイトで この投稿 を見ましたか? here のように、データベースを直接検証および「修正」することもできます。 (私は専門家ではないことに注意してください、私は簡単なグーグル検索を行いました。あなたの問題とはまったく関係ないかもしれません)。

個人的には、レポをもう一度チェックして、変更を再適用してみます。あなたの場合でもこれが可能かどうかわかりませんか?

1
Mightymuke

Tortoise SVNをインストールする場合は、タスクマネージャーに移動して停止してください。次に、フォルダーを削除してください。それが動作します

0
Ramesh Babu

ディレクトリロックの人を心配する必要はありません。

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リポジトリで作業し、問題なくコミット、更新、追加、削除を行うことができます。

:-)

0
mukesh bhoj