如何进行任意结构的稀疏结帐

How to do an arbitrarily structured sparse checkout

我有一个目录结构如下的项目:

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

我想检查 sourcetests/utils 目录(以及递归地检查其中的所有内容)。其余目录(如 abccde、...)不应检出,因为它们很大。

我认为 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 is arguing that "--set-depth for svn up will be more correct way". Well, the SVN documentation 非常清楚地说明 --set-depth 选项(强调我的):

It is with this option that you can change the sticky depth of a working copy item.

但是在这种情况下,我们不会更改任何以前签出的工作副本项目 - 我们正在逐步从头开始构建(稀疏)工作副本。那么为什么 --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