2012-03-21 7 views
1

私はSVNブランチ管理に関わるベストプラクティスについて興味があります。共通エンジンのSVNブランチ

私の状況は非常にシンプルですが、今まで私は私のプロジェクト全体を持っているトランクブランチを持っています。私の目的は、共通の共有エンジン(ほとんどの場合、実際のトランクブランチではファイルが少なくなります)を作成し、同じプロジェクトを表す別のブランチを作成することです。

これらの異なるブランチは、関連するその他のファイル(たとえば、完全に異なるフォーマットまたはパラメータを持つプロジェクトファイル)に小さな変更を加えながらエンジンを共有する必要があります。したがって、この共通部分は、変更が行われた場所を気にすることなく、ただ1つのブランチでコミットされます。一方、独立したファイルはちょうど分離されたままです。

私はSVNブランチについてちょっと調べましたが、ブランチに関連する唯一の機能はsvn copyファイルとフォルダにあるようです。これはブランチを複製しますが、ファイルが "共有パーツ"から取得されたと見なされた場合、暗黙の更新を行わずに同じファイルが2つの異なるブランチで分離されるようです。

私はSVNで解決しようとしている問題をどのように管理する必要がありますか? Subversionがこの問題を簡単に管理できるかどうかは明らかではありませんが、SVNが実際に使用されていないものであるかどうかわからないので、scmを別のものに変更する必要があります。

Anyアドバイスをいただければ幸いです。

+0

これは、SVNの代わりに 'make'や' Ant'のようなビルドツールで解決される状況だと思います。 – madth3

答えて

1

COREおよびIDEファイルを別のフォルダに分離し、独立した変化(すなわち、各IDEのためにあなたがCOREで何も変更していない)を持つことができる場合は、次の

  • 別COREをし、SVNとしてそれを使用する:外観(シングル、共通、共有リソース)をIDEブランチ(またはIDE per repository
+0

私はsvn:externalsを学び、すべてを解決しました。 – Jack

1

これは、ブランチを使用する正しい方法ではありません。

エンジンをお持ちの場合は、フォルダー 'エンジン'の下のトランクVERSIONにそのまま残し、別のIDE固有のファイル用に別のフォルダーを作成してください。

リポジトリ全体をチェックアウトする必要はありません。あなたがエンジンフォルダとあなたは別のIDES用のファイルの異なるバージョンを持ちたいという意味かもしれないように見えます

フォルダをチェックアウトjsutことができ、私はこれを考えると

あなたに戻って取得する必要があります
+0

これは、特定のプラットフォームと特定のIDEの作業コピーが、その特定のプロジェクトのファイルだけを含む 'engine'フォルダ+ 'specific'フォルダをチェックアウトすることによってローカルに作成されることを意味しますか?または、各フォルダに2つの作業コピーを作成しますか?しかし、コミットはどのように管理されているのですか?ルートはバージョン管理下にないので、別々にフォルダをコミットする必要があるようです。 – Jack

関連する問題