Subversion
從 Linux Wiki
Subversion,簡稱SVN,是一個版本控制系統,和RCS、CVS比較而言,採用了分支管理系統,它的設計目標就是取代CVS。互聯網上越來越多的免費版本控制服務從CVS轉移到Subversion。
目錄 |
Subversion的歷史
在2000年初,CollabNet公司開始尋找開發人員寫一個CVS的代替品。CollabNet供應一個稱作SourceCast的協作軟件包,其中一個組件是版本控制。雖然SourceCast使用CVS作為它最初的版本控制系統,但是從一開始CVS的局限就很明顯,CollabNet明白必須找到一個更好的系統。可是,CVS之所以已經成為開放源碼界的事實標準,很大程度上是因為沒有更好的,至少沒有更好的而且免費的系統。因此CollabNet決定從頭開發一個新的版本控制系統,保留CVS的基本思想,但沒有它的錯誤和局限。
2000年2月,他們聯繫了Open Source Development with CVS (Coriolis, 1999)的作者Karl Fogel,問他是否願意為這個新項目工作。巧的是這時Karl已經在和他的朋友Jim Blandy討論一個新的版本控制系統的設計。在1995年,兩人開了一家提供CVS技術支持的公司,叫作Cyclic Software。雖然公司已經賣掉了,他們仍然在日常工作中使用CVS。在使用CVS時受到的束縛已經讓Jim開始仔細思考管理版本化數據的更好的路子。他不僅已經起好了名字「Subversion」,而且有了Subvesion資料庫的基本設計。當CollabNet打來電話時,Karl立刻同意為這個項目工作。Jim征的得他的老闆RedHat Software的同意,讓他投入這個項目,而且沒有時間限制。CollabNet僱用了Karl和Ben Collins-Sussman,從5月份開始詳細設計。由於Greg Stein 和CollabNet的Brian Behlendorf 和Jason Robbins 作了恰當的推動,Subversion很快吸引了一個活躍的開發人員社區。這說明了許多人有相同的受制於CVS的經驗,他們對終於有機會對它做點什麼表示歡迎。
最初的設計團隊設定了幾個簡單的目標。他們並不想在版本控制方法論上有新突破。他們只想修補CVS。他們決定Subversion應該與CVS相似,保留相同的開發模型,但不複製CVS最明顯的缺點。雖然它不一定是CVS的完全的替代品,它應該和CVS足夠象,從而任何CVS用戶可以不費什麼力氣的轉換過來。
經過14個月的編碼,在2001年8月31號,Subversion 可以「自我寄生」了。就是說,Subversion開發人員停止使用CVS管理Subversion的源代碼,開始使用Subversion代替。
雖然CollabNet發起了這個項目,而且仍然支助一大部分的工作(它為一些專職的Subversion開發人員發薪水)。但是Subversoin象大部分開放源碼的項目一樣運作,由一個鬆散透明,鼓勵能者多勞的規則管理。CollabNet的版權許可證和Debian FSG完全兼容。換句話說,任何人可以免費下載,修改,按自己的意願從新分發Subversion,而不必得到來自CollabNet或其他任何人的許可。
基本命令
Subversion指令的基本格式為:
svn command(or abbr) args
指令 | 縮寫 | 說明 | |
---|---|---|---|
checkout | co | 從版本庫簽出本地副本 | |
add | 把文件和目錄納入版本控制,通過調度加到版本庫。它們會在下一次提交時加入。 | ||
delete | del,remove,rm | 從版本庫中刪除文件和目錄 | |
commit | ci | 把工作副本的修改提交到版本庫 | |
status | 查看當前的工作版本中,自己都做了哪些新的改動。M代表修改的文件,?代表新出現的文件(版本庫中沒有),!代表從版本庫中消失的文件 |
圖形化界面
Subversion本身包括了一個命令行工具用於在終端對Subversion進行操作,有許多工具都實現了Subversion的圖形化界面,方便開發者進行操作。 目前常見的工具有以下幾種:
RapidSVN
跨平台的一個svn客戶端
TortoriseSVN
一個Windows下的svn客戶端,提供和Windows資源管理器的整合功能。
kdesvn
KDE下的一個svn客戶端,在KDE4下可以支援和Dolphin的整合。
gnubversion
Gnome下的一個工具,本身沒有版本庫瀏覽功能,提供和Nautilus的整合。
Linux下的IDE
一些IDE也都提供了對Subversion的整合支持,比如KDevelop,Anjuta,Eclipse(需要subclipse插件)。
Subversion服務器的使用
Subversion提供了一個用於建立SVN服務器的命令svnserve,你可以通過它在一台計算機上搭建一個svn服務器。 首先要用
svnadmin create <dir>
創建你的版本庫。這是一個你的計算機上的目錄。創建好後可以到該目錄下的conf目錄設置訪問權限及密碼。 然後可以使用
svnserve [options] -r <dir>
啟動服務器。詳細參數參考
svnserve --help
Subversion與Apache
Apache下有一個mod可以提供http界面下的svn訪問。
Subversion的版本
目前Subversion最新版本為1.5.5