分岐は、日常業務では必要ありません。全員がメイン ソース ディレクトリ内のファイルで作業するようにします。コードをサブディレクトリ (「/trunk」など) に移動して、ルートに他のディレクトリ (たとえば、ブランチ用のディレクトリ) を配置できるようにするのが賢明な場合があります。
開発すると競合が発生しますが、それらは小さく、簡単に解決できる必要があります。コミットはできるだけ小さくする必要があります。TortoiseSVN には、コミット時に競合を解決するための優れたユーザー インターフェイスがあります。
ブランチを使用する必要があるのは、2 人以上の開発者がトランクにコミットできない機能で共同作業する場合のみです。たとえば、次のリリースでリリースする準備ができておらず、後のリリースが予定されている場合などです。
ブランチを作成するのに適したタイミングは、アプリケーションをリリースするときです。最初のリリース用に 1.X というブランチを作成します。その後、トランクで 2.0 に向けて作業を続けます。1.X ブランチでは 1.0 リリースをビルドでき、その後 1.1 リリースなどもビルドできます (トランクでの 2.0 に向けた作業を妨げることはありません)。
これら 2 種類のブランチの違いに注意してください。リリース ブランチはトランクからフォークされ、永久に存続します。個々のバグ修正はトランクとリリース ブランチの間でマージできますが、リリース ブランチがトランクにマージされることはありません。
機能ブランチでは、トランクの変更はマージによって継続的にインポートされます。機能が完成すると、ブランチ全体がトランクにマージされ、その後ブランチは使用されなくなります。
Release branches __testing_1.X__..._rel_1.0___.._rel_1.1 ___2.X_branch_
/ /
___________trunk__________/_______trunk______________________________/____..
\ /
\_____really big feature for v2 only__________/
Feature branches
日常の開発では、分岐を好きなだけ使用できます。1 つのオプションは機能ごとに 1 つのブランチですが、小規模なチームの場合、解決するよりも多くの問題が発生することに気付くでしょう。通常、SVN で競合を解決する方が、複数のブランチを管理して多数のマージを実行するよりもはるかに簡単です。他のバージョン管理システム (Git など) では状況が異なります。