ライブラリにするまでも無いソースを複数のプロジェクトで共有したかったので、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: svn:externals, TortoiseSVN, Windows
Comments are closed here.