作業コピーの変更をコミットできないため、svn cleanup
を実行しようとしましたが、次のエラーが発生しました。
sqllite:データベースディスクイメージの形式が正しくありません
今何ができますか?
同じ問題がありました。次のブログ投稿は解決に役立ちました: 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フォルダーを新しいコピーから古いフォルダーにコピーするオプションがあります。その後、古いコピーが再び機能し、一時フォルダーを削除できます。
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クリーンアップは機能しませんでした。ローカルシステムのSVNフォルダーが破損しました。そのため、フォルダーを削除し、新しいフォルダーを再作成して、SVNから更新しました。これで問題は解決しました!
ピアワーカーのディレクトリから.svnフォルダーをコピーし、問題を修正しました。
電源遮断後、データベースディスクイメージが不正な形式のエラーに遭遇しました。 http://mail-archives.Apache.org/mod_mbox/Subversion-users/201111.mbox/%[email protected]%3E で説明されている手順も解決しませんでした問題。
私の場合の解決策:
これは、元のsvnチェックアウトに多くの修正またはバージョン管理されていないファイルが含まれており、新しいsvnチェックアウトに切り替えたくない場合に便利です。
たぶん、解決策かもしれません:
次に、再接続します。
repositorie
を選択してください:私のSVN
(他の場合:gitなど)repositorie
フォルダーを選択します注:
私の場合、ファイルのバックアップを作成しました。 (安全に戻る:P)
編集:
SVN
のEclipse
プラグインについて話しています:)
これは私のために働く!
視覚的な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 integrity
やwork queue
テーブルからデータを削除するのに時間を無駄にしないでください。これらは一時的な解決策であり、しばらくすると戻ってきます。
別のcheckout
を実行し、既存の.svnフォルダーを新しいフォルダーに置き換えます。 update
を実行すると、スムーズになります。
非表示の.svnフォルダーを削除し、同じURLへのフォルダーでチェックアウトを実行することにより、この問題のインスタンスを修正しました。
これは、変更したファイルを上書きせず、サーバーから新しいコピーを取得する代わりに、既存のファイルをすべてバージョン管理しました。
私の研究を通して、2つの実行可能なソリューションを見つけました。
Ssh、samba、マウント、切断/アンマウント、再接続/再マウントのいずれかのタイプの接続を使用している場合。もう一度試してください。これで問題が解決することがよくありました。その後、svn cleanupを実行するか、正常に動作し続けることができます(問題が発生したタイミングによって異なります)。コンピューターを再起動しても問題は一度解決しました。
ファイルをrm -rfする(または、用語に慣れていない場合は、svnフォルダーを削除する)だけで、svnリポジトリをもう一度チェックアウトするだけです。これが常に問題を解決するとは限らないことに注意してください。また、失いたくない変更があるかもしれません。 2番目のオプションとして使用する理由です。
これが皆さんのお役に立てば幸いです!
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リポジトリで作業し、問題なくコミット、更新、追加、削除を行うことができます。
:-)