SVN实现在更新本地版本库时忽略指定目录
很多时候,你的svn repo(假定project)很大(这里指包括所有tags和branches),但是其实你真正需要的却只有一两个(比如说trunk,以及和trunk平级的install目录,同时install目录和trunk目录有着这样活那样的联系),这时你就希望在svn co的时候是co整个project并且忽略你不想要的目录。当然,你大可不必co整个project,而单独co你想要的目录就行了。但是,从SCM的角度出发,你不可以强行改变用户的使用习惯,不排除就有这么些人喜欢这样操作,尤其是对于那些喜欢用命令行的人而言。
可能我这么说,大家没有什么概念,我给大家举个例子,大家应该就知道这是一种什么情况了:
大家都知道,在一个项目的SCM管理中,往往要求开发者通过打tag的方式来进行版本发布,tag存在于tags目录,tags目录往往与trunk/branches目录平级,这里还有一个install目录,如下:
project/ |-- branches | |-- branch1 | |-- branch2 | `-- branch3 |-- install |-- tags | |-- tag1 | |-- tag2 | |-- tag3 | |-- tag4 | `-- tag5 `-- trunk `-- src
# svn update --set-depth=exclude tags branchesD tagsD branches
[root]@[Fck_with_U]:[~/temp]->>svn co http://svn_test_url.com/test_dir my_checkout --depth immediates A my_checkout/backup A my_checkout/doc A my_checkout/scripts A my_checkout/src A my_checkout/data A my_checkout/tool Checked out revision 736189
[root]@[Fck_with_U]:[~/temp]->>cd my_checkout/ [root]@[Fck_with_U]:[~/temp/my_checkout]->>ls backup data doc scripts src tool [root]@[Fck_with_U]:[~/temp/my_checkout]->>svn up --set-depth=exclude backup data doc src tool D backup D data D doc D src D tool