SVNでsvn:externalsを使う

2010/03/09 | By KUMA | Filed in: 技術メモ.

ライブラリにするまでも無いソースを複数のプロジェクトで共有したかったので、SVNでそのような機能がないか探したところ、svn:externals属性をつけることでフォルダ単位(ファイル単位はまだできないっぽい?)で可能とのこと。

これまで使ったことが無かったので手順をメモに残す。

自分のSVNクライアントがTortoiseSVNでsvn:externalsの使い方のマニュアルを読んだが分かりづらかった。仕方がないのでググッたら素晴らしいページを発見。ページが消えると悲しいのでバックアップがてらガッツリ引用。

1. チェックアウト済みのワーキングフォルダのどこかに共有内容を持つことにする。

2. ext_sampleフォルダを右クリックし、コンテキストメニューからプロパティをクリック

3. Subversionタグを選択。

4. 属性ボタンをクリック

5. 新規をクリックして「svn:externals」を選択

6. (ここからが新事実!)引っ張って来たいフォルダを先に書いて、次にそれが格納されるフォルダ名を書く。

例) ^/branch01/module moduleAAA

=> 同じリポジトリのルートは’^/’であらわせます。つまり、リポジトリルートからたどって

/branch01/module

というフォルダを

ext_sample

以下の

moduleAAA

にコピーするということ。

既に引用の域を超えてる気がしますが許してください。どうもありがとうございます。

あと、参照元のパスの指定方法には複数の方法があるみたい。

  • 自身のリポジトリルートを指定する場合

^/hoge

  • 自身のリポジトリの親ディレクトリを指定する場合

../huge

  • 外部のリポジトリ指定をする場合、プロトコルに依存させない

//exsample.com/hoge/

  • 外部のリポジトリ指定をする場合、単純なフルパス

http://exsample.com/hoge/

— 2010/03/10 追記 —

↑の方法だと、チェックアウトしたところにしか参照が反映されないため、リポジトリブラウザでこの属性を指定してやると、全てに反映される。


Tags: , ,

Comments are closed here.