ここには「良い」答えはありませんが、1 つまたは 2 つのプロジェクトを含む SVN リポジトリと、100 を含むその他のリポジトリとを区別する必要があると思います。
私は VSS から移行された SVN リポジトリを維持しています。その中には数百の「プロジェクト」があり、トランク/ブランチ/タグ構造に沿って編成されたものはありません (実際、この構造は本当に不要で役に立たないと思います。しばらく SVN を使用していましたが、2 つまたは 3 つのプロジェクトを 1 つの変更としてタグ付けする必要がある場合には、まったく役に立ちません)。
私たちは、管理しているすべてのソフトウェアのプロジェクト ディレクトリを管理しています。その下には、構成用のサブディレクトリとソース用のサブディレクトリがあります。それらの下には製品のバージョン番号があります - 効果的にトランクの概念を捨てているので、タグディレクトリしかありません - 最大の番号はトランクです (プロジェクトの複数のバージョンを同時にサポートする必要があるため、これを行う必要があります)。マージは必要に応じて行われるので、プロジェクト A のバージョン 3.0 のバグを更新すると、これらの変更をバージョン 4.0 と v5.0 にマージします。
1 つまたは 2 つのプロジェクトだけでレポを作成する場合、ブランチ/タグ構造を保持したくなるかもしれませんが、その一方で、おそらくメイン ツリーでディレクトリを明示的に保持するでしょう (そうしなかったと仮定します)。定期的にタグ付けするのに十分な頻度でリリースします)(リビジョン番号を「タグ」として使用し、そこにバイナリを保存します。したがって、特定の古いリビジョンを取得する必要がある場合は、ログを見て正しいバイナリを取得できます)
現在、revnum が 300,000 を超えている 10Gb のレポがあり、古いコードと新しいコードがたくさんあることを考えると、管理は驚くほど簡単です。私は他の人に構造をお勧めし、再びそれを使用します.
ちなみに、タグ dir が機能しないもう 1 つの理由は、バグや変更要求があるたびに、どんなに小さなものでもリリースするためです。タグ ディレクトリは、しばらくすると管理できなくなります。これが revnum をタグとして使用する理由です。これをバグ トラッカーと関連付けて、人間が読みやすいようにすることもできます。
大まかに要約すると、v1 と v2 が製品バージョンである次のようなディレクトリ構造があります。
maint/source/v1.0/projectA
maint/source/v1.0/projectB
maint/source/v2.0/projectA
maint/source/v2.0/projectB
etc
明らかに、「ソース」の下にブランチ ディレクトリを配置し、各サブプロジェクトの下にブランチ/タグを配置することもできますが、2 つのサブプロジェクトを 1 つの変更要求としてリリースする必要がある場合は注意が必要です (よくあることです)。ソース ディレクトリの下にサブディレクトリにタグを付けると、サブプロジェクトが 1 つだけ変更されたときに、すべてにタグを付けることになります (各サブプロジェクトを個別に追跡するという要件には適合しません)。