自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SVN簡易使用手冊新手上路

開發(fā) 項(xiàng)目管理
本文接著上篇文章介紹SVN使用手冊,主要介紹使用svn獲取開源項(xiàng)目源代碼的內(nèi)容,在這里和大家分享一下,希望通過本文的學(xué)習(xí)大家能有所提升。

 本節(jié)講解一下SVN簡易使用手冊中使用svn獲取開源項(xiàng)目源代碼的內(nèi)容,之前一節(jié)我們沒有講解完畢,在這里做一下補(bǔ)充,希望通過本節(jié)大家能夠?qū)W到更多知識。

修改你的工作拷貝
SVN簡易使用手冊介紹修改你的工作拷貝?,F(xiàn)在你可以開始工作并且修改你的工作拷貝了,你很容易決定作出一個(gè)修改(或者是一組),像寫一個(gè)新的特性,修正一個(gè)錯誤等等。這時(shí)可以使用的Subversion命令包括svnadd、svndelete、svncopy和svnmove。如果你只是修改版本庫中已經(jīng)存在的文件,在你提交之前,不必使用上面的任何一個(gè)命令。你可以對工作備份作的修改包括:
文件修改
這是最簡單的一種修改,你不必告訴Subversion你想修改哪一個(gè)文件,只需要去修改,然后Subversion會自動地探測到哪些文件已經(jīng)更改了。
目錄樹修改
你可以“標(biāo)記”目錄或者文件為預(yù)定要刪除、增加、復(fù)制或者移動,也許這些改動在你的工作拷貝馬上發(fā)生,而版本庫只在你提交的時(shí)候才發(fā)生改變。
修改文件,可以使用文本編輯器、字處理軟件、圖形程序或任何你常用的工具,Subverion處理二進(jìn)制文件像同文本文件一樣—效率也一樣。
這些是常用的可以修改目錄樹結(jié)構(gòu)的子命令(我們會在后面包括svnimport和svnmkdir)。 

警告
SVN簡易使用手冊中遇到的問題警告。你可以使用任何你喜歡的工具編輯文件,但你不可以在修改目錄結(jié)構(gòu)時(shí)不通知Subversion,需要使用svncopy、svndelete和svnmove命令修改工作拷貝的結(jié)構(gòu),使用svnadd增加版本控制的新文件或目錄。
svnaddfoo預(yù)定將文件、目錄或者符號鏈foo添加到版本庫,當(dāng)你下次提交后,foo會成為其父目錄的一個(gè)子對象。注意,如果foo是目錄,所有foo中的內(nèi)容也會預(yù)定添加進(jìn)去,如果你只想添加foo本身,使用--non-recursive(-N)參數(shù)。
svndeletefoo預(yù)定將文件、目錄或者符號鏈foo從版本庫中刪除掉,如果foo是文件,它馬上從工作拷貝中刪除,如果是目錄,不會被刪除,但是Subversion準(zhǔn)備好刪除了,當(dāng)你提交你的修改,foo就會在你的工作拷貝和版本庫中被刪除。[2]
svncopyfoobar建立一個(gè)新的項(xiàng)目bar作為foo的復(fù)制品,當(dāng)在下次提交時(shí)會將bar添加到版本庫,這種拷貝歷史會記錄下來(按照來自foo的方式記錄),svncopy并不建立中介目錄。
svnmovefoobar這個(gè)命令與與運(yùn)行svncopyfoobar;svndeletefoo完全相同,bar作為foo的拷貝準(zhǔn)備添加,foo已經(jīng)預(yù)定要被刪除,svnmove不建立中介的目錄。
不通過工作拷貝修改版本庫
SVN簡易使用手冊介紹不通過工作拷貝修改版本庫。本章的前面曾經(jīng)說過,為了使版本庫反映你的改動,你應(yīng)該提交所有改動。這并不完全正確—有一些方式是可以直接操作版本庫的,當(dāng)然只有子命令直接操作URL而不是本地拷貝路徑時(shí)才可以實(shí)現(xiàn),通常svnmkdir、svncopy、svnmove、和svndelete可以使用URL工作。
指定URL的操作方式有一些區(qū)別,因?yàn)樵谑褂霉ぷ骺截惖倪\(yùn)作方式時(shí),工作拷貝成為一個(gè)“集結(jié)地”,可以在提交之前整理組織所要做的修改,直接對URL操作就沒有這種奢侈,所以當(dāng)你直接操作URL的時(shí)候,所有以上的動作代表一個(gè)立即的提交。 

檢查你的修改
當(dāng)你完成修改,你需要提交他們到版本庫,但是在此之前,檢查一下做過什么修改是個(gè)好主意,通過提交前的檢查,你可以整理一份精確的日志信息,你也可以發(fā)現(xiàn)你不小心修改的文件,給了你一次恢復(fù)修改的機(jī)會。此外,這是一個(gè)審查和仔細(xì)察看修改的好機(jī)會,你可通過命令svnstatus、svndiff和svnrevert精確地察看所做的修改。你可以使用前兩個(gè)命令察看工作拷貝中的修改,使用第三個(gè)來撤銷部分(或全部)的修改。
Subversion已經(jīng)被優(yōu)化來幫助你完成這個(gè)任務(wù),可以在不與版本庫通訊的情況下做許多事情,詳細(xì)來說,對于每一個(gè)文件,你的的工作拷貝在.svn包含了一個(gè)“原始的”拷貝,所以Subversion可以快速的告訴你那些文件修改了,甚至允許你在不與版本庫通訊的情況下恢復(fù)修改。
svnstatus相對于其他命令,你會更多地使用這個(gè)svnstatus命令。
CVS用戶:控制另類的更新!你也許使用cvsupdate來看你做了哪些修改,svnstatus會給你所有你做的改變—而不需要訪問版本庫,并且不會在不知情的情況下與其他用戶作的更改比較。
在Subversion,update只是做這件事—將工作拷貝更新到版本庫的***版本,你可以消除使用update察看本地修改的習(xí)慣。
 

SVN簡易使用手冊中如果你在工作拷貝的***目錄運(yùn)行不帶參數(shù)的svnstatus命令,它會檢測你做的所有的文件或目錄的修改,以下的例子是來展示svnstatus可能返回的狀態(tài)碼(注意,#之后的不是svnstatus打印的)。Labc.c#svn已經(jīng)在.svn目錄鎖定了abc.cMbar.c#bar.c的內(nèi)容已經(jīng)在本地修改過了Mbaz.c#baz.c屬性有修改,但沒有內(nèi)容修改X3rd_party#這個(gè)目錄是外部定義的一部分?foo.o#svn并沒有管理foo.o!some_dir#svn管理這個(gè),但它可能丟失或者不完整~qux#作為file/dir/link進(jìn)行了版本控制,但類型已經(jīng)改變I.screenrc#svn不管理這個(gè),配置確定要忽略它A+moved_dir#包含歷史的添加,歷史記錄了它的來歷M+moved_dir/README#包含歷史的添加,并有了本地修改Dstuff/fish.c#這個(gè)文件預(yù)定要刪除Astuff/loot/bloo.h#這個(gè)文件預(yù)定要添加Cstuff/loot/lump.c#這個(gè)文件在更新時(shí)發(fā)生沖突Rxyz.c#這個(gè)文件預(yù)定要被替換Sstuff/squawk#這個(gè)文件已經(jīng)跳轉(zhuǎn)到了分支在這種格式下,svnstatus打印五列字符,緊跟一些空格,接著是文件或者目錄名。***列告訴一個(gè)文件的狀態(tài)或它的內(nèi)容,返回代碼解釋如下:
Aitem文件、目錄或是符號鏈item預(yù)定加入到版本庫。
Citem文件item發(fā)生沖突,在從服務(wù)器更新時(shí)與本地版本發(fā)生交迭,在你提交到版本庫前,必須手工的解決沖突。
Ditem文件、目錄或是符號鏈item預(yù)定從版本庫中刪除。
Mitem文件item的內(nèi)容被修改了。
Ritem文件、目錄或是符號鏈item預(yù)定將要替換版本庫中的item,這意味著這個(gè)對象首先要被刪除,另外一個(gè)同名的對象將要被添加,所有的操作發(fā)生在一個(gè)修訂版本。
Xitem目錄沒有版本化,但是與Subversion的外部定義關(guān)聯(lián),關(guān)于外部定義,可以看“外部定義”一節(jié)。
?item文件、目錄或是符號鏈item不在版本控制之下,你可以通過使用svnstatus的--quiet(-q)參數(shù)或父目錄的svn:ignore屬性忽略這個(gè)問題,關(guān)于忽略文件的使用,見“svn:ignore”一節(jié)。!item文件、目錄或是符號鏈item在版本控制之下,但是已經(jīng)丟失或者不完整,這可能因?yàn)槭褂梅荢ubversion命令刪除造成的,如果是一個(gè)目錄,有可能是檢出或是更新時(shí)的中斷造成的,使用svnupdate可以重新從版本庫獲得文件或者目錄,也可以使用svnrevertfile恢復(fù)原來的文件。
~item文件、目錄或是符號鏈item在版本庫已經(jīng)存在,但你的工作拷貝中的是另一個(gè)。舉一個(gè)例子,你刪除了一個(gè)版本庫的文件,新建了一個(gè)在原來的位置,而且整個(gè)過程中沒有使用svndelete或是svnadd。


Iitem文件、目錄或是符號鏈item不在版本控制下,Subversion已經(jīng)配置好了會在svnadd、svnimport和svnstatus命令忽略這個(gè)文件,關(guān)于忽略文件,見“svn:ignore”一節(jié)。注意,這個(gè)符號只會在使用svnstatus的參數(shù)--no-ignore時(shí)才會出現(xiàn)—否則這個(gè)文件會被忽略且不會顯示!
第二列說明文件或目錄的屬性的狀態(tài)(更多細(xì)節(jié)可以看“屬性”一節(jié)),如果一個(gè)M出現(xiàn)在第二列,說明屬性被修改了,否則顯示空白。
第三列只顯示空白或者L,L表示Subversion已經(jīng)在.svn工作區(qū)域鎖定了這個(gè)項(xiàng)目,當(dāng)你的svncommit正在運(yùn)行的時(shí)候—也許正在輸入log信息,運(yùn)行svnstatus你可以看到L標(biāo)記,如果這時(shí)候Subversion并沒有運(yùn)行,可以推測Subversion發(fā)生中斷并且已經(jīng)鎖定,你必須運(yùn)行svncleanup來清除鎖定(本節(jié)后面將有更多論述)。
第四列只會顯示空白或+,+的意思是一個(gè)有附加歷史信息的文件或目錄預(yù)定添加或者修改到版本庫,通常出現(xiàn)在svnmove或是svncopy時(shí),如果是看到A+就是說要包含歷史的增加,它可以是一個(gè)文件或是拷貝的根目錄。+表示它是即將包含歷史增加到版本庫的目錄的一部分,也就是說他的父目錄要拷貝,它只是跟著一起的。M+表示將要包含歷史的增加,并且已經(jīng)更改了。當(dāng)你提交時(shí),首先會隨父目錄進(jìn)行包含歷史的增加,然后本地的修改提交到更改后的版本。
第五列只顯示空白或是S,表示這個(gè)目錄或文件已經(jīng)轉(zhuǎn)到了一個(gè)分支下了(使用svnswitch)。如果你傳遞一個(gè)路徑給svnstatus,它只給你這個(gè)項(xiàng)目的信息:$svnstatusstuff/fish.cDstuff/fish.c
svnstatus也有一個(gè)--verbose(-v)選項(xiàng),它可以顯示工作拷貝中的所有項(xiàng)目,即使沒有改變過:
 

  1. $svnstatus--verboseM4423sallyREADME4430  
  2. sallyINSTALLM4420harrybar.c4418ira  
  3. stuff4435harrystuff/trout.cD4419ira  
  4. stuff/fish.c4421sallystuff/thingsA0??  
  5. stuff/things/bloo.h4436harrystuff/things/gloo.c  
  6.  

這是svnstatus的“加長形式”,***列保持相同,第二列顯示一個(gè)工作版本號,第三和第四列顯示***一次修改的版本號和修改人。上面所有的svnstatus調(diào)用并沒有聯(lián)系版本庫,只是與.svn中的元數(shù)據(jù)進(jìn)行比較的結(jié)果,***,是--show-updates(-u)參數(shù),它將會聯(lián)系版本庫為已經(jīng)過時(shí)的數(shù)據(jù)添加新信息:
 

  1. $svnstatus--show-updates--verboseM*4423sallyREADMEM44  
  2. 20harrybar.c*4435harrystuff/trout.cD44  
  3. 19irastuff/fish.cA0??stuff/things/bloo.hStatus  
  4. againstrevision:46  
  5.  

注意這兩個(gè)星號:如果你現(xiàn)在執(zhí)行svnupdate,你的README和trout.c會被更新,這告訴你許多有用的信息—你可以在提交之前,需要使用更新操作得到文件README的更新,或者說文件已經(jīng)過時(shí),版本庫會拒絕了你的提交。(后面還有更多關(guān)于此主題)。本節(jié)講解SVN簡易使用手冊完畢。

 【編輯推薦】

  1. SVN使用手冊之入門篇
  2. SVN管理與應(yīng)用相關(guān)的資料參考手冊
  3. ApacheSVN服務(wù)器安裝指導(dǎo)手冊
  4. Centos下SVN的安裝配置實(shí)用手冊
  5. SVN服務(wù)器安裝指導(dǎo)手冊

 

責(zé)任編輯:佚名
相關(guān)推薦

2010-05-26 12:59:48

SVN簡易使用手冊

2010-05-26 13:17:55

SVN簡易使用手冊

2010-05-27 13:35:43

SVN簡易使用手冊

2010-05-27 13:08:46

SVN簡易使用手冊

2010-05-26 13:51:40

SVN安裝使用手冊

2010-07-26 11:19:19

Perl入門手冊

2010-05-28 14:25:20

SVN基本操作

2010-05-21 12:37:49

SVN使用教程

2010-05-26 14:01:47

SVN安裝使用手冊

2010-05-20 19:12:37

2010-05-26 12:45:49

SVN使用手冊

2010-05-28 19:02:50

TortoiseSVN

2010-07-29 17:11:03

Flex

2010-08-16 15:04:00

DIV入門

2010-05-18 11:34:08

2010-06-01 13:19:04

2010-05-26 12:35:11

2009-10-22 09:59:50

CLR程序集教程

2010-06-25 15:41:49

IPX SPX協(xié)議

2010-05-17 14:53:16

Subversion使
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號