从svn1.5版开始,提供了稀疏目录(Sparse Directories)功能,允许对目录设置深度(depth),
这个设置可以保存在工作目录上,以后svn update等命令都在这个设置下工作。

步骤

先checkout整个项目

工具选择infinity,也可以用命令行的方式:

1
svn co --depth infinity https://192.168.1.1/svn/project

命令行排除需要排除的文件或文件夹

工具貌似没有,或许是我没找到
多个用空格分隔
这里排除项目下的.myeclipse文件夹和target文件夹

1
svn update --set-depth=exclude project/.myeclipse project/target

完成,重启一下开发工具或者直接去文件夹下,会发现排除的都不见了。

只检出部分目录方法

检出项目目录(不包含任何文件和子目录)

执行后会生成一个以项目名称结尾的空文件夹,这里生成project文件夹

1
svn co --depth empty https://192.168.1.1/svn/project

更新需要检出的文件夹或文件

比如我只要src文件夹,命令如下

1
svn update --set-depth infinity project/src

这里放上检出深度各选项含义

检出深度

你可以选择要检出的深度,它允许你指定子目录递归的深度。如果你只需要大目录中的几个子条目,你可以只检出最高层目录,然后递归的更新选择的目录。

全递归

1
--depth infinity

检出完整的目录树,包含所有的文件或子目录。

直接节点,包含目录。

1
--depth immediates

检出目录,包含其中的文件或子目录,但是不递归展开子目录。

文件子节点

1
--depth files

检出指定目录,包含所有文件,但是不检出任何子目录。

仅此项。

1
--depth empty

只检出目录。不包含其中的文件或子目录。

工作副本

1
working copy

保持工作副本指定的深度。此选项不用于检出对话框,但它是其它所有含有深度配置对话框的默认配置。