5

私たちの会社では、さまざまな C/C++ モジュールで構成される製品に取り組んでいます。理想的には、各層とモジュールは、異なるチームによって個別に開発され、個別にテストされる必要があります。現在、各モジュールを独自のブランチに分けています:\

モジュールは次のとおりです。

\隠した
  \ブランチ
  \タグ
  \トランク
\api
  \ブランチ
  \タグ
  \トランク
\ui
  \ブランチ
  \タグ
  \トランク

これとは別に、モジュールを組み合わせて製品リリースをビルドし、CI システムを使用して定期的にコンパイルします。

\productX
  \ブランチ
    \5.0
      \hid-4.0 (svn:externs \hid\branches\4.0)
      \api-3.0 (svn:externs \api\branches\3.0)
      \ui-5.0 (svn:externs \ui\branches\5.0)
  \タグ
  \トランク

私たちが抱えている主な問題は、externs に関連する「svn タグ」の動作にあります。現在の extern は HEAD を参照しています。これは、最新バージョンを定期的にビルドして、すべてのモジュールが確実に連携するようにしたいためです。ただし、ビルドが成功してリリースに進むと、extern で使用されるバージョンを含め、すべてに自動的にタグを付ける簡単な方法があればいいのにと思います。現在のところ、モジュールのタグを作成し、externs をこれらのタグに更新し、製品にタグを付け、最後にトランクに戻す必要があります。

これを行うためのよりクリーンな方法はありますか?現在の構造についてもお気軽にコメントしてください。

4

1 に答える 1

3

トランクではなく、モジュールのタグを参照する外部定義を作成する方がよいと思います。この方法では、モジュールの既知のマイルストーンのみを取得し、コア製品にタグを付けるときに何も変更する必要はありません。

これは、.NET で (HEAD ではなく) 明示的なリビジョンのみを使用するというベスト プラクティス (SVN のドキュメントで推奨されている) に沿ったものsvn:externalsです。

于 2009-12-23T13:56:44.553 に答える