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

合并

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

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

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

修補

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

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

比較

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

圖 7. 在 Subclipse 中比較兩個文件

刪除

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

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

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

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

結(jié)束語

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

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