私のsvn repoへの多くの幸せなコミットの後、突然関係はすっかり悪化しました... svnは彼女の蓋をひっくり返して叫びました: "作業コピーのテキストベースが壊れています!"
何が原因でしょうか?どうすれば修正できますか?
Working copy text base is corrupt
svn: Commit failed (details follow):
svn: Checksum mismatch for '~/blah/.svn/text- base/sumonet.py.svn-base'; expected: '548b9bb4b24bc580ab8694c583b28013', actual: '8b2b3cf4615de3d8520ae4841b3b0a8b'
これはエラーでした。
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of : '/home/.../exampleFileCorrupted.cpp'
....
スムーズに機能した明確な解決策:
注意:SVN環境外の別のファイルにファイルをコピーします。
cp exampleFileCorrupted.cpp ~/Desktop/
次に以下に従ってください:
svn rm --force exampleFileCorrupted.cpp
表示されます:D exampleFileCorrupted.cpp
現在のSVNフォルダーのポイント1の前に保存したファイルをコピーします with:
cp ~/Desktop/exampleFileCorrupted.cpp .
(「ここにコピー」を意味する最後のポイントをお見逃しなく)
svnに追加 with:svn add exampleFileCorrupted.cpp
表示されます:exampleFileCorrupted.cpp
変更をコミット:svn commit -m "Commit Message"
これで問題が解決したかどうかをお知らせください。
これは私にとってはうまくいきます:
svn rm --keep-local THE_CORRUPTED_FILE
svn add THE_CORRUPTED_FILE
svn ci
よろしく、
別の新しいチェックアウトを作成し、古い作業コピーで行った変更を新しいものにコピーします。
新しいSubversionバージョンでは、.svn/text-base/
ディレクトリはありません。 .svn
は.svn/pristine
の下の作業ルートに格納され、エラーメッセージは次のようになります。
Sending README
Transmitting file data .svn: E155017: Commit failed (details follow):
svn: E155017: Working copy text base is corrupt
svn: E200014: Checksum mismatch for text base of '/home/user/tmp/svntest/README':
expected: 1f9167bc01e5bc9bfcb928ff03d6700a
actual: e0a1692ff5cab91e3e3a0d02dabe0251
svn: E200003: Delta source ended unexpectedly
https://Gist.github.com/siddhadev/5814802 でbashスクリプトを使用して修正できます。破損したsvn-baseファイルを新しいファイルに置き換えます。
@siddhadevスクリプトは動作するはずですが、手動で実行することを好む人のために:
lastworkingrev.txt
としてエクスポートsha1sum lastworkingrev.txt
でsha1チェックサムを取得しますfind . -name "SHA1_CHECKSUM.svn-base"
でSubversionの初期ファイルを見つけ、lastworkingrev.txt
の内容で上書きします私は同じ問題を抱えていましたが、以前の答えはどれも役に立ちませんでした。私の場合、Subversionリポジトリはバージョン1.6でしたが、IntelliJにバージョン1.7でのチェックアウトを許可していました。 「svn:E200014:基本チェックサムの不一致」エラー以外のバージョンの不一致の兆候はありませんでした。 正しいバージョンで新しいツリーをチェックアウトするだけで問題が修正されました。
https://github.com/jasperlee108/svndumpfilterIN でダンプをフィルタリングした後、この問題が発生しました
Md5チェックサムを削除して修正...
sed -i '/Text-copy-source-md5/d' eias_only.dmp
ただし、いくつかの結果が生じる可能性があります...
上記のすべてを試しましたが、クリーンアップが機能しません。 SVNは私に新しいコピーをチェックアウトすることを勧めます。しかし、プロジェクトが大きすぎて、変更したコードが多すぎるため、比較に多くの時間がかかります。ここでは、すべての変更が保持された状態で問題を解決した方法を示します。
私は自分の作業ディレクトリがバージョン管理されていることを信頼しないことを学びました。コミットする準備ができたら、再帰的なdiffを実行して、変更をチェックアウト済みディレクトリーにコピーします。そうすれば、SVNでチョークが発生した場合、チェックアウトをrm -Rfして新しいチェックアウトを実行し、コピーコマンドを繰り返します。
私は解決策を探しにここに来ませんでした。私はこの不安定な動作の理由を探しに来ましたが、何も見つかりませんでした。私がブランチを使用し、コマンドラインからすべてを実行している唯一の人でさえ、それは起こります。これは、Eclipseや他のインターフェイスよりも信頼しています。
既存のコピーを削除して、問題が解決するかどうかを確認してください。
SVNクリーンアップチーム->クリーンアップを実行します。