問題は、Subversionリポジトリ(複数のリポジトリを持つことができます) が Apache でどのようにセットアップされているかです。
Apache では、Subversion リポジトリをセットアップする方法が 2 つあります。次のように、各リポジトリを個別に実行できます。
<Location /svn/repos>
DAV svn
SVNPath /path/to/repositories/repos
</Location>
<Location /svn/repos2>
DAV svn
SVNPath /path/to/repositories/repos2
</Location>
この場合、https://hostname/svn/reposおよびを介してこれらのリポジトリにアクセスできますhttp://hostname/svn/repos2。
ご想像のとおり、大量のリポジトリがある場合、保守がかなり困難になる可能性があります。新しいリポジトリを作成するたびに、Apache 構成を更新する必要があります。50 ほどのリポジトリがある場合、構成ファイルが非常に長くなり、維持するのが難しくなります。
これを処理するために、Apache では、一連の Subversion リポジトリを 1 つの構成で構成できます。
<Location /svn/repo>
DAV svn
SVNParentPath /path/to/all/svn_repositories
</Location>
これで、リポジトリ/path/to/all/svn_repositories/proj_aおよびがある場合、および/path/to/all/svn_repositories/proj_bを介してそれらにアクセスできます。http://myserver/svn/repo/proj_ahttp://myserver/svn/repo/proj_b
https://myserver/svn/repoは単一のリポジトリのルートではなく、すべてのリポジトリを含むディレクトリを表すApache仮想ディレクトリであることに注意してください。
さて、ここに 573,198.52 ドルの質問があります (インフレを伴う 64,000 ドルの質問): にコミットするとhttp://hostname/svn/repo/proj_a、 の最新のリビジョン番号も更新されhttp://myserver/svn/repo/proj_bますか? そうでない場合、各プロジェクトは個別の Subversion リポジトリであり、複数の Subversion リポジトリが同じインスタントを共有できる 2 番目の例に示すように構成されます。
つまり、 を作成するにはnew_project、Subversion サーバーにログオンし、svnadmin createコマンドを使用して新しいリポジトリを作成する必要があります。その後、URL からすぐに利用できるようになりhttps://hostname/svn/repos/new_projectます。
への変更をコミットするとproj_aの最新リビジョンがインクリメントされる場合、すべてのプロジェクトは単一の Subversion リポジトリにあり、有効な Subversion ディレクトリとしてproj_b使用できるはずです。https://hostname/svn/repoチェックアウトを試してください:
$ svn co --depth=immediates https://hostname/svn/repo
ディレクトリをチェックアウトするだけで、すべての--depth=immediatesサブディレクトリを再帰することはありません。このようにして、使用できる作業ディレクトリが作成されます。
$ svn co --depth=immediates https://hostname/svn/repo
$ cd repo
$ svn mkdir --parents new_project/trunk new_project/tags new_project/branches
$ cd ..
$ svn status
A new_project/trunk
A new_project/tags
A new_project/branches
$ svn commit -m "added new_project"
それが役立つかどうかを確認してください。