SVNにコミットするたびに、チェックサムの不一致エラーが発生し続けます。私はすでにそれを修正する方法を知っています(古いものを削除した後、フォルダーをチェックアウトし、.svnフォルダーをコピーすることによって)。私が知りたいのは、これが私を狂わせ始めた原因です。
OS:Windows 7 SVNクライアント:VisualSVN、TortoiseSVN
SVNにコミットするたびに、チェックサムの不一致エラーが発生し続けます。私はすでにそれを修正する方法を知っています(古いものを削除した後、フォルダーをチェックアウトし、.svnフォルダーをコピーすることによって)。私が知りたいのは、これが私を狂わせ始めた原因です。
OS:Windows 7 SVNクライアント:VisualSVN、TortoiseSVN
1.作業ディレクトリ内の破損したファイルの名前を変更します
2.コミット(破損したファイルをリポジトリから削除し、名前を変更したファイルを追加します)
3.作業ディレクトリでファイルの名前を元の名前に戻します
4.コミット
私にとって魅力のように働きます。
はい、このエラーは少し厄介です。これが発生する理由は複数あります。たとえば、ネットワークの破損、停電、ファイルの破損などです。あなたが考え出した回避策は、このエラーを克服するための最良の方法です..
このエラーが発生する理由と理論の詳細: (同様の問題で、md5 が null でした。この場合、サーバー上の値とは異なる値です)
少し前に私ができるこの解決策は、問題のファイルが置かれているフォルダーでコマンド シェルを開き、次のコマンドを実行することです。
svn update --set-depth empty
svn update --set-depth infinity
解決策を見つけた場所を思い出せません。当然のことながらクレジットを与えたいのですが、思い出せません。これはシェルコマンドの履歴で見つかりました。
こんなエラーが出ました。私が見つけた最も簡単な解決策は、ファイルがあったフォルダーを削除してから、選択したsvnクライアントで更新することでした。
これにより、サーバーからチェックサムが復元されます。
もちろん、唯一の問題は、最後のコミットの前に行った変更が失われることです。単純なソース テキスト ファイルの場合は、コンテンツ全体をメモ帳 (または任意のテキスト エディター) にコピーし、svn を更新してから、ソース テキストをファイルに再度コピーしてコミットできます。
これは、Eclipse svnプラグインで一度発生しました。いくつかのファイルをコミットし、進行中にキャンセルボタンをクリックしました。それから私はあなたと同じエラーを受け取りました。svnサーバーがコミットされたファイルを受信してチェックサムを更新したようですが、私のローカルsvnでは、ファイルはまだ古いチェックサムを指しています。
私の解決策は、問題のあるファイルを含むフォルダーを削除/移動してから、フォルダーをチェックアウトするか、再度更新することです。