いつものようにメモ。
属性とは
subversionがファイルに付けるメタ情報。
- 自由に名前と値を設定できていろいろ使えるらしい。(あんまりよくわかってない)
- subversionが標準で提供している属性(svn:~)があり、通常はこちらを使っていろいろ設定する。
- 属性もバージョン管理の対象となり、属性の変更を修正したりコミットしたり取り消したりできるらしい。(一部バージョン化されない属性もあるらしい)
設定の仕方
- svn propget 属性名前 ファイル名
- 属性値を得る
- svn propset 属性名前 属性値 ファイル名
- 属性を設定する
- svn propedit 属性名前 ファイル名
- エディタを使って属性を追加したり修正できる。EDITORに値を入れておく必要がある。
- svn proplist パス名
- パス上に存在する属性の名前の一覧を表示する。-vをつけると値もみれる
- svn propdel 属性名前 ファイル名
- 属性を消す
よく使う属性
よく使うだろう2つについて調べてみた。
svn:externals
外部定義を設定する属性。
外部定義とは
一つの作業コピー中に、複数のリポジトリからcheckoutしたファイルを含める方法。
外部定義をしなくても複数のリポジトリからcheckoutしたファイルを扱えるけど、その場合はそれぞれのリポジトリごとのcheckout作業が必要になるので面倒。外部定義を行う事で、メインのリポジトリのcheckoutのみを行うだけでよくなる。
やり方
svn propset svn:externals "プロパティを設定するパスからの相対パス リポジトリの場所" プロパティを設定するパス
おまけ
Railsでプラグインをインストールするときに、ついでに外部定義もしたい場合はxオプションを付けると自動で外部定義も設定してくれます。
script/plugin -x install hoge
svn:ignore
svn statusをすると、バージョン管理化にないファイルは通常
? hoge.txt
? fuga.txt
のように?付きで表示されてしまいます。バージョン管理下にないファイルがたくさんあると邪魔ですね。この表示を消したい場合に設定する属性がsvn:ignoreです。
やり方
svn propset svn:ignore 値 パス
値にはファイルのパターンを入れます。例えば"*.txt"とか。
svn:ignore属性のついたファイルを見たい場合
下記のようにすると、svn:ignore属性のついたファイルも見る事が出来ます
svn status --no-ignore