Chinaunix首页 | 论坛 | 博客
  • 博客访问: 622612
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: 项目管理

2016-08-25 00:21:03

官方文档: 

对于一个大的版本库来说,本地工作目录签出整个目录树是即费时又占地儿的。
虽然可以只签出某个子目录树,但有时候还是需要从根目录签出。
那么,怎么才能只把自己感兴趣的子目录签出来呢?

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

有以下几种depth可以选择:

--depth empty:只包含目录自身,不包含目录下的任何文件和子目录。
--depth files:   包含目录和目录下的文件,不包含子目录。
--depth immediates:  包含目录和目录下的文件及子目录。但不对子目录递归。
--depth infinity:  这是默认的,包含整个目录树。


例如,版本库有
trunk
branches
tags

branches下有很多子目录,b1,b2,b3....
本地希望签出trunk和b2,不关心b1和b3,那么可以这样操作:
1 使用--depth immediates签出根目录,这样会得到trunk,branches,tags三个空目录。
2 使用
--depth infinity签出trunk,这样会得到trunk整个目录树。
3 使用
--depth immediates签出branches,这样会得到b1,b2,b3....等空目录
4 使用
--depth infinity签出b2,这样会得到b2整个目录树。

当执行svn update /的时候,不会把不关心的b1,b3签出的,因为depth已经"记忆"在工作目录上了。

当其他人向版本库里提交了branches/bx后,可以
使用--depth immediates签出branches,这样工作目录会增加bx空目录,而不会影响b1,b2,b3...。
再使用--
depth infinity签出bx,即可。

另外,svn up有个参数--set-depth,可以修改保存在工作目录上的depth。

阅读(2570) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~