我的Subversion學(xué)習(xí)總結(jié)
本節(jié)接著上節(jié)介紹Subversion學(xué)習(xí)總結(jié),這里主要講解一下它的一些常用的子命令以及它的工作周期的相關(guān)情況,在這里和大家分享一下,希望對(duì)你有用。
Subversion學(xué)習(xí)總結(jié)關(guān)于對(duì)工作拷貝目錄結(jié)構(gòu)的修改:
你可以使用任何你喜歡的編輯工具編輯文件,但是你不可以在修改目錄結(jié)構(gòu)時(shí)不通知Subversion。
◆為版本庫(kù)添加一個(gè)新文件:$touchfoo,$svnaddfoo這里,foo是待添加的文件。當(dāng)然需要commit才會(huì)使版本庫(kù)目錄結(jié)構(gòu)改變。先用普通linux命令在目錄中建立了一個(gè)foo文件,然后通知svn要添加這個(gè)文件。如果foo是一個(gè)目錄,那么svn默認(rèn)會(huì)將foo目錄下的所有文件也遞歸地添加進(jìn)去(若僅添加目錄不遞歸添加下面的文件需要使用-N參數(shù))。
◆在版本庫(kù)刪除一個(gè)文件:$svndeletefoo這里,foo是待刪除的文件。當(dāng)然需要commit才會(huì)使版本庫(kù)目錄結(jié)構(gòu)改變,不需要非得用linux普通命令將foo文件刪除再進(jìn)行,只用svndeletefoo,意思是版本庫(kù)中“邏輯上”把這個(gè)文件刪除了,版本庫(kù)中沒(méi)有了這文件,而實(shí)際在普通的文件系統(tǒng)中還有這個(gè)文件,可以重新再添加進(jìn)去。
◆在版本庫(kù)拷貝一個(gè)文件:$svncopyfoobar
這里,建立一個(gè)foo的拷貝文件:bar。當(dāng)然需要commit才會(huì)使版本庫(kù)目錄結(jié)構(gòu)改變。需要利用普通linux命令cp事先建立一個(gè)bar文件嗎???
◆在版本庫(kù)移動(dòng)一個(gè)文件:$svnmovefoobar這里的例子相當(dāng)于把文件foo重新命名為bar了。當(dāng)然需要commit才會(huì)使版本庫(kù)目錄結(jié)構(gòu)改變。需要事先利用普通linux命令mv嗎???
Subversion學(xué)習(xí)總結(jié)關(guān)于歷史版本:
◆展示當(dāng)前目錄歷史信息:$svnlog這將展示項(xiàng)目各個(gè)版本的歷史信息,每條記錄信息包括誰(shuí)、在什么時(shí)候、改了多少,以及相應(yīng)的描述修改的日志信息。日志根據(jù)時(shí)間逆序排列。
◆展示指定文件的歷史:$svnlogfoo.c,這將展示文件foo.c的歷史信息。
◆按特定順序(或指定版本)展示歷史信息:$svnlog-r5:9或$svnlog--revision9:5或$svnlog-r8這里用了--revision(即-r)選項(xiàng),前兩個(gè)分別按照時(shí)間順序和逆序顯示版本5和版本9之間的歷史;最后一個(gè)顯示版本8的歷史。注意有時(shí)候得到的是空信息,如:svnlog-r2那不是錯(cuò),那是說(shuō)明當(dāng)前目錄在指定版本到現(xiàn)在沒(méi)被修改過(guò),可以用版本庫(kù)頂級(jí)目錄做為參數(shù)來(lái)查看。如:svnlog-r2http://svn.collab.net/repos/svn
◆使用帶--revision的svnupdate和svncheckout來(lái)回到過(guò)去:
$svncheckout--revision2
$svnupdate--revision2
這會(huì)覆蓋當(dāng)前的目錄版本嗎?還是可以指定URL來(lái)提取一個(gè)獨(dú)立的版本?
◆得到一個(gè)指定時(shí)間的拷貝:
$svncheckout--revision{2002-09-08}
或$svncheckout--revision{15:30}
或$svncheckout--revision{20020908T1530}等等。這里將會(huì)提取出離指定時(shí)間最近的版本,需要注意的是,假設(shè)指定了2002-09-08很有可能2002-09-07的某個(gè)時(shí)間更近,因?yàn)槟J(rèn)是以日期的0點(diǎn)開(kāi)始的。
◆顯示一段時(shí)間的版本歷史信息:$svnlog-revision{2002-09-07}:{2009-09-08}這會(huì)找到這個(gè)時(shí)間的所有歷史版本,也可版本號(hào)和時(shí)期混用表示時(shí)間段,不過(guò)不推薦這樣。
典型的工作周期:
Subversion學(xué)習(xí)總結(jié),再向大家介紹一下典型的工作周期。
1.更新你的工作拷貝:$svnupdate
2.做出修改:$svnadd,$svndelete,$svncopy,$svnmove
3.檢驗(yàn)修改:$svnstatus,$svndiff,$svnrevert
4.合并別人的修改到你的工作拷貝:$svnupdate,$svnresolved
5.提交你的修改:$svncommit。
【編輯推薦】



















