您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > SVN
Subversion 簡介
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/4 17:20:31 ] 推薦標(biāo)簽:

合并

如果您已進(jìn)行了更改,其他開發(fā)人員也進(jìn)行了更改,那么您必須手動合并文件。對于絕大多數(shù)簡單更改,Subversion 可推斷出需要進(jìn)行怎樣的處理,無需人工干預(yù)。但對于較大、較為復(fù)雜、存在沖突的更改,您可能需要參與進(jìn)來,手動合并更改。

Subclipse 在這里可提供一些幫助,但實(shí)際上我發(fā)現(xiàn),在一個(gè)獨(dú)立的窗口或選項(xiàng)卡中直接實(shí)現(xiàn)一個(gè)臨時(shí)文件副本,通過存儲庫更新本地副本以覆蓋我的更改,然后通過臨時(shí)副本重新輸入更改,這樣做往往更容易。若存儲庫中的更改與我做出的更改相比較少,我會從存儲庫實(shí)現(xiàn)臨時(shí)副本,并通過它進(jìn)行提交,而不是更新。隨后我會重新應(yīng)用那些更改。這聽上去非常復(fù)雜,但事實(shí)通常并非如此,它的發(fā)生幾率幾乎與您希望的一樣低。即便是您出了錯(cuò),忘記重新應(yīng)用更改或是錯(cuò)誤地應(yīng)用了更改,總是可以找到所有更改的完整歷史(包括您覆蓋的那些更改)供您參考。實(shí)際上您從未徹底丟失任何東西。

如果您不確定已更改了哪些文件,同步視圖可以為您顯示這些文件。您還可打開標(biāo)簽修飾(label decoration)來查看上次提交/更新后哪些文件發(fā)生過更改。選擇 Help | Preferences,然后再選擇 General/Appearance/Label Decorations。然后選中 SVN 復(fù)選框。(實(shí)際上該復(fù)選框在默認(rèn)情況下是選中的。)

修補(bǔ)

如果您不具備正在使用的存儲庫的提交權(quán)限,需要制作一個(gè)修補(bǔ)程序,然后將其發(fā)送給維護(hù)人員。只要選中您希望比較的文件,然后從上下文菜單中選擇 Team/Create Patch... 即可。您可以隨自己的方便將修補(bǔ)程序保存到文件或剪貼板中。隨后可通過電子郵件將其發(fā)送給維護(hù)人員,或者在 bug 報(bào)告中附上該修補(bǔ)程序。修補(bǔ)程序本身采用的格式與 CVS 所使用的 diff 格式相同。

應(yīng)用他人發(fā)送給您的修補(bǔ)程序沒那么復(fù)雜了,只要選中您想修補(bǔ)的文件或項(xiàng)目。從上下文菜單中選擇 Team/Apply Patch... ,然后平臺上慣用的 open file 對話框選擇修補(bǔ)程序文件即可。

比較

如果您已作出了一些更改,并且希望看看您的副本與存儲庫中的版本有怎樣的差別,只需在上下文菜單中選擇 Compare/Latest From Repository 即可。這實(shí)際上與 CVS 中比較功能的工作方式完全相同。圖 7 顯示了比較功能的工作情況:

圖 7. 在 Subclipse 中比較兩個(gè)文件

刪除

刪除文件也很輕松。只要在 Eclipse 的程序包管理器中刪除文件,然后提交父文件夾即可。刪除目錄要略微復(fù)雜一點(diǎn)。您可以選擇一個(gè)目錄并刪除它。目錄中的所有文件將會立即被刪除。但在您刪除后,目錄本身及其所有子目錄又會立即出現(xiàn)在原來的位置。要真正地刪除一個(gè)文件夾,您需要選中 “已刪除” 的文件夾并提交它。同一規(guī)則也適用于將一個(gè)文件從一個(gè)位置移動到另外一個(gè)位置的情況。
小心!

Apache 項(xiàng)目將源代碼提交到了不屬于自己、現(xiàn)在也無法刪除的 Subversion 存儲庫中,使自己陷入麻煩。Apache 可以隱藏代碼,但如果您知道到哪兒去看,您會發(fā)現(xiàn)這些代碼在那兒。擁有源代碼的人可能是惡意的,也有可能向 Apache 的 ISP 發(fā)送一條 DMCA 下線通知,從而使 Apache 脫離 Internet。Apache 惟一的防御措施是徹底刪除其存儲庫。

在您刪除了一個(gè)文件或一個(gè)文件夾之后,依然可以通過存儲庫使其還原,即便是已經(jīng)提交了刪除。一旦您將任何內(nèi)容放進(jìn)存儲庫,那么永遠(yuǎn)不會真正、地失去它,這有時(shí)候會產(chǎn)生問題。例如,假設(shè)您發(fā)現(xiàn)有人意外的檢入了其整個(gè)主目錄,包括其 Quicken 數(shù)據(jù)文件和所有來自其愛人的情書歸檔。您很希望能夠徹底消除 這些被誤提交的文件,這樣不會有其他人得到這些文件。盡管這是一個(gè)非同尋常的操作(無論如何,版本控制系統(tǒng)的目的在于永遠(yuǎn)地保留每一個(gè)文件的每個(gè)修訂版),但有時(shí)也是必要的。令人沮喪的是,Subversion 漏掉了這個(gè)重要的特性。

由于沒有徹底消除的命令,所以我在為外部可見的存儲庫使用 Subversion 時(shí)非常不安。CVS 也沒有這樣的命令,但在 CVS 中,您完全有可能在不毀掉存儲庫的情況下手動刪除錯(cuò)誤提交的文件。

結(jié)束語

對于內(nèi)部存儲庫,Subversion 提供了遠(yuǎn)超過 CVS 的改進(jìn)。如果添加了某種類型的徹底消除功能,它也應(yīng)同樣適于外部存儲庫。盡管像 Eclipse 這樣的工具對 Subversion 的第三方支持還不像 CVS 支持那樣普遍,但形勢正在迅速地發(fā)生變化。Subversion 會成為新項(xiàng)目的默認(rèn)源代碼存儲庫。尚無源代碼控制的現(xiàn)有項(xiàng)目應(yīng)盡快檢入 Subversion。而已有 CVS 存儲庫的現(xiàn)有項(xiàng)目可能仍在觀望,希望等到他們所依賴的全部工具均全面支持 Subversion 后再進(jìn)行切換。但這些項(xiàng)目終也會移植到 Subversion。Subversion 中的改進(jìn)如此顯著,令人難以忽略。未來必將屬于 Subversion。

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd