如何进行任意结构的稀疏签出



我有一个目录结构像这样的项目:

project
|--source
|--fgh
|--...
|--ijk
`--tests
   |--abc
   |--cde
   |--...
   |--utils

我想检出sourcetests/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

最新更新