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