概述:
Subversion 是一個自由/開放源碼的版本控制系統,也就是說 Subversion 管理著隨時間改變的檔案,這些檔案放置在一個中央 檔案庫 (repository) 中,這個檔案庫,很像一個尋常的檔案伺服器,不過它會記住每一次檔案的變動。這樣你就可以把檔案回復到舊的版本,或是瀏覽檔案的變動歷程,許多人會把版本控制系統想像成某種 “時光機器”。。
Subversion 的原始設計團隊定下了幾個簡單的目標,他們決定它必須在功能上可取代 CVS,也就是說,所有 CVS 可達成的事,它都要能夠作到,在修正最顯而易見的瑕疵的同時,還要保留相同的發展模式,還有,Subversion 應該要和 CVS 很相像,任何 CVS 使用者只要花費少許的力氣, 就可以很快地上手。
關於為何使用 Subversion 來取代 CVS,可以參考 Subversion 的電子書內容。
目的:
- 在 Windows2003 Server 上安裝及設定 Subversion,以便於團隊成員透過 Internet 協同開發軟體專案,並有版本控管功能。
- 在用戶端安裝 Subversion 的 Client-side 工具:TortoiseSVN ,可以整合與檔案總管整合在一起,利用 GUI 方式提供了建立檔案庫、以及匯入、匯出等功能。
平台:
Windows Server 2003 + Apache 2.0.54 for Windows 2000/2003/XP
所需軟體與版本:
˙Apache 2.0.54 win32 platform
˙Subversion 1.2.0
˙TortoiseSVN 1.2.0 and 繁體中文 Language Pack
安裝心得:
Subversion 係與 Apache 很緊密的整合在一起,所以安裝 Subversion 之前,必須先安裝 Apache Web Server,藉由其提供主要的四大功能:WebDAV、Browsing The Repository、Authentication、Security。
安裝的整個過程,係參考蔡煥麟先生所寫的一篇:「Subversion for Windows 安裝指南」,非常詳細,照其步驟安裝 Apache and Subversion,以及在 Apache 的設定檔中設定相關 Subversion 的一些設定,非常簡單。
參考文件:
˙Subversion 電子書中譯本
˙Subversion Wiki (中文)
***強烈建議***,在用戶端上安裝 TortoiseSVN,如此要建立 Repository、CheckIn/CheckOut 等功能,相當地方便。
Hi Kenming:
謝謝你的邀約, 因為這周末剛好有點事, 所以下次吧!
M.Y.
hello M.Y.
太好了,同是校友,又是在軟體業界 🙂
有機會可以彼此交換一些意見。本星期六的免費 UML 講座,也歡迎您蒞臨參加,屆時也可以見個面聊聊。
Hello Kenming:
我是你網站的常客,而且我還是你台北工專的校友,看到你一篇篇對於軟體獨特的見解與分享, 內心感到佩服! 其實SubVersion獨立使用還是無法解決軟體開發協同作業的問題, 因為軟體工程中的建構管理並不只包含Source Code的版本控管, 還必須包含Change tracking,Requirement tracking,Bug Tracking, 而這些都必需與軟體的Source Code 做Association 才有辦法做到Trace ability, 也許這些你都已經知道了, 因為你介紹SubVersion,所以順便分享一下SubVersion的使用經驗.
CodeBeamer 已經內含SubVersion Server, 而且可以輕易達到上面我所說的功能, 如果有興趣歡迎你來我網站註冊有完整功能的測試版可下載,還有提供CodeBeamer+SubVersion的實務中文手冊.
PS. 報歉用你的Blog打一下知名度:-)
M.Y.
hello my:
我是一時性起,看了許多文章介紹 Subversion 的好,所以,趕搭潮流,也跟著來使用 Subversion。 🙂
貴公司的網站我記得以前看過,那套專案控管的 portal 看來蠻有意思的。
hello phielk:
我是為了我們團隊內部開發而因應架設的,應該是不會發太多時間在其設定與管理上。 🙂
不過,或多或少,在進行控管的期間,若有找尋到相關的資料與心得,也會隨時記錄在我的 blog 中的。
最近也正在使用這套!
不錯的一套工具!
對自己而言,是可以真正做到資訊透明化、集中化的理想,對於專案溝通上有很大的幫助!
期待您繼續分享喔!
用了CVS許多年後我最後也切換到SubVersion,最主要是喜歡上SubVersion 的 Revision 觀念,CVS的單一檔案版本控制還可以,但是對於整個module的版本就得靠手動的Tag來處理,SubVersion的Revision只要Repository裏面有風吹草動(filename/foldername 變更,檔案新增/刪除/修改)Revision就會自動增加, 還有以Folder為base 的 tag/branch 相當直覺. 我告訴我那些用CVS的朋友, CVS is obsolete , 投向SubVersion的懷抱吧!