コードの共有部分 (さまざまな機能/スタイル/javascript など) を使用する、同じクライアント用の 2 つの Web サイト (メインの www サイトと、別のサーバー上にある e コマース サイト用の別のサイト) があります。現在、共有コードを SVN の別のプロジェクト (同じリポジトリ内) として保持し、svn:externals を使用してこれらのそれぞれのブランチを 2 つの Web サイト プロジェクトにプルすることで、これを管理しています。
2 つのサイトにそれぞれ 1 つずつ、2 つのリリース ブランチを作成しました。作業中はすべてが通常どおり各サイトのトランクにコミットされ、「ライブの準備ができた」ときに、そのサイトのリリース ブランチにマージされます。今日、共有コードの一部を変更し、リリース ブランチで更新を行ったときに、リリース ブランチがすぐにそれを取り込んでいることに気付きました。これは私たちが望んでいたものではありません:(
この問題を解決する方法を教えてください。コードの共有をドライアップするためにエクスターナルを使用しましたが、別の方法はありますか? この質問 ( SVN で分岐して、svn:external フォルダーも分岐させるにはどうすればよいですか? ) では、外部が悪いと言及されており、別のビルド プロセスを使用する必要がありますが、それがどうあるべきかについては言及されていません。
ビルドを実行する CruiseControl.net があり、この問題を解決したいと考えています。より良いプロセスに関するアイデアはありますか?
乾杯
ピート
更新: それ以来、ソース管理に Mercurial (Fogcreek's Kiln) を使用するようになりました。Mercurial にもサブリポジトリのアイデアがあるため、プロジェクトでもそのルートに従いました。ただし、コストがかかります。分岐は、タグ付けと単純にすべてを最新の状態に保つのと同様に非常に困難になります。私たちの最新の方法は、すべての共有リポジトリも含めて、両方のプロジェクトを 1 つのリポジトリにまとめることです。これにより、クローン時間を遅くする 1 つの「メガ プロジェクト」が得られます (SVN で確認してください)。現在、分岐ではなく機能の切り替え/トグルを使用しているため、開発が大幅に簡素化されています。