很多時候,你的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
tags目錄雖然是乙個標籤副本,但在checkout的過程中,是會針對乙份完整**的,因此很多人都不希望在本地的working copy中保留這個tags目錄。遺憾的是,svn co命令並沒有這樣乙個選項去忽略這個目錄。
事實上,我也遇到了這個問題,在我看了很多help之後,終於找到了辦法。具體如下(分兩種情況討論):
換句話說就是,你已經將svn中完整的repos/directories checkout到本地了(本地已經有乙份你在伺服器端的完整copy了)。這時,你只需要執行以下命令將tags以及branches目錄排除在svn up列表: #
svn
update
--set-depth=exclude
tags branches
d tags
d branches
選項後面可以跟多個目錄,這樣,就在你當前的working copy中成功的將tags和branches目錄排除掉了,在你下一次的update中,就不會去理會這兩個目錄了,但同時***了你的project是在version control下的,因此不需要每次都逐個進入目錄進行svn up了。
這種情況如果是在windows下,就顯得非常簡單,你只需要使用烏龜客戶端的「choose item」按鈕。
但是如果是在命令列的情況下,那就要稍微複雜一點了,請按照如下操作:
1. 首先將目錄樹checkout到本地:
2. 將你不想co的目錄排除在外(比如這裡我想排除backup, data, doc, src, tool這五個目錄,只想checkout scripts目錄):
[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
3. 更新你想要的scripts目錄:
[root]@[fck_with_u]:[~/temp/my_checkout]->>svn
update --set-depth
infinity
scripts/
a scripts/trunk
a scripts/trunk/test
...........
這樣,目的就達到了!說煩也不煩!
from:
SVN實現在更新本地版本庫時忽略指定目錄
很多時候,你的svn repo 假定project 很大 這裡指包括所有tags和branches 但是其實你真正需要的卻只有一兩個 比如說trunk,以及和trunk平級的install目錄,同時install目錄和trunk目錄有著這樣活那樣的聯絡 這時你就希望在svn co的時候是co整個pr...
svn版本庫瀏覽器 批量更新SVN版本庫的指令碼
接下來就是如何自動化的問題了。我那些版本庫不都是在同一巢狀層上的,有的深有的淺。例如說這樣 repository ironruby trunk nemerle ruby ruby 1 8 trunk 星號標註的是要更新的目標。怎麼辦呢?只好遞迴搜尋了。反正能找到帶有 svn 目錄的最上層目錄就被認為...
本地版本跟svn版本對比 SVN(版本控制)
1.工作原理 客戶端 服務端 2.svn常見操作 1.發布專案 share project 專案組長將本機的專案第一次發布到 倉庫 3.提交 commit 組員將修改後的內同步到伺服器 本地 伺服器 4.更新 update 將伺服器中的最新 同步到本地 伺服器 本地 注意 更新提交操作 要及時 防止...