それはSubclipse FAQで対処されていませんか?
エラー メッセージに「期限切れ」と表示される場合は常に、リポジトリ内のアイテムのリビジョンがローカル作業コピー内のコピーよりも新しいことを意味します。解決策は常に update を実行する
ことです
。これにより、作業コピーがリポジトリで最新の状態になり、再度コミットが行われます (更新によって競合が発生しなかったと仮定して)。
- ファイルの場合、これは通常、これがどのように、なぜ起こるのかを理解するのは非常に簡単です。
- ただし、Subversion はフォルダのバージョン管理も行います。通常、この問題が最も頻繁に発生するのはフォルダです。
フォルダのローカル コピーがリポジトリ内のフォルダの HEAD リビジョンにある場合を除き、Subversion では、フォルダの削除/名前変更、またはバージョン管理されたプロパティの変更を行うことはできません。
次の質問は次のようなものかもしれませ
ん。
これは有効な質問です。答えは Subversion の動作方法にあります。
ファイルへの変更をコミットすると、コミットが完了すると、作業コピー内のファイルのリビジョンがその新しいリビジョンに更新されますが、そのファイルの親フォルダーのバージョンは更新されません。
これは、そのフォルダー内の他のファイルに追加/削除が行われた可能性があり、更新を実行するまで、フォルダーは実際にはその新しいリビジョンにならないためです。
これは「混合リビジョン作業コピー」と呼ばれます。
HEAD
要約すると、答えは常に更新を実行して、フォルダーまたはファイルがそのリビジョンに更新されるようにすることです。
「混合リビジョンの作業コピー」について:
特別な柔軟性の 1 つは、異なる作業リビジョン番号が混在するファイルとディレクトリを含む作業コピーを持つ機能です。
Subversion の基本的なルールの 1 つは、「プッシュ」アクションは「プル」を引き起こさないということです。
新しい変更をリポジトリに送信する準備ができたからといって、他の人から変更を受け取る準備ができているわけではありません。
実際には、svn commit を実行するたびに、作業コピーにリビジョンが混在することになります。
コミットしたばかりのものは、他のすべてよりも大きな作業リビジョンを持つものとしてマークされています。いくつかのコミットの後 (間に更新はありません)、作業コピーにはリビジョンの完全な混合が含まれます。
(そして、それが、フォルダーを削除した後続のコミットで「古い」メッセージを再現できないと私が信じている理由です。更新により、「混合リビジョン」状態が解決されました。)
混合リビジョンには制限があります
完全に最新ではないファイルまたはディレクトリの削除をコミットすることはできません。
アイテムの新しいバージョンがリポジトリに存在する場合、まだ確認していない変更を誤って破棄しないように、削除の試みは拒否されます。