Subversionの外部定義「svn:externals」

参考:Seasons.NET

Subversionは外部定義をサポートしています。外部定義は、ローカルディレクトリを
バージョン管理されたリソースのURL―や特定のリビジョン―に結びつけるものです。
Subversionでは、svn:externals属性を使って外部定義をグループにして宣言します。
svn propsetか、svn propedit コマンドでこの属性を作ったり修正したりすることが
できます。

まあつまり…複数の作業プロジェクトの中で、

共通したディレクトリを共有することができる、とゆーことなんね。

ということで、やってみた。

 /app
  └/controllers
     ├/admin
     └/user

というディレクトリ構造になっていて、adminディレクトリを外部参照したいとき。

  1. SVNコマンドで

    svn propset svn:externals 'admin <参照URL:ssh?http?…>' controllers
    • prosetディレクトリのSVNプロパティを設定するコマンド
    • svn:externalsSVNプロパティの設定項目
    • '引数1 引数2'→引数1は下層に作るディレクトリ名、引数2は参照先のURL
    • controllerscontrollersディレクトリ(親)のプロパティとして設定


  2. TortoiseSVN

    1.controllersディレクトリを右クリック-[TortoiseSVN]-[Properties]-[Add]

    2.Property name に"svn:externals"

    3.Property value に"admin <参照URL:ssh?http?…>"

    ※複数設定したい場合は、valueの中で改行して同じ記述を。

  3. Subcripseで

    1.controllersディレクトリを右クリック-[Team]-[プロパティの設定]

    ※以下、TortoiseSVNと同様。


    設定内容を確認したいときは[Team]-[プロパティの表示]で見る。