2010-11-28 19 views
3

最近私たちはプロジェクトのトランクの最初のブランチを作成しました。トランクは、サーバーにとって重要ではないかなり大きい(severals GB's)です。なぜなら、ブランチは効率的なリンクを介して行われるからです。しかし、クライアントの作業コピーでは、プロジェクトは実際には2倍の容量(リポジトリのルートからすべてのWCがあります)を消費します。SVN作業コピーのブランチを無視する

TortoiseSVNを使ってすべてのブランチを無視する(つまり、ダウンロードしない)ことができるのは、ほんの数人にすぎません。

トランクをチェックアウトするユーザーは、以下に示すように、ここでの解決策ではありません。私たちの構造は、次のような次のとおりです。

/ 
projects 
    project-x 
    assets 
    blabla.psd 
    code 
    trunk 
    branches 
    branch1 
    branch2 
    project-y 
    ... 
+0

複数のGB?バイナリを無視リストに入れましたか?もしそうでなければ、各ビルドはコンパイルされたバイナリの完全なセットをリポジトリに追加します。 – tdammers

+0

生成されたバイナリは無視されますが、プロジェクトはゲームなので、リポジトリに入れなければならないアートやオーディオ資産がたくさんあります。 –

答えて

5

ショートソリューション - /トランクに切り替えます。トランク以外のものを必要としない人は、/ rootからではなく、/ root/trunkからチェックアウトすることができます。ブランチを望む人は誰でも、別のディレクトリのブランチをチェックアウトしてください。

さらに精巧なソリューション - 必要なものだけをチェックアウトし、ツリー構造を維持します。

  1. オプションオプションを使用してルート/トランクから「直接の子のみ」
  2. チェックアウトして、rootからチェックアウト「フル:あなたはそれをすべて持っている、とだけあなたが望むものを次の手順を実行しを使用する自由の両方をしたい場合再帰的な」

誰かがいくつかの特別なブランチはその後、前の2つのステップの後にチェックアウトしたい場合は、次のオプションを指定したルート/枝から

  • チェックアウト 『のみ直接の子』
  • あなたはSVN良い本に主題についての詳細を見つけることができる「再帰的なフル」オプションを使用してその特別なブランチからチェックアウト

、章「Sparse Directories」。

チェリーピックブランチには、この手順のショートカットはありません。バッチファイルとTortoiseProcを除きます。

EDIT:すでにリポジトリ全体をチェックアウトしていて、スペースを節約するために何かを除外したい場合は、チェックアウト部門「除外」で除外したいフォルダのコマンド "Update item to revison"を使用します。 the manualによれば、このオプションは[リビジョンへの更新]ダイアログでのみ使用できます。私はそれがちょうどこの目的のためだと思います。

一時的な作業コピーでこれを最初に試してください。私はこれを個人的にしたことはありません。

更新:TortoiseSVN 1.7からチェックアウトダイアログには、「アイテムを選択」ボタンがあり、これを使用して、必要なフォルダのみを選択して一度に取得することができます。同じボタンは、「アイテムをリビジョンに更新」ダイアログでも使用できます。

+0

ユーザーが既に作業コピーを持っている場合、どのようにしてディレクトリの更新深度を変更できますか? –

+0

私はかなり理解していません。ユーザーが現在持っている正確な構造とは何か、そしてユーザーが望んでいる正確な構造は何ですか?そして構造によって私は彼のハードディスク上に意味する: – Dialecticus

+0

私の編集した質問を参照してください –

1

私はあなたが構造にこのようなものと思っている。そのような場合は、ユーザーは単にhttp://server/repo/trunk代わりのhttp://server/repoをチェックアウトすることができ、彼らがしたいとき

repo root 
    | 
    +-- trunk 
    | 
    +-- branches 
     | 
     +-- branch1 
     +-- branch2 
     +-- ... 

を代わりにブランチで作業して、作業コピーをhttp://server/repo/branches/branch1に切り替えることができます。

+0

私たちはデフォルトのトランク/ブランチ構造を持っていますが、それとルートの間にはたくさんの部分があります。私たちのレポには複数のプロジェクトがあります。各プロジェクトには、「アセット」と「コード」の2つのディレクトリがあります。 "トランク"と兄弟は "コード"の中に入ります。 –

0

コードでアセットをダウンロードする必要がある場合は、project-xのレベルで分岐するのが自然です。この場合、あなたが説明する問題はありません。あなたは自分のものの一部だけを分ける何らかの理由がありますか?

+0

あなたは何を意味するのか分かりません。プロジェクト全体を分岐させると、それはさらに大きくなります(ブランチは通常トランクのコピーであるため、意味をなさないことを別にしてください)。 –

+0

現在の構造では、Project-xを取得する人々はすべてのブランチをダウンロードする必要があります。アセットをブランチに含めると、project-xはダウンロードされず、project-x/some_branchの – maxim1000

+0

しかダウンロードされませんが、それはうまくいかないでしょう。 PSDファイルのような私たちの「ソース資産」はトランケート/分岐するべきではありませんが、「コード」の一部であるPNGファイルのような「コンパイル済み資産」はすべきです。 –

1

不要と思われるフォルダを右クリックし、[リビジョンに更新...]に移動します。ポップアップするダイアログで、更新深度を「除外」に設定します。 (注意してください、これはフォルダのためだけに機能します)。これは作業コピーから削除しますが、リポジトリには影響しません。 Tortoiseは更新中にそれを試して更新しないことを知っているだけです。

元に戻すには、親フォルダ(または親フォルダなど)を右クリックし、[Repo Browser]を選択します。除外されたフォルダを見つけて右クリックし、[更新するアイテムを更新]を選択します。同じダイアログが表示されます。この時間は、ちょうど確認し、それは述べています。これは、作業コピーからすべての枝を削除します

find . -name branches -exec svn update --set-depth empty {} \; 

(作業コピーのルートから)「作業コピー」

Undo check out of subfolder in TortoiseSVN

6

、および将来のアップデートそれらをダウンロードしません。 ブランチを見たいデベロッパーは、その後に次のことができます。

svn update --set-depth infinity branches\my-feature-branch 
関連する問題