1

同じ共通ファイルを共有する 2 つのプロジェクトがあります。

例えば

親プロジェクト/サブプロジェクト1/トランク/共通/a.js

親プロジェクト/サブプロジェクト2/トランク/共通/a.js

subproj1 の a.js を変更してから、後でそれを subproj2 にコピーするか、その逆のいずれかを行います。

サブプロジェクトをチェックアウトして取得することができないため、コモンアウトを独自のトランクを持つ独自の SVN プロジェクトに分離することはできません。CVS では、2 つのプロジェクトのうちの 1 つに common を配置し、それへのシンボリック リンクを CVS サーバーのプロジェクト 2 に作成することで、これを非常に簡単に解決できます。

したがって、同じ共通ファイルの独自のコピーを持つ 2 つのプロジェクトの上記のシナリオがあります。次の問題は、変更を 1 から 2 または 2 から 1 にマージする方法です。Eclipse は、「異なるプロジェクト構造に関連するリソースで操作を実行できません」と言うので、これを実行できません。Tortiose SVN は、2 つの別々のディレクトリを同時に開くことができないため、これを行うことができません。カメを使用して、変更されたファイルをあるプロジェクトから別のプロジェクトに「コピー」しようとすると、既に存在すると表示されます。

subproj1 を公称マスターに設定し、svn を subproj2 にコピーしました。しかし、これは私たちの助けにはなりません。

現在、Eclipse を使用して、更新された各共通ファイルの変更を手動でカット アンド ペーストしてから、変更をコミットしています。

これは、同じ内容の同じファイルであっても、2 つの異なるプロジェクトでバージョン番号が異なることを意味します。

何か案は?

現在、コマンド ライン SVN を持っていないか、使用していません。ファイルにタグを付けたりコピーしたりするための長い URL パスを記憶して正しく取得することはリスクが高すぎるように思われますが、それが唯一の方法である場合は検討します。

私たちのコードはほとんどが js ファイルで、いくつかの asp と html があります

CVS を使用している場合、プロジェクト (親) が 1 つだけ必要で、その下に「game1」ディレクトリと「game2」ディレクトリがあり、1 つの共通ディレクトリがあります。これは、CVS ではディレクトリに基づいて分岐およびタグ付けできるためです。一方、SVN では、トランク全体を適切に分岐/タグ付け/マージすることしかできません。トランクディレクトリは完全に日食の邪魔になります。これは、両方のプロジェクトを一度にチェックアウトできないことを意味し、パスにトランクディレクトリを取得しないように、各プロジェクトを個別にチェックアウトする必要があるためです。

4

2 に答える 2

1

サブプロジェクトをチェックアウトして取得することができないため、コモンアウトを独自のトランクを持つ独自の SVN プロジェクトに分離することはできません。

ただし、svn:externals を読み取って使用する必要があります。共通の dir 全体を共有すると、外部は別のリポジトリに存在できます。共通ファイルのみを共有する場合、SVN は 1.6+ である必要があり、外部ターゲットはソースと同じリポジトリにある必要があります

于 2013-04-11T15:42:48.760 に答える
1

TortoiseSVN では、2 つのディレクトリを開く必要はありません。それらのいずれかでマージを選択し、別のディレクトリの URL をマージ ソースとして選択するだけです。

分離に関しては、一般的なものを3番目に分離し、すべてのサブプロジェクトに分岐できます。

于 2013-04-11T11:14:40.300 に答える