[Subversion] svn:externals で外部リポジトリを取り込む

No Photo

イメージ

バシャログでも総選挙とかやってみたい!どうもこんにちは nakamura です。

今日は Subversion のお話です。Subversion はプロパティを使うことで色々気の利いた事ができたりするのですが、svn:externals というプロパティを使うとリポジトリの中に別のリポジトリを取り込むことができます。

例えば自社開発のライブラリなどはライブラリ用のリポジトリにコミットしておいて、各プロジェクトのリポジトリでは svn:externals を使って使用するライブラリを取り込む。そうするとライブラリにバグフィックスを施した際など、一箇所にコミットするだけで済むので管理がとても楽になりますね。

svn コマンドで使う

一例として mediawiki のエクステンションを svn:externals を使って導入する際の手順をご紹介します。

mediawiki の extensions ディレクトリに移動。

cd /var/www/htdocs/mediawiki/extensions

svn propset で svn:externals プロパティをセットします。今回は SyntaxHighlight_GeSHi というエクステンションを引っ張ってきます。

svn propset svn:externals "SyntaxHighlight_GeSHi http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/" .

引数がよく分からないと思うので解説すると、こんな感じです。

svn propset svn:externals "{作成されるディレクトリ名} {取り込むリポジトリ}" {プロパティをセットする場所}

上記はプロパティをセットするだけなので、svn up で作業コピーを更新します。

svn up .

TortoiseSVN で使う

もちろん TortoiseSVN でも設定することができます。extension ディレクトリを右クリック、TortoiseSVN の『属性』をクリックします。

20110610_nakamura_01.png

属性一覧の画面になるので右下の『新規』をクリック。

20110610_nakamura_02.png

属性名に svn:externals を選択、属性値に以下のように入力します。svn コマンドと同じく作成されるディレクトリ名と取り込むリポジトリの URL のスペース区切りです。

20110610_nakamura_03.png

以上の設定をした上で extensions ディレクトリに更新をかければ外部リポジトリを取り込むことができます。

僕も最近知った機能なのですが、よく使うライブラリやプラグインなどこの方法で管理しておくと楽だなぁと思います。

終わりに

どうにも最近更新が滞りがちですいません。メンバーみんなちゃんと会社には来ているのでご安心ください!

photo
Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)
Mike Mason でびあんぐる
オーム社 2007-04-21

by G-Tools , 2011/06/10

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ