5

何年も前の本番CVSリポジトリがあり、Atticと特定の場所の実際のディレクトリの両方に同じ名前のcomma-vファイルがあることに気づきました。これはエラーのようです。

私の質問は、そもそもこれがどのように発生するのか、そして重複ファイルが存在する場合にCVSは何をするのかということです。

私の推測(希望)は、屋根裏部屋以外のバージョンがある場合、屋根裏部屋のバージョンを常に無視することです。CVSがこの状況で常に正常に動作するかどうかを誰かが確認できますか?

ちなみに、私は「新しい」ソース管理システムに入る過程にあるため、このエラーはcvs2svnによってフラグが立てられました。

4

1 に答える 1

6

この問題は、誰かが CVS リポジトリ内で (つまり、cvs クライアント経由ではなく) いじくり回したために発生します。残念ながら、このようないじくり回しは一般的です。たとえば、CVS ではファイルの名前変更が許可されていないという制限を回避するためです。おそらく、誰かがそのファイルを移動してファイルの名前を変更しようとした可能性がありますが、そのFILENAME,vファイル名がプロジェクトの履歴で以前に使用されていたため、既にファイルが存在していたことに気付かなかったのでしょうAttic/FILENAME,v

私の推測 (希望) は、Attic 以外のバージョンがある場合、常に Attic バージョンを無視することです。この状況で CVS が常に適切に動作するかどうか、誰でも確認できますか?

これはリポジトリの破損の一種であるため、この状況での CVS の動作が文書化されているかどうかは疑問です。ほとんどの場合、あなたの推測は正しいですが、常にこのように動作することを保証するには、CVS ソース コードの分析が必要になるでしょう。これまでに使用したすべてのバージョンの CVS についてです。典型的な CVS クライアントと最も重要なブランチでいくつかの実験を行うことをお勧めします。

ちなみに、このエラーは cvs2svn によってフラグが付けられました。これは、「新しい」ソース管理システムに移行する過程にあるためです。

cvs2svn には、この問題を回避するための多くの提案があります。

于 2010-08-07T10:37:21.333 に答える