Tortoises SVN 教程
1. TortoiseSVN 簡介
版本控制是管理信息修改的藝術,它一直是程序員最重要的工具,程序員經常會
花時間作出小的修改,然后又在某一天取消了這些修改,想象一下一個開發者并行工
作的團隊 - 或許是同時工作在同一個文件!- 你就會明白為什么一個好的系統需要
管理潛在的混亂。
2. 什么是 TortoiseSVN
TortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端,可以超越時間的管理文件和目錄。文件保存在中央版本庫,除了能記住文件和目錄的每次修改以外,版本庫非常像普通的文件服務器。你可以將文件恢復到過去的版本,并且可以通過檢查歷史知道數據做了哪些修改,誰做的修改。這就是為什么許多人將Subversion 和版本控制系統看作一種“時間機器”。
某些版本控制系統也是軟件配置管理(SCM)系統,這種系統經過精巧的設計,專門用來管理源代碼樹,并且具備許多與軟件開發有關的特性 - 比如,對編程語言的支持,或者提供程序構建工具。不過 Subversion 并不是這樣的系統;它是一個通用系統,可以管理任何類型的文件集,包括源代碼。
3. 名詞解釋
3.1 檢出工作副本
你的版本庫就像是一臺時間機器,它記錄了所有提交的修改,允許你檢查文件或目錄以及相關元數據的歷史。通過一個Subversion 命令你可以根據時間或修訂號取出一個過去的版本(或者恢復現在的工作拷貝),然而,有時候我們只是想看看歷史而不想回到歷史
3.2 提交修改
可以理解為上傳修改文件的記錄,就是把工作副本里面修改過的文件的記錄上傳到版本庫里面。
3.3 更新工作副本
可以理解為下載最新版本庫文件的記錄,就是把版本庫里面最新上傳的文件記錄下載到工作副本里面。
3.4 鎖定—修改—解鎖
許多版本控制系統使用“鎖定—修改—解鎖”機制解決這種問題,在這樣的模型里,在一個時間段版本庫的一個文件只允許被一個人修改。首先在修改之前,Harry 要“鎖定”住這個文件,鎖定很像是從圖書館借一本書,如果Harry 鎖住這個文件,Sally 不能做任何修改,如果Sally 想請求得到一個鎖,版本庫會拒絕這個請求。Harry 結束編輯并且放開這個鎖之前,她只可以閱讀文件。Harry 解鎖后,就要換班了,Sally 得到自己的輪換位置,鎖定并且開始編輯這個文件。
4. TortoiseSVN 安裝
安裝TortoiseSVN 軟件,鼠標左鍵雙擊”TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi”,
如圖所示進行安裝。
出現提示,重新啟動計算機安裝完畢。
注:如果有需要使用中文版可以加裝中文語言包,以下是以中文界面作為操作說明。
5. 安裝TortoiseSVN遇到問題解決方法
安裝TortoiseSVN 不成功出現錯誤提示“Service "VisualSVNServer" failed to start. Verifythat you have sufficient privileges to start system services.”,解決方法:這是Windows Installer 的問題,重新安裝Windows Installer 即可,如有安裝問題請與管理員聯系。
6. TortoiseSVN 使用
6.1 檢出工作副本
大多數時候,你會使用 檢出 從版本庫取出一個新拷貝開始使用Subversion,這樣會在本機創建一個項目的“本地拷貝”。選擇一個存放工作副本目錄。右鍵點擊彈出右鍵菜單,選擇“SVN 檢出 …”
注:你首先要檢出主線(trunk),這樣版本庫才知道你要接受管理的程序在磁盤哪個目錄。看上去什么都沒有發生,但實際上這個操作讓版本庫把你的項目目錄納入管理了在你硬盤的適當的位置(例:e:\yfb),目標文件夾點擊右鍵,選擇 “SVN 檢出…”
然后就會彈出一個 檢出 選項對話框,輸入遠程項目目錄和本地工作目錄,例:Ft-llb 服務器的svn 目錄下的yfb 版本庫,遠程項目地址為:https://ft-llb/svn/yfb/
點擊確認,就會彈出一個遠程服務器要求驗證的對話框,輸入正確的用戶名和密碼。
檢出成功后,會在“檢出”目錄出現綠色小勾,“檢出”根目錄也會出現.svn 隱藏目錄。
6.2 提交修改
將你對工作副本的修改發送給版本庫,稱為提交修改。但在你提交之前確保你的工作副本是最新的。你可以直接使用 Svn 更新,或者,你可以先使用“TortoiseSVN --> 檢查修改”看看哪些文件在本地或是服務器上已經有了改動。
如果你的工作副本是最新的,并且沒有沖突,你就已經為提交做好準備了,選擇你要的文件和/或文件夾,然后“svn 提交 ......”
在你做了修改之后,你可以在項目文件夾下點擊右鍵或者你修改的文件下點擊右鍵,選擇“SVN 提交…”,這兩者的區別在于,第一個可以一次提交你所做所有文件的修改,而第二個只是提交你所選的文件。
點擊 Svn 提交 之后,就會彈出一個讓你輸入更改 “日志” 的對話框:
輸入你所作的修改,然后點擊 確認,就會開始向遠程服務器提交修改。
提交文件成功!返回信息!“完畢!”表示文件已成功提交。點擊“確認”按鈕確定更新文件成功。
6.3 更新工作副本
更新多個項目在Subversion 還不是原子操作,所以TortoiseSVN會首先找到版本庫的HEAD修訂版本,然后將所有項目更新到特定修訂版本,防止出現混合修訂版本的工作副本。如果只有一個項目被選中更新,或選中的項目來自不同的版本庫,TortoiseSVN 只會更新到HEAD。
在工作副本里面選定文件夾或文件,右鍵菜單 Svn更新。
出現一個對話框,輸入正確的用戶名和密碼即可向版本庫提交你想更新文件的信息。
更新文件成功!返回信息!“Completed”表示文件已成功更新;“于版本:17”表示更新文件版本號為3。點擊“確認”按鈕確定更新文件成功。
6.4 鎖定
選擇工作副本中你想要獲取鎖定的文件,然后選擇命令“TortoiseSVN --> 獲取鎖定…”
出現一個對話框,允許你輸入注釋,這樣別人知道你為什么鎖定這個文件。注釋是可選的,并且只用于基于Subversion 的庫。選擇需要鎖定的文件在復選框打勾,點擊“確定”按鈕鎖定選擇的文件。
出現一個對話框,輸入正確的用戶名和密碼即可向版本庫提交你想鎖定文件的信息。
鎖定文件成功!返回信息!“被llb鎖定”表示文件已被llb 用戶鎖定;“E:\yfb\liulebin\fdsf.txt”表示鎖定文件的名稱。點擊“確認”按鈕確定鎖定文件成功。
6.5 釋放鎖定(取消鎖定)
選擇工作副本中你想要取消鎖定的文件,然后選擇命令“TortoiseSVN ---> 釋放鎖定…”
出現一個對話框,選擇需要取消鎖定的文件在復選框里打勾,點擊“確定”按鈕。
出現一個對話框,輸入正確的用戶名和密碼即可向版本庫提交你想取消鎖定文件的信息。
取消鎖定文件成功!返回信息!“已解觸鎖定!”表示文件已被解除鎖定;“E:\yfb\liulebin\fdsf.txt”表示釋放鎖定文件的名稱。點擊“確認”按鈕確定鎖定文件成功。
7. 其它功能
7.1 網頁瀏覽
你可以使用該地址 https://ft-llb/svn/yfb/在網頁上瀏覽項目,同樣需要和前面一樣的用戶名、密碼。
7.2 SVN還原
取消上一次的操作(只針對客戶端,服務端不做改動)
7.3 版本庫瀏覽
7.4 版本示意圖
7.5 顯示日志
查看版本日志及不同版本間相互比較
7.6 檢查修改
同服務器上的項目版本進行比較,并可做相應的修改。
8. 小技巧
工作副本下.svn 目錄被刪除了怎么辦?
工作拷貝中的任何一個目錄包括一個名為.svn 管理區域,通常列表操作不顯示這個目錄,
但它仍然是一個非常重要的目錄,無論你做什么?不要刪除或是更改這個管理區域的任何東
西,Subversion 使用它來管理工作拷貝。
如果你不小心刪除了子目錄.svn,最簡單的解決辦法是刪除包含的目錄(普通的文件系統刪
除,而不是svn delete),然后在父目錄運行svn svn 更新,Subversion 客戶端會重新下載你
刪除的目錄,并包含新的.svn。