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