專家指導(dǎo):SVN學(xué)習(xí)筆記
本節(jié)就在學(xué)習(xí)SVN的過程中總結(jié)的SVN學(xué)習(xí)筆記和大家分享一下,內(nèi)容主要包括SVN的安裝和一些基本的操作等,歡迎大家一起來學(xué)習(xí)SVN學(xué)習(xí)筆記。
SVN學(xué)習(xí)筆記
1)安裝
2)新建版本庫
如果我打算將在/SVN_Repo中建立所有的版本庫
svnadmincreate/SVN_Repo(本地磁盤路徑名)
3)建立要導(dǎo)入版本庫的文件和目錄
這里假設(shè)我要導(dǎo)入/test整個目錄,如果不存在則必須要新建,然后整個項目文件包括文件和子目錄放入test目錄下,然后
svnimport/testfile:///SVN_Repo/-m"initialimport"
4)從版本庫中取出項目到/work_dir目錄
svncheckoutfile:///SVN_Repo//work_dir
你可以使用版本庫的URL作為唯一參數(shù)取出一個工作拷貝,你也可以在版本庫URL之后指定一個目錄,這樣會將你的工作目錄放到你的新目錄
5)本地修改
svndiff查看區(qū)別
svncommit提交
在版本庫里,每次提交都當作一次原子食物操作,要么所有都改變,要么什么都不改變,SybVersion的修訂號是針對整個目錄樹的,而不是單個文件。
SVN學(xué)習(xí)筆記提醒你需要特別注意的是,工作拷貝并不一定對應(yīng)版本庫中的單個修訂版本,他們可能包含多個修訂版本的文件。舉個例子,你從版本庫檢出一個工作拷貝,最近的修訂號是4:
calc/Makefile:4integer.c:4button.c:4
此刻,工作目錄與版本庫的修訂版本4完全對應(yīng),然而,你修改了button.c并且提交之后,假設(shè)沒有別的提交出現(xiàn),你的提交會在版本庫建立修訂版本5,你的工作拷貝會是這個樣子的:
calc/Makefile:4integer.c:4button.c:5
假設(shè)此刻,Sally提交了對integer.c的修改,建立修訂版本6,如果你使用svnupdate來更新你的工作拷貝,你會看到:
calc/Makefile:6integer.c:6button.c:6
Sally對integer.c的改變會出現(xiàn)在你的工作拷貝,你對button.c的改變還在,在這個例子里,Makefile在4、5、6修訂版本都是一樣的,但是Subversion會把他的Makefile的修訂號設(shè)為6來表明它是最新的,所以你在工作拷貝頂級目錄作一次干凈的更新,會使得所有內(nèi)容對應(yīng)版本庫的同一修訂版本。
svnupdate同步本地工作目錄
修訂版本號
當你新建了一個Subversion版本庫,從修訂版本號0開始,每一次成功的提交加1,當你提交成功,Subversion告訴客戶端這個新版本號。
修訂版本日期
注意在日期中有空格時需要使用引號
$svncheckout--revision{2002-02-17}
$svncheckout--revision{15:30}
$svncheckout--revision{15:30:00.200000}
$svncheckout--revision{"2002-02-1715:30"}
$svncheckout--revision{"2002-02-1715:30+0230"}
$svncheckout--revision{2002-02-17T15:30}
$svncheckout--revision{2002-02-17T15:30Z}
$svncheckout--revision{2002-02-17T15:30-04:00}
$svncheckout--revision{20020217T1530}
$svncheckout--revision{20020217T1530Z}
$svncheckout--revision{20020217T1530-0500}
基本的工作周期
SVN學(xué)習(xí)筆記介紹一下SVN基本的工作周期。Subversion有許多特性、選項和華而不實的高級功能,但日常的工作中你只使用其中的一小部分,有一些只在特殊情況才會使用,在這一節(jié)里,我們會介紹許多你在日常工作中常見的命令。
典型的工作周期是這樣的:
更新你的工作拷貝
svnupdate
做出修改
svnadd
預(yù)定將文件、目錄或者符號鏈foo添加到版本庫,當你下次提交后,foo會成為其父目錄的一個子對象。注意,如果foo是目錄,所有foo中的內(nèi)容也會預(yù)定添加進去,如果你只想添加foo本身,使用--non-recursive(-N)參數(shù)。
svndelete
預(yù)定將文件、目錄或者符號鏈foo從版本庫中刪除掉,如果foo是文件,它馬上從工作拷貝中刪除,如果是目錄,不會被刪除,但是Subversion準備好刪除了,當你提交你的修改,foo就會在你的工作拷貝和版本庫中被刪除。
svncopy
建立一個新的項目bar作為foo的復(fù)制品,當在下次提交時會將bar添加到版本庫,這種拷貝歷史會記錄下來(按照來自foo的方式記錄),svncopy并不建立中介目錄
svnmove
這個命令與與運行svncopyfoobar;svndeletefoo完全相同,bar作為foo的拷貝準備添加,foo已經(jīng)預(yù)定要被刪除,svnmove不建立中介的目錄
檢驗修改
svnstatus
svndiff
svnrevert
合并別人的修改到工作拷貝
svnupdate
svnresolved
提交你的修改
svncommi。本節(jié)關(guān)于SVN學(xué)習(xí)筆記分享到這里,如果你有什么意見大家可以一起討論。
【編輯推薦】
- 學(xué)習(xí)筆記:SVN與CVS優(yōu)缺點對比
- 經(jīng)驗總結(jié):SVN學(xué)習(xí)筆記詳解
- SVN錯誤如何產(chǎn)生及解決方法專家剖析
- 如何實現(xiàn)SVN倉庫目錄規(guī)范化管理?
- 經(jīng)驗總結(jié):TortoiseSVN客戶端使用心得