Subversionで外部定義したリポジトリを使用する−svn:externals

SVNを使用してソースコードを管理している時、共通して使用するライブラリなどを複数のプロジェクトで使用したいケースや、プラグインのようにあるプロジェクトの一部を異なるリポジトリに配置したいケースがあります。
このような時、Subversionの外部定義機能を使えば、簡単に実現可能です。
http://subversion.tigris.org/svn_1.5_releasenotes.html#relative-externals

SVNプロパティに追加

設定はSVNプロパティに行います。

  1. 外部から取り込むプロジェクトのワークスペースディレクトリ)を追加する
  2. SVNプロパティにsvn:externalsを追加する
  3. 値には「ワークスペースリポジトリURL」と記述する

例えば、RailsのPluginを別リポジトリからチェックアウトする場合、
/venser/plugins/xxx というワークスペースディレクトリ)を作成し、/venser/plugins/のSVNプロパティに次のように記述します。

svn:externals
xxx http://repo/svn/xxx/trunk

複数のリポジトリを外部定義する場合は、改行してワークスペースリポジトリを複数定義していきます。

相対パスの指定

Subversion1.5からは、リポジトリのパスに相対URLを指定することも可能になっています。
^/ で開始をすれば、そのリポジトリのルートから記述できるので次のように書けるでしょう。

svn:externals
xxx ^/xxx/trunk