Subscribed unsubscribe Subscribe Subscribe

svnで指定したディレクトリ以下を見てほしくない場合は"--depth"オプションを指定する

Subversion

例えば

$ svn ls -R
hoge/
hoge/fuga
$ echo piyo > hoge/piyo
$ svn st
?       hoge/piyo
$ svn ps svn:ignore piyo hoge
property 'svn:ignore' set on 'hoge'
$ svn st
 M      hoge
$ echo fuga >> hoge/fuga
$ svn st
 M      hoge
M       hoge/fuga

こんな感じで"hoge"ディレクトリにsvn:ignoreを設定して、さらにその下にあるファイル"fuga"を変更している場合に、svn:ignoreの変更だけをcommitしたい、というとき。
普通にコミットすると

$ svn ci -m 'hogehoge' hoge
Sending        hoge
Sending        hoge/fuga
Transmitting file data .

とその下のファイルも一緒にcommitされてしまう。"--depth"オプションで"empty"を指定することで、これを回避できる。

$ svn st
 M      hoge
M       hoge/fuga
$ svn st --depth empty hoge
 M      hoge
$ svn diff --depth empty hoge

Property changes on: hoge
___________________________________________________________________
Added: svn:ignore
   + piyo


$ svn ci --depth empty hoge -m 'hogehoge'
Sending        hoge

Committed revision **.
$ svn st
M       hoge/fuga