SVN的Local方式:個人源碼管理的好辦法

 

SVN全名Subversion。SVN與CVS一樣,是一個跨平臺的軟件,支持大多數常見的操作系統。本文只討論Windows的情況。其官方網站是:http://subversion.tigris.org(tigris是一個和sourceforge類似的開源網站,與sf不同的是,sf提供的CVS服務,而tigris提供的是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,下載其安裝程序:TortoiseSVN-1.1.3-UNICODE_svn-1.1.3.msi(這個文件名是指NT/2k/XP版的)。這個集成發佈包中包含了Local應用所需要的全部內容。如果想要中文版,還可以下載這個中文語言包:LanguagePack_1.1.3_zh_CN.exe(這是簡體中文包,BTW:從進度上看,繁體中文的完成度還要高些:P)。至於其它的如獨立服務器方式,Web服務器方式,命令行方式,Python支持等,都要相應的安裝包提供,可自行參考SVN網站說明下載安裝。

安裝的過程非常簡單,只是安裝完成後必須重啓一下,因爲它要集成到Windows的資源管理器中。這也可以算是SVN的又一個大優點(多謝mikeshi指出:CVS也有一個TortoiseCVS,這不算是SVN的優點),雖然CVS也有一個WinCVS不錯,但是它畢竟是一個額外的客戶端,不如TortoiseSVN這麼方便。TortoiseSVN裝好後,只要在資源管理器中任何一個文件夾中點右鍵。

第一步:建立Local Repository

假設現在要開始一個項目,叫做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提交即可。

成功提交後,它的圖標上也將顯示一個前面所示的那樣的綠勾。

第五步:日常使用

無非是重複前面的加入/提交等操作。如果在其它機器上使用,則需要重新創建工作目錄,並取出(Checkout)Repository中的源碼。如果同時在多臺機器上使用,則需要使用SVN更新功能來將此工作文件夾中的內容更新爲Repository中的相應版本。

更多的功能請參考聯機幫助及網站提供的其它文檔資料。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章