4

最近、プロジェクトのトランクの最初のブランチを作成しました。トランクはかなり大きく(数GB)、サーバーにとっては問題ではありません。これは、サーバーでの効率的なリンクを介してブランチが作成されるためです。ただし、クライアントの作業コピーでは、プロジェクトは実際には2倍のスペースを必要とします(すべてのWCはリポジトリルートからのものです)。

ブランチを本当に必要とする人はごくわずかなので、TortoiseSVNを使用して他の人がすべてのブランチを無視する(つまりダウンロードしない)にはどうすればよいでしょうか。

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

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

5 に答える 5

6

簡単な解決策-/trunkに切り替えます。トランク以外に何も必要ない人は、/rootからではなく/root/trunkからチェックアウトできます。ブランチが必要な場合は、別のディレクトリにあるブランチをチェックアウトする必要があります。

より複雑なソリューション-必要なものだけをチェックアウトし、ツリー構造を維持します。すべてを自由に使用し、必要なものだけを使用する場合は、次の手順に従います。

  1. オプション「即時の子のみ」を使用したルートからのチェックアウト
  2. オプション「完全再帰」を使用したルート/トランクからのチェックアウト

誰かが特別なブランチをチェックアウトしたい場合は、前の2つの手順の後で:

  • 「即時の子供のみ」オプションを使用したルート/ブランチからのチェックアウト
  • オプション「完全再帰」を使用したその特別なブランチからのチェックアウト

このテーマの詳細については、SVNの優れた本の「スパースディレクトリ」の章を参照してください。

ブランチをチェリーピックするこの手順への近道はありません。バッチファイルとTortoiseProcを除く。

編集:すでにリポジトリ全体をチェックアウトしていて、スペースを節約するために何かを除外したい場合は、チェックアウト部門「除外」で除外したいフォルダでコマンド「アイテムを更新して改訂」を使用します。マニュアルによると、このオプションは[リビジョンに更新]ダイアログでのみ使用できます。私はそれがまさにこの目的のためのものだと思います。

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

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

于 2010-11-28T13:39:31.950 に答える
6

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

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

これにより、作業コピーからすべてのブランチが削除され、今後の更新でそれらがダウンロードされなくなります。ブランチを確認したい開発者は、次のことができます。

svn update --set-depth infinity branches\my-feature-branch
于 2013-11-12T23:52:36.373 に答える
1

私はあなたがこのような構造を持っていることを望みます:

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

その場合、ユーザーは、のhttp://server/repo/trunk代わりに単にチェックアウトすることができhttp://server/repo、代わりにブランチで作業したい場合は、作業コピーをに切り替えることができhttp://server/repo/branches/branch1ます。

于 2010-11-28T13:35:16.493 に答える
1

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

元に戻すには、親フォルダー (またはその親など) を右クリックして、[Repo Browser] を選択します。除外されたフォルダーを見つけて右クリックし、[アイテムをリビジョンに更新] を選択します。同じダイアログが表示されます。今回は、「作業コピー」と表示されていることを確認してください

TortoiseSVN でサブフォルダのチェックアウトを取り消す

于 2012-12-28T01:33:10.373 に答える
0

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

于 2012-07-04T14:36:25.377 に答える