この問題は、誰かが CVS リポジトリ内で (つまり、cvs クライアント経由ではなく) いじくり回したために発生します。残念ながら、このようないじくり回しは一般的です。たとえば、CVS ではファイルの名前変更が許可されていないという制限を回避するためです。おそらく、誰かがそのファイルを移動してファイルの名前を変更しようとした可能性がありますが、そのFILENAME,v
ファイル名がプロジェクトの履歴で以前に使用されていたため、既にファイルが存在していたことに気付かなかったのでしょうAttic/FILENAME,v
。
私の推測 (希望) は、Attic 以外のバージョンがある場合、常に Attic バージョンを無視することです。この状況で CVS が常に適切に動作するかどうか、誰でも確認できますか?
これはリポジトリの破損の一種であるため、この状況での CVS の動作が文書化されているかどうかは疑問です。ほとんどの場合、あなたの推測は正しいですが、常にこのように動作することを保証するには、CVS ソース コードの分析が必要になるでしょう。これまでに使用したすべてのバージョンの CVS についてです。典型的な CVS クライアントと最も重要なブランチでいくつかの実験を行うことをお勧めします。
ちなみに、このエラーは cvs2svn によってフラグが付けられました。これは、「新しい」ソース管理システムに移行する過程にあるためです。
cvs2svn には、この問題を回避するための多くの提案があります。