7

「レポ」と呼ばれる Subversion リポジトリがあります。repo の内部には、trunk/ および branch/ ディレクトリがあります。ブランチ/ 内には、1.0/、1.1/ など、数十のリリース ブランチがあります。これらの branch/ ディレクトリには、比較的大きなアプリケーションが含まれています。

「myExternal」というリポジトリのルートに外部を追加したいと考えています。外部を定義するとき、SVN に myExternal/ ディレクトリを作成させる唯一の方法は、リポジトリのルートから「svn up」を実行することです。ただし、これにより、branches/ のコンテンツ全体がチェックアウトされることにもなり、これは容認できません (リポジトリのコピーに myExternal/ を追加する必要がある多くの開発者がいますが、すべての開発者に何ギガバイトものデータをチェックアウトさせることはできません)。不要な枝)。

「svn up --set-depth immediates」を試してみましたが、外部情報が得られないようです。すべての branch/ を取得せずに myExternal/ を取得するように svn に指示する方法はありますか?

SVN 1.7 を使用しています。

4

2 に答える 2

6

外部は単なる svn チェックアウトであるため、手動でチェックアウトできます。

このようなコマンドを使用することもできます。外部の形式が異なる場合は、少し変更する必要があるかもしれません。

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co
于 2014-10-02T08:19:30.957 に答える
4

はい、これは、 depth=infinity でない限り、Subversion の外部オブジェクトが作成されないという既知の問題です。

ディレクトリ構造を再設計して、 myExternal がレポではなくそのサブフォルダーに接続されるようにする方法はないと思います。たとえば、 /trunkと/branchesのすべてのフォルダーに設定されます。

または、最初にレポの即時を取得し、次にレポに設定された外部を取得するスクリプトを作成できます (これは、レポのプロパティを読み取ることで取得できます: svn propget svn:externals )。

于 2012-04-04T21:46:11.407 に答える