0

開発にはEclipse / Subclipseを使用しています。TortoiseSVN クライアントもあります。

CVS リポジトリを移動しようとしています。古い CVS リポジトリには単一のプロジェクトがありました。いくつかのプロジェクトには独自の開発ストリームがあり、個別に管理する必要があるため、再編成したいと考えています。

cvs2svn を使用してリポジトリの標準的な完全移動を実行しましたが、問題はありませんでした。

Subversion リポジトリのプロジェクトを再構築したいので、cvs2svn の後で、svn move を試みて再構築を行いました。私は移動を成功させることができました。これも問題はありません。

Eclipse でプロジェクトをチェックアウトし、移動したプロジェクトの 1 つでファイルを選択します。どのプロジェクトでも問題ないようです。Eclipse でバージョンの更新を実行し、ファイルの履歴から更新するバージョンを選択すると、ファイルはファイル システムから削除されますが、古いバージョンはダウンしません。ファイルは単純になくなりました。

私は TortoiseSVN を使用して同じ問題を抱えているので、サブクリップの問題ではないと思います。

興味深いことにsvn move、プロジェクトを最初に変換された元の場所に戻し、同じ手順を実行すると、問題はなく、更新バージョンは期待どおりに機能します。

だから、私の質問に:

  1. cvs2svn の移動中に、subversion リポジトリを正常に再編成することを妨げる何か間違ったことをしましたか?
  2. 私がやろうとしていることを行うためのより良い方法はありますか?
4

3 に答える 3

1
  1. いいえ、何も悪いことはしていません
  2. はい。cvs2svnを介してインポートする前に、CVSリポジトリを再編成する必要があります

この症状の理由:

常にフォルダをチェックアウトする必要があります。以前のバージョンに更新した場合、このフォルダーは存在しない可能性があり(フォルダーは移動されました)、Subversionはその内容を削除します。Subversionでの名前の変更は、常に削除と追加として実装されます。したがって、ファイル間の接続は薄いですが、これは単にこのファイルの履歴のためのものです。新しいレイアウトを表示する場合は、ターゲットフォルダーとソースフォルダーの両方を含むフォルダーをチェックアウトする必要があります。このフォルダの移動を「見る」ことができますが、チェックアウトにフォルダが1つしかない場合は、フォルダが消えてしまい、別のURL(ターゲットまたはソース)をチェックアウトする必要があります。

そのため、CVSでプロジェクトを再構築してから移行する方が簡単です。短所:再構築の履歴がなく、以前のバージョン(CVSで作成されたもの)をビルド/コンパイルできません。

于 2009-05-12T21:29:23.920 に答える
1

個々のプロジェクト内のフォルダーとファイルを再編成したい場合は、Subversion に変換する前に CVS でプロジェクトを再編成するのが簡単で好ましいという Peter Parker の意見に同意します。

しかし、プロジェクト自体のレイアウトを再編成したい場合 (つまり、あるプロジェクトが別のプロジェクトに関連して存在する場所) は、cvs2svn 変換の一部として簡単に行うことができます。マルチプロジェクト変換を行う場合、cvs2svn が各プロジェクトのトランク、ブランチ、およびタグ ディレクトリを配置する場所を指定できます。目的の新しいプロジェクト編成に従ってそれらを配置するだけで、通常のツールを使用してリポジトリを操作するのに問題はありません。

于 2009-05-13T08:07:13.597 に答える
0

私が働いている場所では、CVS からのインポート後にファイルを SVN に移動することにしました。CVS は移動に伴う履歴機能が制限されていますが、SVN リポジトリは「ロールバック」していつでもどのように表示されたかを確認できます。繰り返しになりますが、これを行うことで、すべての変更と移動の履歴を保持することがより重要であるという決定が下されました。

私たちが行ったことは、モジュールを CVS から SVN にそのまま移動することです。次に、リポジトリ ブラウザーを使用して、チェックアウトの前に、必要に応じてすべてのファイルを移動します。

現在、個々のファイルを古いバージョンに更新すると、それが消える可能性があるという問題は解決されません。リポジトリのファイル中心のビュー (CVS) からスナップショット ベースのビューに移行しようとしているため、これを受け入れることにしました。したがって、古いバージョンに戻す必要がある場合は、プロジェクト全体を更新します。差分履歴を見ているだけなら、移動/名前変更を許可すると、TortoiseSVN からうまく機能します。

于 2009-05-13T12:10:52.590 に答える