SVN版本管理軟件使用簡介
本節主要講解一下SVN版本管理軟件的使用介紹與教程,SVN現在是很搶手的東西,隨著它的快速發展,版本也更新了多個,本節就像大家簡單描述一下SVN版本管理軟件,歡迎大家一起來學習。
事實上SVN的確是我用過的***的源碼管理工具,雖然我用過的這類工具并不多,只有VSS、CVS和SVN,其它像PVCS、TeamSource、ClearCase之類的只有耳聞,因為它們都是商業產品,并且通常用于管理大型的項目,沒有機會試用,所以也不知道它們如何。VSS是我四年前在公司里用過的最早的一款源碼管理工具,不過它實在是太一般了,而且也是商業產品。所以除了公司里工作需要,我自己是不用的。從那公司出來以后,我試用了CVS,這才開始對自己的源碼進行管理。作為OSS圈里元老級的源碼管理工具,CVS有多強我不用再多說。但是現在SVN這顆新星已經漸漸要蓋過CVS的光芒了,可見SVN是有自己殺手锏的。還有一點很重要的就是:它也是一個開源免費的軟件。
SVN版本管理軟件的全名是Subversion。
SVN與CVS一樣,是一個跨平臺的軟件,支持大多數常見的操作系統。本文只討論Windows的情況。其官方網站是:
http://subversion.tigris.org(tig...s提供的是SVN服務)。
在介紹SVN的應用前,先討論一下源碼管理的一個重要的基本概念:Repository。Repository就是源碼的集中存放處,所有修改后提交的源碼就是保存在這里,并在其中記錄所有的修改版本,分支版本,版本合并,以及并發修改處理等。傳統的VSS或CVS都是采用類似C/S的應用方式,有一個獨立的服務端來做這些工作。而SVN則要靈活得多,它支持三種方式:獨立服務器方式、Web服務器方式(這是CVS所沒有的)和本文將要著重討論的Local方式。
回到主題上。個人源碼管理是我自己提的一個概念,以區別于團隊開發的源碼管理。本來像VSS、CVS、SVN這樣的工具最主要的功能是用于團隊開發時用的,用于處理源碼修改的版本控制和并發修改沖突。但對于個人開發來說,就不存在并發修改沖突的問題了。但個人開發又存在一些新的問題:一般個人沒有條件搭一個獨立的服務器來做Repository,所以實際上即使是用了CVS一類,也是服務端客戶端在一臺機器上,而且也不需要用戶權限管理這樣的功能。但有時又需要在不同的機器間拷貝源碼作開發,這又帶來版本混亂的潛在風險。而SVN的Local方式可以說是***的解決方案。
我現在的用法就是:在U盤里建立Repository,然后在每臺機器上都裝了SVN,這樣我就不需要一臺單獨的Repository服務器,只要在任一臺機器上把U盤插上即具備了完整的版本控制功能。
SVN版本管理軟件的安裝和使用。
因為本文只討論Windows下的Local方式,所以不需要獨立服務器或Web服務器。SVN的客戶端和CVS一樣,也是命令行方式工作。但在Windows平臺下,我們有還別的選擇,這就是易用性很好的一個實現:TortoiseSVN(注意:這是一個獨立于SVN的項目,類似于WinCVS與CVS的關系)。其官方網站是:http://www.tortoisesvn.org,下載...N網站說明下載安裝。
安裝的過程非常簡單,只是安裝完成后必須重啟一下,因為它要集成到Windows的資源管理器中。這也可以算是SVN的又一個大優點(多謝mikeshi指出:CVS也有一個TortoiseCVS,這不算是SVN版本管理軟件的優點),雖然CVS也有一個WinCVS不錯,但是它畢竟是一個額外的客戶端,不如TortoiseSVN這么方便。TortoiseSVN裝好后,只要在資源管理器中任何一個文件夾中點右鍵,即可出現如下圖所示的菜單(我打了中文包,所以顯示是中文,可以在Settings中選擇任何一種已經安裝的語言包):
***步:建立LocalRepository
假設現在要開始一個項目,叫做Project1。先在U盤(假設為U:)建立一個文件夾:u:\svn\project1。然后在這個文件夾上點右鍵,選擇:TortoiseSVN|在此創建文件庫。有兩種方式供選擇,如下圖:
Berkeley數據庫和本地文件系統。本地文件系統方式有點類似于CVS,但實現方式上有所不同。Berkeley數據庫據說是目前***的嵌入式數據庫解決方案,TortoiseSVN默認選擇BDB方式,推薦。確定創建后稍等一會即會彈出一個提示窗,說明文件庫創建成功。
第二步:創建工作文件夾
在本地硬盤(如D盤)創建一個工作文件夾:d:\working\project1。然后在這個文件夾上點右鍵,選擇:SVN取出。顯示如下對話框:
其中唯一需要指定的就是文件庫URL,Local方式是使用file協議。確定后顯示如下對話框:
點確定后完成創建工作,在文件夾中看到一個隱藏的文件夾:.svn。其中記錄了工作文件夾的一些必要信息,功能與CVS的CVS文件夾一樣。一個SVN的工作文件夾的圖標上將會多了一個綠色的勾,所有被加入Respository的內容都會在圖標上加上這樣的綠勾,如圖:
第三步:開始寫程序
現在可以在此工作目錄中創建源程序文件或文件夾。在工作文件夾中的任何文件或文件夾(除了.svn文件夾)的右鍵菜單上都會增加一些項目,下圖分別為工作文件夾、工作文件夾下的子文件夾、工作文件夾中的文件、已經提交的文件的右鍵菜單內容:
從最左邊的菜單和最右邊的菜單上可以看到,SVN/TortoiseSVN支持了CVS的幾乎所有功能,還增加了一些很實用的功能(比如文件/文件夾的重命名,在這CVS里是最讓人頭疼的問題之一)。這又是SVN版本管理軟件的大優點。
如果你的源程序原來就存在,可以立即導入到Repository里:在你原來的源程序文件夾上點右鍵,選擇TortoiseSVN|導入。即可。不過要注意:***先在TortoiseSVN|設置里設定排除/忽略樣式(可以設置文件夾或文件名,支持通配符,區分大小寫?。。。?,或是先刪除不必要導入的文件。然后再取出(Checkout)到工作目錄即可。
第四步:將寫好的程序提交到Repository
選擇所有要加入的文件和文件夾,然后點TortoiseSVN|加入。將顯示如下對話框(以將本文提交為例):
把它們加入Repository,確定后它的圖標上將顯示一個“+”號,表示這個文件已經加入,但還未提交。再在當前文件夾上點右鍵,選擇SVN提交即可。將顯示如下對話框(提交本文,其中的Repository是我實際使用的)
成功提交后,它的圖標上也將顯示一個前面所示的那樣的綠勾。
第五步:日常使用
無非是重復前面的加入/提交等操作。如果在其它機器上使用,則需要重新創建工作目錄,并取出(Checkout)Repository中的源碼。如果同時在多臺機器上使用,則需要使用SVN更新功能來將此工作文件夾中的內容更新為Repository中的相應版本。本節關于SVN版本管理軟件介紹完畢。
【編輯推薦】