2012-01-27 58 views
2

继这里的另一个问题之后,我使用--depth检出了一个副本来忽略多个gigabity旧分支,但是现在我在获取文件时遇到了一些麻烦我的确想要。在你跳过svn文件之后抓取文件--depth

我的项目树:

./ 
|-- 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

但而不是提取子程序,我t只是退出说“修订x”

我如何获取所有的文件/目录是空的目录,因为如果检出/更新--depth?

更新:忘记提及,svn up proj3/subprojA --depth empty;确实有效。但我有几个这样的文件...寻找的东西,将他们都像结帐

+0

首先,我不明白你是如何在工作副本中获得'proj 3'目录的。其次,你究竟想要得到什么 - “proj 3”子树的所有目录/文件或者只有它们的一部分? – Paker 2012-02-04 21:37:06

+0

@Paker,你是什么意思?只需添加目录并提交。然后检查出来。我用--depth参数让它们变空了。我想要的是获得所有的trunks,可能在proj1下,或者在projx/subprojZY下,但不在分支上。 – gcb 2012-02-05 22:22:15

回答

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的主干文件夹的全部内容。

+0

渐渐相信除了'更新脚本'之外没有办法。你是对的 – gcb 2012-02-05 22:20:44