2

ブランチ、タグ、トランクを含む svn リポジトリがあります。新しいブランチを作成するとき、そのブランチへの svn スイッチを使用する必要がありますか? そのブランチディレクトリで直接作業しないでください。

ばかげて聞こえたらごめんなさい。

4

3 に答える 3

3

そのブランチへのsvnスイッチを使用する必要がありますか?

RFC に関しては、「必須」ではなく、「持たない」ことさえありません。トイレを切り替えることはできますが、「切り替えるかどうか」は重いワークフロー、スタイル、および状況に依存します

いくつかの乾いたよく知られた理論

  • すべての WC には、(現時点では)リポジトリ ルートURL属性が 1 つあります。
  • RepoRoot URL以下のオブジェクトでは WC で (トリックなしで) 操作できません
  • タグとブランチはリポジトリ内では安価なコピーですが、作業コピー内では (一般的に) 安価ではなく、「オリジナル」と同じスペースを浪費します。
  • 好みに応じて、作業コピーのルートとしてリポジトリ内の任意のノードを選択できます
  • リポジトリのさまざまな部分に任意の量のワーキング コピー (1+) を使用できます

上記のすべては、次の事実につながります。

  • 常に 1 つの WCを使用し(より少ないスペース、より多くのトラフィックと切り替え時の更新時間)、リポジトリ ツリーの奥深くにあるノードにルートし、必要に応じてこの WC を他のノードに切り替えることができます。
  • 関連のないノードごとに 1 つの WCを使用して(より多くのスペース、より少ないトラフィック - スイッチなし、スイッチ後に WC を同期する必要がない)、WC を変更できます。
  • (場合によっては) ルートからリポジトリ全体の WC を取得し (タグ/ブランチ側で頻繁に変更が行われる場合、最大のスペースとトラフィックの使用、WC のレポの不要な未使用部分) 、単一の WC ツリーをナビゲートできます。

ご覧のとおり、スイッチは 1/3 の状況でのみ必須です

于 2012-10-10T13:48:08.103 に答える
1

レポが次のようになっていると仮定します。

.
├── branches/
│   ├── branch1/
│   │   └── src/
│   └── branch2/
│       └── src/
└── trunk/
    └── src/

レポ全体をチェックアウトした場合、ブランチは別のサブディレクトリとして表示されます。

ただし、通常の作業方法は、トランクをチェックアウトしてから、svn スイッチをブランチに切り替え、svn スイッチを元に戻すことです。この方法では、それほど多くのデータをチェックアウトする必要はありません。IDE は常に同じディレクトリを参照するため、混乱して誤って間違ったブランチを編集することはありません。

個人的にブランチを使用する必要がある場合は、それぞれをチェックアウトして、ワークスペース ディレクトリ内のディレクトリを並べて分割します。しかし、ほとんどの場合、分岐は避けます。

于 2012-10-10T14:01:06.380 に答える