svn checkout https://svn.com/svn/project
該操作從svn服務器上拉代碼下來,並且建立本地和遠端的文件對應,狀態的關聯。
1,和export的區別
svn檢出操作,和export不同的是:checkout會有.svn文件,和svn server端是關聯的;而export只下載文件,沒有.svn文件,和svn server端沒有關系,本地修改不會有狀態標識。
2,檢出部分目錄
關鍵參數控制:--depth
--depth ARG : limit operation by depth ARG ('empty', 'files','immediates', or 'infinity')
--set-depth ARG : set new working copy depth to ARG ('exclude','empty', 'files', 'immediates', or 'infinity')
empty:不檢出項目的任何文件;
files沒用過;
immediates:目錄的第一級;
infinity:整個目錄所有文件
案例:
一個項目有很多的tags,很多的branches,一個trunk。好多時候不用關心所有tags,branches,但是會關心branches(tags)下面的第一級目錄。
需求A:檢出整個項目,包含branches,tags,trunk目錄,branches/tags包含第一級目錄,trunk包含全部的代碼
操作1:svn checkout https://svn.com/svn/project --depth=immediates
定位到project目錄
操作2:svn checkout https://svn.com/svn/project/trunk --depth=infinity
操作3:svn checkout https://svn.com/svn/project/branches --depth=immediates
操作4:svn checkout https://svn.com/svn/project/tags --depth=immediates
注意,這個時候會有個問題,如果分支太多,而我們只關心某幾個,我們希望刪除其它無用分支。
操作3的后續操作:1,刪除當前所有或者其中幾個目錄,rm -rf ./*;2,查看當前所有分支,svn list;3,更新需要的分支,svn update myBranch;
需求B:檢出某個branches版本
操作:cd project/branches; svn checkout https://svn.com/svn/project/branches/branch1 --depth=infinity