* depthオプション [#p0068191]

** depthオプションとは [#g2d697c9]
- depthオプションで、svn checkout等のターゲットのディレクトリ下をどのように参照するか指定する。
- set-depthオプションで、そのディレクトリのdepthのフラグを設定できる。
- depthオプションの引数は以下。
- depthオプションの引数(フラグ)は以下。
-- files
-- empty
-- immediates
-- infinity

** 前提 [#m8d8681d]
 PROJECT_ROOT
 |-- Makefile
 |-- bin
 |   `-- foo.exe
 |-- doc
 |   `-- README.txt
 `-- lib
     |-- bar.dll
     `-- baz
         `-- baz.dll
 
 4 directories, 5 files

** --depth empty ファイルもディレクトリも参照しない [#w1652a9d]
 $ svn co file:///$HOME/tmp/repos/ --depth empty working-copy
 $ cd working-copy
 $ ls
 (何もない)
 $ svn up
 $ ls
 (何もない)
 $ svn up Makefile
 $ ls
 Makefile


** --depth files ファイルだけ参照する [#ye586b3a]
別のワーキングコピーでdoc/install/install.txtが追加され、doc/README.txtが更新され、コミットされた。

 $ cd OHTER_WORKING_COPY/
 $ svn commit -m 'update'
 追加しています              doc/install
 追加しています              doc/install/install.txt
 送信しています              doc/README.txt

このワーキングコピーでdocディレクトリ以下のファイルだけ取り出すように--set-depth filesでフラグを付けて、svn updateする。
 $ cd THIS_WORKING_COPY
 $ svn up --set-depth files doc
 U    doc/README.txt

README.txtファイルだけ更新された。以後、このワーキングコピーではdocディレクトリ以下はファイルだけしか参照しない。
 $ svn up doc
 $ ls doc/
 README.txt

** --depth immediates 直下のファイルとディレクトリだけ参照する [#dc551677]
 $ svn co file:///$HOME/tmp/repos/ --depth immediates somefiles
 A    somefiles/doc
 A    somefiles/lib
 A    somefiles/bin
 A    somefiles/Makefile

** --depth infinity ファイルも更新も再帰的に参照する[#za3e02c4]
 $ svn co file:///$HOME/tmp/repos/ --depth infinity allfiles
 A    allfiles/doc
 A    allfiles/doc/install
 A    allfiles/doc/install/install.txt
 A    allfiles/doc/README.txt
 A    allfiles/lib
 A    allfiles/lib/bar.dll
 A    allfiles/bin
 A    allfiles/bin/foo.exe
 A    allfiles/Makefile

** 参考 [#m46963c3]
http://svnbook.red-bean.com/en/1.6/svn.advanced.sparsedirs.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS