LoginSignup
27
26

More than 5 years have passed since last update.

svnの属性にめげない

Posted at

svn ignoreの設定を解除する時に苦労したので
調べたsvnの属性についてのメモ
理解は浅いので間違っているところあったらどんどこ突っ込んできてください。

属性の概念

svnには「属性」という渦巻く概念がある。渦巻いているかはわからないが。
svn helpコマンドで表示される利用可能なサブコマンド一覧の

   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)

prop系が主に「属性」に関係がある。

以下のドキュメント、前半部分を見ると主にcopyrightやlicense表示の時に使えるらしい。
http://discypus.jp/svnbook/svnbook_ja_html/ch07s02.html

いろいろな事に使えるsvnのメモ書き機能といったところか。

他にも、svnの機能としてsvn:の名前空間を保持していて特殊な操作を行う事が出来る。
その中にsvn:ignore等が存在し、バージョン管理から除外する設定に使うことができる。

svn:ignore属性の削除

svn:ignoreの設定を削除する目的のもと調べていたのでsvn:ignore設定削除だけでも先に記しておく

# 設定されている属性と個数を表示
svn pl -R ./ | grep "svn:" | sort | uniq -c

# 設定ディレクトリを確認
svn pg -R svn:ignore ./

# ignore削除
svn pd svn:ignore 対象のディレクトリ

これでignore属性の削除が出来る

svn proplist (plist, pl) コマンドとedit以外は属性値を引数として与える事がほとんど必須なので、一旦設定されている属性を表示させて属性値のつづり等を確認している。
標準ままだと出力がえらい事になるのでパイプを使って重複を削除している。

属性値を確認するコマンドは忘れそうなので自分は.bashrcにエイリアスを張っておいた。

ちなみに追加は

svn ps svn:ignore 対象のディレクトリ

属性一覧

他にもある属性をかいつまんでまとめておく

svn:ignore

svnのバージョン管理から除外したいときに設定する。
svn stでも表示されなくなるが
svn st --no-ignore で表示される。

svn:mime-type

バイナリファイルに設定される属性。
通常svnは行単位で変更点をマージしようとするが、それを行わないようにする。
これをバイナリファイルにちゃんと設定してやるとsvnのマージやアップデートが早くなる?ってことかも?

svn:keywords

svnの情報をファイル内に記述する事が出来る。
キーワードを設定してファイル名に$キーワード名$を記述しておくと展開される。
キーワードはDate Revision Author HeadURL Id が使用可能

svn:eol-style

OS毎の改行コードの設定をよしなにやってくれる
賢いやつ

config設定

毎回、属性を設定するのは面倒なので
設定ファイルに記述して自動で設定を付与する事も出来る。

vi ~/.subversion/config

ここら辺に設定例が乗っているので真似してみるのも良いかもしれない
http://trac.symfony-project.org/wiki/SymfonyRepositoryTips

27
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
26