svn稀疏目錄--通過設置工作目錄的深度(depth)實現目錄樹的部分簽出


對於一個大的版本庫來說,本地工作目錄簽出整個目錄樹是即費時又占地兒的。
雖然可以只簽出某個子目錄樹,但有時候還是需要從根目錄簽出。
那么,怎么才能只把自己感興趣的子目錄簽出來呢?

從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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM