2012-04-19 23 views
1

CVSからSVNへの最近の移行は、cvs2svnツールを使用して行いました。私のプロジェクトの1つのために新しく移行されたプロジェクトでは、最新バージョンは支店A(親ディレクトリ)の一部です。このプロジェクトでは、サブプロジェクトがあります。その最新バージョンは別のブランチです。ブランチB.つまり、基本的にトランクにはメインプロジェクトの最新バージョンがありません。CVSからSVNへの移行とブランチ内での分岐

私の親フォルダ(ブランチA)をチェックアウトしたら、私のサブプロジェクトまでブラウズします>右クリック> CVS>アップデートスペシャル>ブランチB(ブランチBは最新のサブプロジェクトを持っています)を選択します。これにより、サブプロジェクトの最新バージョンがチェックアウトされ、メインプロジェクトの最新バージョンが取得されます。

ただし、SVNではこのオプションは表示されません。私が知る限りSVNは、枝ではなくリビジョンだけで更新することができます。私はSVNには新しいので、私が間違っている可能性がより高いです。私はCVSのシナリオで何をしようとしていたのですか?

メインプロジェクト(支店A)をチェックアウトし、サブプロジェクトを別々にチェックアウトする方法について説明しました(支店B)。次に、私は最初のチェックアウト(親プロジェクト - 支店A)からこのサブプロジェクトを削除し、サブプロジェクトの2番目のチェックアウトバージョンに置き換えます。

答えて

1

svn externalsで目標を達成できる場合があります。サブプロジェクトは別のレポの外部になります。

0

スパース分岐を実行しようとしていたようです。疎な分岐では、ベースとして1つのブランチがあります(ブランチAと呼びます)。別のブランチでは、ブランチBとします。ブランチAからの変更のみを入れます。支店全体

これは、ブランチングに時間がかかるため、CVSで行われることがあります。小規模プロジェクトでは20分、大規模プロジェクトでは最大1時間です。しかし、それは追跡が非常に困難になり、私はそれを使用するサイトがチェックアウトがどのように行われるべきかを追跡しがちであることが分かりました。継続的なビルドシステムでは、CVSスパースブランチの設定も処理できません。

SubversionはSparse Branchingを行いませんが(少なくとも非常に簡単ですが)Subversionの分岐はすばやく簡単です。ブランチの作成には1秒もかかりません。 Subversionでは、ブランチAを作成し、ブランチBオフのブランチAを作成する必要があります。次に、すべての違いをブランチAブランチBブランチAの間に置きます。 ブランチAへの変更は、ブランチBに定期的にマージする必要があります。

スパース分岐での問題は、ファイルが両方のブランチで変更された場合、ピックアップされないことです。マージでは、両方のブランチの変更がブランチBのファイルに追加されます。そのため、スパースブランチングを行うサイトはごくわずかです。

あなたは支店Aから新しい支店Bを作成し、この新しい支店Bにあなたの古い支店B上にあるすべての変更を行い、それをでチェックする必要があります。次に、ブランチBには必要なすべてのファイルが格納され、継続的な統合システムを使用でき、ファイルのチェックインとチェックアウトはワンステップ操作です。

+0

ご返信ありがとうございます。私はこれをswitchコマンドを使って実現しました。私は望むようにサブプロジェクトを別のブランチに切り替えました。 –

関連する問題