ばかげているように聞こえるかもしれませんが、2つのバージョンのsubversion間でバージョンの競合が発生することがあります。sshfsを使用して開発サーバーにディレクトリをマウントしてから、ローカルのVimを使用してコードを編集します。更新、コミットなどのサブバージョンの場合。サーバーでsshを実行し、そこで実行します。ただし、シェルを混同して、マウントされたディレクトリのローカルシェルで誤って更新またはコミットすることがあります。Subversionはエラーで終了しますが、これは問題ありません。ただし、sshセッションで開発サーバーで同じことを実行しようとすると、subversionは、作業ディレクトリ/subversionのバージョンが間違っていることを示します。サーバーのサブバージョンバージョンは私のノートブックのバージョンよりも古いので、私の(新しい)バージョンはどういうわけか作業ディレクトリをアップグレードして、開発サーバーの古いバージョンと互換性がないようにします。.svn / lockファイルを削除すると役立つ場合がありますが、ノートブックでsubversionコマンドを実行した直後に削除した場合に限ります。その後、開発サーバーでコマンドを実行すると、ロックファイルが消え、チェックアウトをレスキューする方法がわかりません。リポジトリがそれほど大きくなければ、これはそれほど悪くはありません。特に私がたくさんの変更を加えて、それらをコミットできないとき。
現在私が目にしている唯一の解決策は、どこかで変更したファイルをコピーし、チェックアウトを削除し、完全に新しいチェックアウトを実行して、ファイルをコピーして戻すことです。
壊れたチェックアウトや私の変更を救済するためのより良い解決策はありますか?
更新 リンクされたFAQMikaelSundbergに回答が含まれていました。彼がそれについて明確に言及していないので、私はそれをここに書き留めます。安全な場合に、アップグレードされたリポジトリをダウングレードできるスクリプトがあります。
http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py