2012-04-04 9 views
7

Subversionリポジトリには「repo」があります。レポの内側にはtrunk /とブランチ/ディレクトリがあります。枝内には数十種類の放出枝がある。 1.0 /、1.1 /。これらのブランチ/ディレクトリには比較的大きなアプリケーションが含まれています。他のすべてのディレクトリとサブディレクトリを取得せずにSubversion外部を取得する方法

「myExternal」と呼ばれるrepoのルートに外部を追加したいとします。私が外部を定義するとき、SVNにmyExternal /ディレクトリを作成させる唯一の方法は、repoのルートから 'svn up'を実行することです。しかし、これにより、ブランチの内容全体がチェックアウトされますが、これは容認できません(私たちはmyExternalを取得する必要のある多くの開発者がいる/彼らのレポのコピーに追加され、不要なブランチ)。

私は 'svn up -set-depth immediates'を試しましたが、これは外部を取得していないようです。 svnにすべてのブランチをフェッチせずにmyExternalをフェッチするように指示する方法はありますか?

SVN 1.7を使用しています。

答えて

4

はい、これはサブバージョンexternals are not created unless depth=infinityの既知の問題です。

myExternalがレポではなくそのサブフォルダに添付されるように、ディレクトリ構造を再設計する方法はないと思います。 /トランクとすべてのフォルダ/ブランチに設定します。

それとも、最初にレポの即値をフェッチして、レポに設定された外観フェッチするスクリプトを作成することができます(これは、レポのプロパティを読み取ることによって、取得することがあります。SVN PropGetメソッドのsvn:見た目)。

6

外観は単なるsvnチェックアウトなので、手動でチェックアウトすることができます。

このようなコマンドを使用することもできます。外観が異なるフォーマットの場合は、少し修正する必要があります。

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co 
+1

'svn propget svn:externals | xargs -L1 svn co'は私のケースでは –

+0

svn propget svn:externals | sed -e 's//。\ /' | sed -e 's/\' // g '| xargs -L1 svnが私のために働いた – TCS

+0

私はすでに手作業でチェックアウトしていたことを明確にすべきでした。私の意図は、最初の「チェックアウト」でこれを行うネイティブな方法があるかどうかを確認することでした。 – erich8

関連する問題