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

Elliotte Rusty Harold 介紹了 Subversion —— 一種開放源碼、多用戶版本控制系統(tǒng),支持非 ASCII 文本和二進(jìn)制數(shù)據(jù)。通過 Elliotte 的介紹,您可看到如何在 Eclipse 中配置 Subversion 支持(通過 Subclipse 插件)、檢出一個項目、與您的存儲庫同步,隨后執(zhí)行一些常用的操作,如合并、修補(bǔ)、比較和刪除。

版本控制之于程序員,好比安全網(wǎng)之于高空秋千表演者。知道安全網(wǎng)在那里,萬一自己摔落它能夠提供保護(hù),高空秋千表演者才能放心大膽地在空中飛躍。同樣,版本控制使您有能力去冒以往想都不敢想的風(fēng)險。如果哪兒出了錯,您總是可以使自己的代碼回復(fù)到一個已知的、工作正常的版本。您可以在不觸及主干的分支中進(jìn)行試驗(yàn),而不會影響到其他小組成員。在已經(jīng)發(fā)布的產(chǎn)品的較老版本中發(fā)現(xiàn) bug 時,您可以輕松檢出特定版本,以確認(rèn)、修訂,并生成該 bug 的修補(bǔ)程序。如果沒有版本控制,您必須極為慎之又慎,緩慢地推進(jìn),總而言之,生產(chǎn)力會更低。

Subversion 是一種開放源碼的全新版本控制系統(tǒng),支持可在本地訪問或通過網(wǎng)絡(luò)訪問的數(shù)據(jù)庫和文件系統(tǒng)存儲庫。不但提供了常見的比較、修補(bǔ)、標(biāo)記、提交、回復(fù)和分支功能性,Subversion 還增加了追蹤移動和刪除的能力。此外,它支持非 ASCII 文本和二進(jìn)制數(shù)據(jù),所有這一切都使 Subversion 不僅對傳統(tǒng)的編程任務(wù)非常有用,同時也適于 Web 開發(fā)、圖書創(chuàng)作和其他在傳統(tǒng)方式下未采納版本控制功能的領(lǐng)域。

本文介紹了使用 Subversion 追蹤項目的基礎(chǔ)知識,以使您在編寫代碼時能夠承受更多的風(fēng)險、享受更多的樂趣。

版本控制簡史

當(dāng)我還是一名剛剛畢業(yè)的學(xué)生時,我第一次在太陽觀察站(National SSolar Observatory)接觸到了如今版本控制系統(tǒng)的鼻祖 —— SCCS。,已經(jīng)出現(xiàn)了數(shù)不勝數(shù)的版本控制系統(tǒng),而 SCCS 也早已被更強(qiáng)大的產(chǎn)品所取代,如 Visual SourceSafe、BitKeeper、Perforce 和開源 CVS(參見 參考資料 部分)。

在開放源碼程序員間,CVS 已成為一種事實(shí)上的 標(biāo)準(zhǔn)。Codehaus、Sourceforge、Savannah 和 Java™ 社區(qū)的 java.net 等站點(diǎn)中駐留的免費(fèi) CVS 使得為開源項目建設(shè)存儲庫更為簡單。以 CVS 為中心,已發(fā)展起一個大型的附件市場,包括 TortoiseCVS、ViewCVS 和 Fisheye 等工具。

與其他版本控制系統(tǒng)相比,CVS 令人稱道的地方是其非鎖定 存儲庫,這使多個開發(fā)人員能夠同時檢出同一個文件。CVS 在提交時解決沖突問題,這避免了沖突成為發(fā)展的瓶頸。CVS 第二個出色的特性是它是一種網(wǎng)絡(luò)存儲庫。處于許多不同系統(tǒng)上的程序員可以通過公共的 Internet 訪問相同的存儲庫。

逐漸失去優(yōu)勢的 CVS

CVS 在過去的十年中,為社區(qū)提供了優(yōu)質(zhì)的服務(wù),但它陳舊的劣勢開始體現(xiàn)出來。首先,它實(shí)際上僅能處理 ASCII 文件。Unicode 文件會令 CVS 嚴(yán)重混亂。此外,CVS 存儲庫更改起來極為困難。CVS 沒有任何關(guān)于 “移動” 操作的概念。它只能注意到,一個文件在一處被刪除了,而在一個新位置創(chuàng)建了另外一個文件。由于它不會連接兩個操作,因此也很容易使文件歷史軌跡丟失。設(shè)置 CVS 存儲庫時,您必須非常謹(jǐn)慎地為每個文件選擇準(zhǔn)確的位置,因?yàn)樵谠O(shè)置之后,您幾乎要一直使用這個位置了。

CVS 已經(jīng)不再適合現(xiàn)代開發(fā),這一點(diǎn)越來越明顯。特別是 CVS 只能滿足老式 C 程序員的 ASCII 需求,而對 Web 開發(fā)人員和其他非傳統(tǒng)用戶來說,CVS 實(shí)際上根本不起作用。在您開始考慮存儲整個 Web 站點(diǎn)時,在 CVS 中,將文件從一個目錄移動到另外一個目錄是關(guān)鍵考慮事項。因此,在幾年前,許多核心 CVS 開發(fā)人員認(rèn)為,已經(jīng)到了利用他們多年來使用 CVS 時學(xué)到的經(jīng)驗(yàn)和教訓(xùn)、從頭開始創(chuàng)建新一代開放源碼存儲庫的時機(jī)。在 2004 年年初,他們的努力結(jié)出了豐碩的果實(shí),那是 Subversion 1.0。

Subversion 的支持與采納

程序員(特別是那些依賴版本控制的程序員)是一個非常謹(jǐn)慎的群體,Subversion 著實(shí)用了很長一段時間,才得到他們的廣泛接受。很少有程序員愿意沖在易于流血的前沿,即便是他們已經(jīng)因?yàn)?CVS 受了傷。甚至是在 Subersion 變得可靠之后,仍然用了好幾年的時間,所有第三方編輯器、IDE 和文檔規(guī)范才相繼跟進(jìn)。而 Subversion 依然在不斷改進(jìn),BBEdit 和 Eclipse 等第三方工具現(xiàn)在已經(jīng)有了足夠好的 Subversion 支持。逐漸地,新項目也紛紛選擇 Subversion 滿足其版本控制需求,而老項目正在向 Subversion 移植。近,Apache Software Foundation 已移植到 Subversion。已實(shí)現(xiàn)移植的項目包括 Xerces XML 解析器、Apache HTTP Server 和 Spamassassin。

通過 IDE 使用 Subversion

您可通過命令行使用 Subversion,但若將其與您的 IDE 集成更為便捷。IntelliJ IDEA 5.0 及后續(xù)版本均包含對 Subversion 的內(nèi)置支持。NetBeans 還不支持 Subversion,但相關(guān)工作已經(jīng)在開展,未來版本中將提供支持。對于 Eclipse,您需要安裝 Subclipse 插件。本文使用 Eclipse 作為 IDE。

Subclipse 的安裝與其他 Eclipse 插件類似:

    在 Eclipse 中,選擇 Help Software Updates | Find and Install...。

    在向?qū)У牡谝粋面板中,單擊 Search for new features to install 單選按鈕,并單擊 Next。

    在向?qū)У牡诙䝼面板中,單擊 New Remote Site。輸入 Subclipse 作為名稱,輸入 http://subclipse.tigris.org/update_1.0.x 作為 URL。然后單擊 Finish。

    這將啟動另外一個小的向?qū)АO乱粋對話框應(yīng)為您提供一個可安裝的特性 —— Subclipse。選中它并單擊 Next。

    接受許可協(xié)議,完成安裝。

程序包目前未經(jīng)過數(shù)字簽名,但只要您是按照第三步的 URL 下載的,是安全的。

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