2017-07-19 8 views
0

私たちのグループのCVSリポジトリのうち2つをCVNリポジトリに変換し、SVNにロードしました。しかし、私はいくつかのファイルが変更されていることを発見!cvs2svnはソースコードの 'date'文字列を変更します

例えば、 静的チャーは[] = "$リビジョン:1.1.1.1 $$日:2007年6月25日午後04時56分59秒$" をrcsid。

が に変更されました。static char rcsid [] = "$ Revision:1.1.1.1 $$ Date:2007-06-25 16:56:59 $";

これらは実際の文字列であり、コメントではありません。 (他の変更された文字列はコメント内にありますが、これは問題ありません)。 それでは、なぜcvs2svnがそうするのでしょうか?どのようにcvs2svnからそれを防ぐのですか? --keywords-offオプションを追加しましたが、違いはありませんでした。

ありがとうございました!

答えて

0

CVSは、ファイルをチェックインする際に、正しい値に($Date$のような)正しい値に展開します。 CVS 1.12以前は、2007/06/25のようにスラッシュを使って日付を展開しました。 CVS 1.12以降、日付は2007-06-25のようにダッシュで拡大されています。

Subversionからファイルをチェックアウトしたときに表示される日付形式は、Subversionによるキーワード拡張の結果です。 AFAIK Subversionは常に新しいスタイルの日付をダッシュ​​で展開します。したがって、文字列が異なるように見える理由は、Subversionが異なる日付展開スタイルを使用しているからです。cvs2svnがそうでないためです。

あなたが--keywords-offを指定すると、その後、cvs2svn、すなわちそれらはでをチェックしたとき、彼らが持っていた形で、彼らはCVSであったように、拡張キーワードを残します。通常、ファイルが前回チェックされたときの形式であることを意味します。つまり、になりました。つまり、以前のファイルのリビジョンを反映しています。これはほとんど役に立ちません。

cvs2svnは、日付文字列自体を展開し、SVNキーワード展開にすることを期待した形式で日付文字列を取得する唯一の方法です。さらに、拡張のために「古い日付形式」を使用してcvs2svnを設定する必要があります。これは、_KeywordExpander.use_old_date_format()(またはファイルcvs2svn_lib/keyword_expander.pyを編集して)を呼び出して設定できます。しかし、おそらく、キーワード拡張をからに変換後にすると、後続のSubversionリビジョンのキーワードも拡張されるようになります。そのため、変換後はキーワードを含むファイルにsvn:keywordsプロパティを設定する必要があります。また、これらのファイルで手動でキーワードを再折りたたんでください($Date: 2007/06/25 16:56:59 $$Date$に戻すなど)。全体的に、これは構成するのが非常に難しく、おそらくその努力に値するものではありません。

関連する問題