私は自分の会社の svn externals を調べていますが、私たちが使用するのに適した機能のようです。多くの場合、共有コンポーネントを参照する製品がいくつかありますが、古いバージョンに遅れをとったり、コードベースが異なって分岐したりするという悪い習慣があります。
それらが現在どのように機能するかについてかなり読んだことがありますが、その概念は理解できたと思います。100% 確信が持てないのは、複数のリポジトリの異なるリビジョンがどのようにリンクされているかです。
Product と Library があるとします。製品はライブラリに対してビルドされるため、そのレポにはライブラリ ソースにリンクする svn:externals プロパティがあります。svn:externals 定義に特定のバージョンがない場合、製品の HEAD をチェックアウトすると、ライブラリの HEAD も取得します。
私は何年にもわたって製品のいくつかのバージョンを構築し、そのたびにライブラリの最新バージョンを参照しています。ある日、正しいリビジョンを手動で選択して、製品バージョン 1 に戻ってチェックアウトする必要があります。そうするとき、ライブラリのどのバージョンを取得しますか? HEAD ですか、それとも最初にビルドしたときに使用したリビジョンですか?
うまくいけば、私は優れた開発者であり、リリースする製品のすべてのバージョンにタグを付けることを忘れていませんでした. タグ 'Product-1-0-0' をリポジトリに適用すると、ライブラリ リポジトリの正しいリビジョンもタグ付けされますか? タグ「Product-1-0-0」に基づいて製品を後でチェックアウトすると、正しいリビジョンのライブラリがチェックアウトされますか?