定義 版本控制 是管理信息修改的藝術,它一直是程式設計師最重要的工具,程式設計師經常會花時間作出小的修改,然後又在某一天取消了這些修改,想像一下一個開發者並行工作的團隊 - 或許是同時工作在同一個檔案!- 你就會明白為什麼一個好的系統需要管理潛在的混亂。
某些版本控制系統也是
軟體配置管理 (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 建立分支與標籤時只是複製項目,使用了一種類似於
硬連結 的機制,因而這類操作通常只會花費很少並且相對固定的時間,以及很小的版本庫空間。
維護能力 Subversion 沒有歷史負擔,它由一系列良好的共享 C 庫實現,具有定義良好的 API,這使 Subversion 非常容易維護,可以輕易的被其他語言和程式使用。
外殼集成 TortoiseSVN 與Windows 外殼(例如
資源管理器 )無縫集成,你可以保持在熟悉的工具上工作,不需要在每次使用
版本控制 功能時切換應用程式。
並且你不一定必須使用 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為任意一個版本。
TortoiseSVN檢出對話框 點擊“OK”,出現下載界面,如圖4:
如果一切順利,vyes套用所有版本代碼將會全部出現在剛剛創建的vyes資料夾下資料夾,Log中最後的Revision表示檢出的當前SVN倉庫的代碼版本,1是指vyes的第一個版本,如圖5:
檢出的下載界面 TortoiseSVN檢出成功 提交代碼 在本地使用你喜歡的編輯器,編輯任意檔案,保存後該檔案圖示將會出現紅色感嘆號,表示這個檔案修改過,沒有提交,如圖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發布