不少时候,你的svn repo(假定project)很大(这里指包括全部tags和branches),可是其实你真正须要的却只有一两个(好比说trunk,以及和trunk平级的install目录,同时install目录和trunk目录有着这样活那样的联系),这时你就但愿在svn co的时候是co整个project而且忽略你不想要的目录。固然,你大可没必要co整个project,而单独co你想要的目录就好了。可是,从SCM的角度出发,你不能够强行改变用户的使用习惯,不排除就有这么些人喜欢这样操做,尤为是对于那些喜欢用命令行的人而言。windows
可能我这么说,你们没有什么概念,我给你们举个例子,你们应该就知道这是一种什么状况了:服务器
你们都知道,在一个项目的SCM管理中,每每要求开发者经过打tag的方式来进行版本发布,tag存在于tags目录,tags目录每每与trunk/branches目录平级,这里还有一个install目录,以下:svn
tags目录虽然是一个标签副本,但在checkout的过程当中,是会针对一份完整代码的,所以不少人都不但愿在本地的working copy中保留这个tags目录。遗憾的是,svn co命令并无这样一个选项去忽略这个目录。url
事实上,我也遇到了这个问题,在我看了不少help以后,终于找到了办法。具体以下(分两种状况讨论):spa
换句话说就是,你已经将svn中完整的repos/directories checkout到本地了(本地已经有一份你在服务器端的完整Copy了)。这时,你只须要运行如下命令将tags以及branches目录排除在svn up列表:命令行
选项后面能够跟多个目录,这样,就在你当前的working copy中成功的将tags和branches目录排除掉了,在你下一次的update中,就不会去理会这两个目录了,但同时有保证了你的project是在version control下的,所以不须要每次都逐个进入目录进行svn up了。ip
这种状况若是是在windows下,就显得很是简单,你只须要使用乌龟客户端的“Choose Item”按钮。开发
可是若是是在命令行的状况下,那就要稍微复杂一点了,请按照以下操做:get
1. 首先将目录树checkout到本地:it
2. 将你不想co的目录排除在外(好比这里我想排除backup, data, doc, src, tool这五个目录,只想checkout scripts目录):
3. 更新你想要的scripts目录:
这样,目的就达到了!说烦也不烦!