在使用--depth跳过文件后,在svn中获取文件

时间:2012-01-27 19:43:43

标签: svn

在这里接下来的另一个问题,我使用--depth检查了一个副本以忽略多个gigabity旧分支,但现在我在获取我想要的文件时遇到了一些麻烦。

我的项目树:

./
|-- proj 1
|    |-- branches
|    `-- trunk
|-- proj 2
|    |-- branches
|    `-- trunk
`-- proj 3
     |-- sub proj A
     |   |-- branches
     |   |-- trunk
     |-- sub proj B
     |   |-- branches
     |   |-- trunk
    ...

所以,我做了什么: svn checkout $url /workingcopy --depth empty

然后: for $f in /workingcopy/*; do svn up "$f/trunk"; done

现在,我跳的东西会起作用: cd /workingcopy/proj3; svn up --depth empty

但不是取出subproj dirs,而是退出说“revision x”

如何获取空目录中的所有文件/目录,因为如果已使用--depth签出/更新

更新:忘记提及,svn up proj3/subprojA --depth empty;确实有效。但我有几十个这样的文件...寻找一些可以像结帐一样取出它们的东西

1 个答案:

答案 0 :(得分:1)

SVN更新将始终将自己限制在之前完成的结帐深度。 因此,您需要运行多个'svn checkout'命令(vs svn update)。

我将如何做到这一点:

svn checkout $url /workingcopy --depth immediates

这会让你获得所有'projX'文件夹,没有内容。

for $f in /workingcopy/*; do svn checkout $url/$f /workingcopy/$f" --depth immediates; done

这会获取projX / [trunk | tags | branches],也没有内容。

svn checkout $url/proj3/trunk /workingcopy/proj3/trunk

这将检查proj3的trunk文件夹的完整内容。