跳至內容

Subversion

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

Apache Subversion(簡稱SVN,svn), 一个開放原始碼的版本控制系統,比較起來 RCS、CVS,伊採用分支管理系統,伊的設計目標就是取代 CVS。網際網路頂濟濟版本控制服務已經對 CVS 轉移到 Subversion。

歷史

CollabNet 佇二空空的空年建立 SVN 專案,意在寫出一款近似 CVS 操作方式的版本控制系統。猶毋過,這款產品針對 CVS 的 bug 和一寡欠失的功能,進行矣修正佮補充。

二空空空年二月,𪜶聯絡矣 Open Source Development with CVS(Coriolis , 一千九百九十九)的作者 Karl Fogel,問伊敢願意為這个新的專案做工課。聖拄聖拄聖 Karl 已經咧和伊的朋友 Jim Blandy 討論一个新的版本控制系統的設計。佇一九九五年,兩个開一家提供的 CVS 技術支援的公司,叫做 Cyclic Software。雖然公司已經賣掉矣,𪜶猶原佇日常工作當中使用 CVS。咧使用 CVS 時受著的束縛已經予 Jim 開始斟酌思考管理版本化資料的閣較好的路。伊毋但已經起好矣名「Subversion」,而且有矣 Subvesion 資料庫的基本設計。當 CollabNet 敲來電話的時,Karl 隨同意為這个專案做工課。Jim 徵著伊的頭家 RedHat Software 的同意,予伊投入這个案,而且無時間限制。CollabNet 倩矣 Karl 和 Ben Collins-Sussman,對五月份開始詳細設計。因為 Greg Stein 和 CollabNet 的 Brian Behlendorf 和 Jason Robbins 作落去矣拄好推動,Subversion 誠緊吸引著一个活動的開發人員的社群。這說明真濟人有仝款的受制於 CVS 的經驗,𪜶對總算有機會對伊做點啥物表示歡迎。

上原初的設計團隊設定幾个簡單的目標。𪜶並無想欲佇版本控制方法論上有新突破。𪜶干焦欲修理爾 CVS。𪜶決定講 Subversion 應該佮 CVS 相仝,保留仝款的開發模型,毋過無複製 CVS 上明顯的缺點。雖然講伊無一定是 CVS 的完全的代替品,毋過伊應該和 CVS 相仝,對任何來 CVS 使用者會當袂費啥物氣力的轉換過來。

經過十四個月的編碼,佇二空空一年八月三十一號,Subversion 會用得「自我寄生」了。就是講乎,Subversion 開發人員停止使用 CVS 管理 Subversion 的原始碼,開始使用 Subversion 代替。

雖然 CollabNet 發起了這个案,而且猶原資助一大部份的工課(伊為一寡專職的 Subversion 開發人員發薪水)。 猶毋過 Subversion 親像大部份開放原始碼的專案仝款運作,由一个來冗去,鼓勵能者多勞的規則管理。CollabNet 的著作權授權條款佮 Debian FSG 完全相容。嘛會使講,任何人會使免費下載,修改,照家己的意願重新分發 Subversion,毋免得著來自 CollabNet 抑是講啥物伊任何人的授權。

二空空九年十一月,Subversion 予被 Apache Incubator 專案所接收。

二空一空年一月,正式成做 Apache 軟體基金會的一个頂級的專案。

特性

  • 統一的版本號。CVS 是對每一个檔案順序編排版本號,佇某一時間各檔案的版本號各無相𫝛。而且 Subversion 落,任何一改提交攏會對所有的檔案增加到仝一个新版本號,就算是提交並無牽磕的檔案。所以乎,各檔案佇咧某任意時間的版本號是仝款的。版本號相仝的檔案構成軟體的一个版本。
  • 原子提交。一改提交毋管是單个抑是幾个檔案,攏是做為一个整體提交的。佇這內底發生的意外比如講傳輸中斷,袂引起資料庫無完整和數據損害。
  • 重號名、複製、刪除檔案遮的動作攏儲存佇版本歷史的記錄當中。
  • 對這二進制檔案,使用節省空間的儲存方法(簡單的理解,就是干焦儉佇咧佮頂一版本無仝的所在)。
  • kha-tá-lok-guh 嘛有版本歷史。規个 kha-tá-lok-guh 樹仔會當去予徙振動抑是講複製,操作是真簡單,而且會當保留全部的版本的記錄。
  • 分支的開銷非常細。
  • 最佳化過的資料庫存取,予一寡操作毋免儉資料庫就會使做到。按呢減少矣足濟無必要的佮資料庫主機之間的網路流量。
  • 支援元資料(Metadata)管理。彼每一个 kha-tá-lok-guh 抑是檔案攏會當定義屬性(Property), 伊是一寡隱藏的鍵值著,使用者會使自訂屬性的內容,而且屬性佮檔 àn-nāi 仝款佇咧版本控制範圍內底。
  • 支援 FSFS 和 Berkeley DB 兩種資料庫式。

企業級 subversion

Subversion Multisite

對企業級應用,subversion 猶閣有其先天無夠,比如講對濟个地點的並列開發。Wandisco 公司為此開發了 subversion multisite,實在異地嘿等待服器自動同步,支援並列開發猶閣有異地備份。

是因為 Subversion 的 ALM 平台—— UberSVN

ALM(Application Lifecycle Management)是軟體組態管理的未來趨勢,各種軟體版本的工具包括 subversion 攏愛整合到其中。目前 UberSVN 是唯一的以 Subversion 為基礎構起的 ALM 平台,並實現協同開發以及社交化編碼。

無夠

  • 干焦會當設定 kha-tá-lok-guh 的存取權限,無法度設定單個檔案的存取權限(目前會當通過輔助模組比如講 wandisco access control 實現單檔案存取)。
  • 資料庫做二進位格式,阮無法度利便的利用其他軟體讀資料庫的內容。

使用的狀況

雖然佇二空空六年 Subversion 的使用族群猶是真少傳統 CVS,但已經有真濟開放原碼團體決定將 CVS 轉換做 Subversion。已經轉換使用 Subversion 的包括矣 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 閣有足濟團體。真濟開發團隊換用 Subversion 是因為 Trac、SourceForge、CollabNet、CodeBeamer 等專案協同作業軟體以及 Eclipse、NetBeans 等 IDE 提供 Subversion 的支援整合。除了這以外,一寡自由軟體開發的協作網如 SourceForge . net 除了提供 CVS 外,這馬嘛提供專案開發者使用 Subversion 成做原始碼管理系統,JavaForge、Google Code 以及 BountySource 著以 Subversion 成做官方的原始碼管理系統。

二空空九年,真大的多數 CVS 服務已經改用 SVN。現此時 CVS 早就停止維護。猶毋過 CVS 有合適的替代品。

SVN 客戶捀圖形化軟體

TortoiseSVN

佇咧 windows 非常受著歡迎的一套客戶捀軟體,伊佮檔案總管整合甲不止仔好袂䆀,會當透過檔案總管伊佇檔案抑是 kha-tá-lok-guh 上用滑鼠正鍵的選單完成 SVN 的操作。 TortoiseSVN 官方網站

SnailSVN

Mac OS X 平台跤類似 TortoiseSVN 的圖形化 SVN 客戶捀,會當自動標記檔案的狀態,並通過右鍵選單提供各種常用 SVN 功能。 下載 SnailSVN ( Mac App Store )

Ankhsvn

將 subversion 的操作整合進 Visual Studio 的 SVN 客戶捀軟體。 Ankhsvn 官方網站

Subclipse

將 Subversion 的操作整合進 Eclipse 的 SVN 客戶捀軟體。 Subclipse 官方網站

Subversive

和 Subclipse 相仝。 Subversive 官方網站

SCPlugin

Mac OS 下類似 TortoiseSVN 的軟體。 SCPlugin 官方網站

SVNx

Mac OS X 落來的一款客戶捀軟體。 SVNx 官方網站

eSVN

Unix 下類似 TortoiseSVN 的軟體。 eSVN 官方網站

kdesvn

Linux 下使用 KDE 桌面管理下類似 TortoiseSVN 的軟體。 kdesvn 官方網站

RabbitVCS

Linux 下使用 Gnome 桌面管理下類似 TortoiseSVN 的軟體。 RabbitVCS 官方網站

GTalkabout

Windows 下整合了討論功能的客戶捀軟體。 GTalkabout 官方網站

外部連結

  • Subversion 官方網站
  • Subversion 舊官方網站