什么是 TortoiseSVN?
SVN 全名是 Subversion,它是一個開源的版本控制軟件,與它類似的軟件有 CVS,VSS,ClearCase。只要接觸過團隊開發,對這類軟件肯定不會陌生。而 SVN 作為一個跨平台的開源軟件,具有很強的活力,目前也已經相當成熟,很多開源項目都用它來管理文檔或是代碼。
更為重要的是,不僅僅是團隊開發,作為個人獨立開發的項目(或者個人想維護的文檔)也可以用 SVN 進行管理,而不需要另外一台服務器。
TortoiseSVN 是 SVN 的一個 Windows 外殼擴展應用,它可以幫助用戶直觀的進行 SVN 的各種操作,而不需要使用命令行。作為個人用戶,只要安裝 TortoiseSVN 即可,而不用再去安裝配置 SVN。
TortoiseSVN 快速入門
下面我就來對 TortoiseSVN 從安裝到第一個代碼庫的建立和使用做一個最簡單的介紹。即使對 TortoiseSVN 一無所知,通過下面的操作,也可以初步領略 SVN 管理代碼的樂趣。
一,安裝
TortoiseSVN 的官方主頁:http://tortoisesvn.net,首先下載當前版本的 TortoiseSVN,希望能有中文界面的還可以選擇語言包下載。同時在語言包旁邊,你還可以看到中文的使用手冊。
安裝 TortoiseSVN 非常簡單,在結束后會提示重啟,這是因為 TortoiseSVN 與資源管理器整合,它的圖標功能需要重啟后才能使用,所以建議這里重啟一下。
這個時候,在任何一個文件夾點右鍵,就會出現如下的菜單:
如果是英文界面,那么在 TortoiseSVN --> Settings 中可以選擇語言。TortoiseSVN 的所有操作都是通過右鍵菜單來完成的。
二,創建版本庫
首先,我們要新建一個文件夾來保存 SVN 的數據,比如我們建立了一個空文件夾:"D:\MySVN"。在這個文件夾圖標上點擊右鍵,在菜單中選擇:在此創建版本庫,很快就會提示建立完成。
這個時候,你會發現這個文件夾里面會增加好多文件,它將保存你的用戶權限的設置以及所有的代碼信息。現在不用管它,按照默認設置就可以很好工作。以后如果要在另外一台機器上修改代碼,或者希望別人也能使用你的代碼庫,只要把這個文件夾復制過去就行。備份也是如此。
注:從網上看早期的教程,那些文章在這一步會提到選擇 Berkeley 數據庫(BDB)或者本地文件系統(FSFS)。但是從 SVN 1.5 版本開始,已經取消了 BDB 的選擇,直接默認的就是 FSFS。
注:為了避免因為多字節字符造成的種種問題,建議把版本庫的路徑和名字不要含有中文或者空格。這個問題雖然可能隨着軟件的升級得到解決,不過目前看來,有時還會出問題。不過這個問題僅限於版本庫,受管理的代碼和目錄可以任意取名。
三,檢出到工作目錄
完成上一步后,我們已經建立了一個代碼倉庫,下面就是要設置工作目錄。工作目錄一般來講,就是存放了當前最新版本的代碼,程序的編寫和修改都在這個目錄完成。比如我們在桌面選擇一個文件夾,名叫 Project。在這個文件夾圖標上,點擊右鍵,選擇:SVN 檢出。
然后在版本庫 URL 中選擇剛才創建的版本庫:file:///D:/MySVN,點擊確定,就開始從版本庫中獲取代碼了。
自然,因為我們版本庫是空的,所有什么代碼也沒有。如果你打開隱藏文件顯示,會發現多了一個 .svn 的文件夾,它存放的是本地文件版本控制的信息,不要刪除或者修改它,以后工作目錄的每層路徑都會有 .svn 文件夾。為了防止誤刪這個文件夾,我們不顯示隱藏文件。
刷新一下桌面,會發現我們的 Project 文件的圖標左下角會多出一個綠色的對號,這表明它已經納入了版本控制。
注:你可以在任何地方多次檢出。
四,提交入庫
第一次向版本庫中加入代碼可以使用導入的功能,不過我還是喜歡直接添加文件。比如我向 Project 中復制了幾個目錄和文件。因為這些文件是新增的,所以自動會用問號來標記。
然后我希望把這些文件存放到代碼倉庫中,這個時候,在 Project 文件夾內點擊右鍵,選擇:SVN 提交,然后勾選"全選",把新增的所有文件都納入版本控制,點擊確定。
五,版本管理
我們開始工作,比如新增文件、修改文件、刪除文件,你會發現所有修改過的文件都會有一個紅色嘆號來標記。當覺得工作進行到一定階段,有必要保存一下的時候,我們可以再次進行提交。因為現在講解的是一個人使用,所以很少會再次檢出或者進行更新,但這在團隊開發中很常用。
如果你發現你這次的修改有問題,想恢復版本庫中最新的版本,只要把這個文件刪除,並選擇更新即可。
在某種情況下,要恢復一個很久之前的版本,這個時候只要點擊右鍵,選擇:顯示日志,在想復原的版本上點右鍵,選擇:復原到此版本。
通過上面簡單的介紹,希望能帶大家入門。更多的操作可以參考官方的文檔,非常詳細。
Source URL: http://www.svn8.com/svnpz/20090622/6731.html