不少時候,你的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目錄:
這樣,目的就達到了!說煩也不煩!