TortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端,可以超越時間的管理檔案和目錄。檔案保存在中央版本庫,除了能記住檔案和目錄的每次修改以外,版本庫非常像普通的檔案伺服器。你可以將檔案恢復到過去的版本,並且可以通過檢查歷史知道數據做了哪些修改,誰做的修改。這就是為什麼許多人將 Subversion 和版本控制系統看作一種“時間機器”。
基本介紹
- 外文名:TortoiseSVN
- 版本:Subversion
- 類型:客戶端
- 套用:超越時間的管理檔案和目錄
定義,歷史,特性,可選的網路層,數據處理,維護能力,外殼集成,重載圖示,簡便訪問,目錄版本控制,原子提交,安裝,使用技巧,檢出代碼,提交代碼,新增檔案,版本發布,
定義
版本控制是管理信息修改的藝術,它一直是程式設計師最重要的工具,程式設計師經常會花時間作出小的修改,然後又在某一天取消了這些修改,想像一下一個開發者並行工作的團隊 - 或許是同時工作在同一個檔案!- 你就會明白為什麼一個好的系統需要管理潛在的混亂。
某些版本控制系統也是軟體配置管理(SCM)系統,這種系統經過精巧的設計,專門用來管理原始碼樹,並且具備許多與軟體開發有關的特性 - 比如,對程式語言的支持,或者提供程式構建工具。不過 Subversion 並不是這樣的系統;它是一個通用系統,可以管理任何類型的檔案集,包括原始碼。
(概述內容來源:)
歷史
在2002年,Tim Kemp 發現 Subversion 是一個很好的版本控制系統,但是沒有好的圖形化客戶端,創建一個作為 Windows 外殼集成的 Subversion 客戶端的創意來自 TortoiseCVS,一個非常類似的 CVS 客戶端。
Tim 學習了 TortoiseCVS 的原始碼,將其作為 TortoiseSVN 的基礎,然後開始這個項目,註冊了域名 tortoisesvn,並將原始碼提交到網上。此時 Stefan Küng 正在尋找一個好的免費版本控制系統,他發現了 Subversion 和 TortoiseSVN,由於 TortoiseSVN 還不能夠使用,他加入了這個項目並開始編程。很快他便重寫了大多數代碼,並且開始添加命令和特性,此時,最初的代碼都已經不復存在了。
隨著 Subversion 越來越穩定,吸引了越來越多的用戶開始使用 TortoiseSVN 作為他們的 Subversion 客戶端。用戶群增長迅速(每天都持續增長)。Lübbe Onken 提供了許多漂亮圖示和 TortoiseSVN 的 logo,細心照料網站並且管理翻譯。
2013年6月13日,Wandisco收購TortoiseSVN[dot]Net, TortoiseSVN leader - Stefan Küng加入Wandisco,有了Apache subversion領導開發者Wandisco的支持,TortoiseSVN將會有更多的改進。
特性
是什麼讓 TortoiseSVN 成為一個好的 Subversion 客戶端?下面是一個簡短的特性列表。
可選的網路層
Subversion 在版本庫訪問方面有一個抽象概念,利於人們去實現新的網路機制,Subversion 的“高級”伺服器是 Apache 網路伺服器的一個模組,使用 HTTP 的變種協定 WebDAV/DeltaV 通訊,這給了 Subversion 在穩定性和互動性方面很大的好處,可以直接使用伺服器的特性,例如認證、授權、傳輸壓縮和版本庫瀏覽等等。也有一個輕型的,單獨運行的 Subversion 伺服器,這個伺服器使用自己的協定,可以輕鬆的用 SSH 封裝。
數據處理
高效的分支和標籤
分支與標籤的代價不與工程的大小成比例,Subversion 建立分支與標籤時只是複製項目,使用了一種類似於硬連結的機制,因而這類操作通常只會花費很少並且相對固定的時間,以及很小的版本庫空間。
維護能力
Subversion 沒有歷史負擔,它由一系列良好的共享 C 庫實現,具有定義良好的 API,這使 Subversion 非常容易維護,可以輕易的被其他語言和程式使用。
外殼集成
並且你不一定必須使用 Windows 資源管理器,TortoiseSVN 的右鍵選單可以工作在其他檔案管理器,以及檔案/打開對話框等標準的 Windows 應用程式中。你必須牢記,TortoiseSVN 是有意作為 Windows 資源管理器的擴展開發,因此在其他程式可能集成的並不完整,例如重載圖示可能不會顯示。
重載圖示
簡便訪問
Subversion 命令的簡便訪問
所有的 Subversion 命令存在於資源管理器的右鍵選單,TortoiseSVN 在那裡添加子選單。
因為 TortoiseSVN 是一個 Subversion 客戶端,我們也很願意為你展示一些 Subversion 本身的特性:
目錄版本控制
CVS 只能追蹤單個檔案的歷史,但是 Subversion 實現了一個“虛擬”檔案系統,可以追蹤整個目錄樹的修改,檔案和目錄都是版本控制的,結果就是可以在客戶端對檔案和目錄執行移動和複製命令。
原子提交
提交要么完全進入版本庫,要么一點都沒有,這允許開發者以一個邏輯塊提交修改。
版本控制的元數據
每個檔案和目錄都有一組附加的“屬性”,你可以發明和保存任意的鍵/值對,屬性是版本控制的,就像檔案內容。
安裝
語言包
TortoiseSVN的界面已經翻譯成了許多種語言,所以你可以下載符合你要求的語言包。你可以在我們的翻譯狀態頁里看到語言包。如果沒有你需要的,為什麼不加入我們的團隊並且提交你的翻譯呢?-)
每一種語言包都是一個.exe安裝程式,只要根據嚮導運行安裝程式,當你下一次啟動程式時,翻譯就會生效。
拼寫檢查器
TortoiseSVN包括了一個拼寫檢查器,可以檢查你的提交日誌信息,當你的項目語言不是你的本地語言時尤其有用,拼寫檢查器使用OpenOffice和Mozilla相同的詞典。
安裝程式會自動增加了美國和英國英語詞典。如果你想用其他語言,最簡單的方法是簡單地安裝一個TortoiseSVN的語言包。它將安裝合適的詞典檔案以對應本地用戶的TortoiseSVN界面。字典將在下次啟動時可用。
或者你也可以自己安裝詞典。如果你安裝了OpenOffice或Mozilla,你可以複製這些詞典,位於那些套用的安裝目錄。否則,你需要從網路上下載必要的詞典檔案。
一旦你得到了詞典檔案,你可能需要重命名檔案,這樣檔案名稱只包含位置信息,例如:
en_US.aff
en_US.dic
然後把它們複製到TortoiseSVN安裝目錄的bin子目錄,通常情況下,可能是在C:\ProgramFiles\TortoiseSVN\bin。如果你不希望弄亂bin子目錄,你可以將拼寫檢查檔案放置在C:\ProgramFiles\TortoiseSVN\Languages,如果那個目錄不存在,你可以自己創建,當你下次啟動TortoiseSVN時,就可以使用拼寫檢查器。
如果你安裝了多個詞典,TortoiseSVN使用下面的規則選擇一個。
檢查tsvn:projectlanguage設定,關於設定項目屬性可以參考“項目設定”一節。
如果沒有設定項目語言,或者那個語言沒有安裝,嘗試使用對應Windows區域信息的語言。
如果精確的Windows區域信息不起作用,可以試一下“基礎”語言,例如將de_CH(Swiss-German)修改為de_DE(German)。
使用技巧
檢出代碼
初次使用TortoiseSVN的時候,你需要將伺服器的代碼下載到本地,這就是SVN Checkout(SVN檢出)。檢出的步驟如下
第一步,如圖1,創建一個新資料夾作為本地工作目錄(Working directory),可以使用套用名為資料夾名。如,為我的套用vyes創建本地工作目錄。
第二步,從SVN倉庫檢出(checkout)一個套用的全部版本代碼,如圖2,右鍵–>點擊“SVN Checkout”
在彈出頁面中填寫倉庫URL即可,其它默認參數即可,如圖3:
Reversion處,“HEAD revision”是指最新版,也可以指定Revision為任意一個版本。
點擊“OK”,出現下載界面,如圖4:
如果一切順利,vyes套用所有版本代碼將會全部出現在剛剛創建的vyes資料夾下資料夾,Log中最後的Revision表示檢出的當前SVN倉庫的代碼版本,1是指vyes的第一個版本,如圖5:
提交代碼
在本地使用你喜歡的編輯器,編輯任意檔案,保存後該檔案圖示將會出現紅色感嘆號,表示這個檔案修改過,沒有提交,如圖6所示:
剛剛修改過的global.css變色了。下面需要提交(commit)最近的更新。在global.css上擊右鍵,出現選單 ,選擇“SVN commit”,如圖7:
然後填寫關於本次更新的日誌(log message),這是必填項,否則commit會失敗。如圖8:
當您看到如圖9所示,表明剛才的修改已經成功提交,並且前該vyes項目的SVN版本號加1,變成91了。關於SVN的版本號是全局的,也就是說SVN倉庫中的所有檔案變更都共享一個版本號序列,所以如果查看某個檔案,或者目錄的log,可以發現版本號可能並不是依次遞增。
新增檔案
在 SVN工作目錄下,對於檔案修改,完成後只需要commit就ok了,但對於新增檔案,或者從其它目錄複製進來的檔案或資料夾,需要在commit之前需 要做一步add操作,即將檔案或資料夾添加到svn工作目錄中來,否則SVN客戶端不認它。具體操作很簡單,如圖10:
然後再如圖7所示,右鍵commit即可,commit之後,在瀏覽器上輸入你的套用地址就能訪問了。
版本發布
2012年01月16日,TortoiseSVN 1.7.4 發布。
2012年04月29日,TortoiseSVN 1.7.6 發布。
2012年06月08日,TortoiseSVN 1.7.7 發布,SVN客戶端。
2012年08月16日,TortoiseSVN 1.7.8 發布。
2012年09月11日,TortoiseSVN 1.7.9發布。
TortoiseSVN 1.7.11發布