我有一个目录结构像这样的项目:
project
|--source
|--fgh
|--...
|--ijk
`--tests
|--abc
|--cde
|--...
|--utils
我想检出source
和tests/utils
目录(以及递归地检出其中的所有内容)。其余目录(如abc
, cde
,…)不应该被检出,因为它们太大了。
我想svn co --depth empty
就是我要找的。但是,如果test
不存在,那么如何在签出完成后仅签出tests/utils
?
你做对了——像这样做:
svn co [REPO-URL] --depth emtpy
svn up [PROJECT]/source --depth infinity
svn up [PROJECT]/tests --depth empty
svn up [PROJECT]/tests/utils --depth infinity
编辑: LazyBadger认为"--set-depth
代替svn up
会更正确"。嗯,SVN文档非常清楚地说明了--set-depth
选项(强调我的):
使用这个选项,您可以更改工作拷贝项的粘贴深度。
然而,在这种情况下,我们没有更改任何先前签出的工作副本项-我们正在从头开始一步一步地构建一个(稀疏的)工作副本。那么为什么--set-depth
更正确呢?它不是。但是为了完整起见,如果您想多输入一点,您还可以这样做:
svn co [REPO-URL] --depth emtpy
svn up [PROJECT]/source --set-depth infinity
svn up [PROJECT]/tests --set-depth empty
svn up [PROJECT]/tests/utils --set-depth infinity