系統知識網 手機應用 TortoiseSVN使用教程

TortoiseSVN使用教程

TortoiseSVN是一款非常好用的超越時間的管理文件和目錄的項目管理軟件,使用它文件保存在中央版本庫,除瞭能記住文件和目錄的每次修改以外,版本庫非常像普通的文件服務器。你可以將文件恢復到過去的版本,並且可以通過檢查歷史知道數據做瞭哪些修。

TortoiseSVN是一款非常好用的超越時間的管理文件和目錄的項目管理軟件,使用它文件保存在中央版本庫,除瞭能記住文件和目錄的每次修改以外,版本庫非常像普通的文件服務器。你可以將文件恢復到過去的版本,並且可以通過檢查歷史知道數據做瞭哪些修改,誰做的修改。這就是為什麼許多人將 Subversion 和版本控制系統看作一種“時間機器”。是很多工作管理員備份工作檔案的軟件。

為什麼要用SVN備份工作檔案?

1、備份工作檔案是十分重要的。您永遠不知道計算機上的硬盤何時會壞掉。根據經驗法則再加上摩菲定理,壞事情往往都發生在最重要的時刻。例如,要release東西的前一刻,硬盤完全壞掉,無法修復。所以,常常備份工作數據是非常重要的。大部分公司的server都會有專門的備份機制,甚至是異地備援。絕對比放在自己的計算機裡頭,或是隨身碟上面來的安全。

2、版本控制非常重要。您無法保證手頭上最新版本永遠都是對的。很多時候,在經過數天努力工作後,您才發現走錯方向。需要將所有的修改回復到數天前版本。沒有幾個人能夠完全記住自己修改過什麼東西。如果沒有做好版本控管,那麼,最差的狀況就是要全部重來

3、夥伴間的數據同步也是非常重要的。很多時候,除瞭您個人外,還有其它的夥伴也需要您的檔案。怎麼把最新的檔案提供給夥伴呢?用e-mail?根據經驗,用e-mail是一個很差的辦法。到瞭最後,根本就不知道哪一封e-mail才是新的。因為可能您最新的e-mail已經被當成垃圾信給丟瞭。別忘瞭,現在很多e-mail軟件都有anti-spam的功能,說不定這些信件都被當成廣告信給處理掉瞭。而且,您也應該知道一般檔案如果放在e-mail內,檔案大小會變得比較大(通常是原來的4/3倍以上)。如果每天更新一次,恐怕幾天沒收信的話,信箱就爆瞭!

4、如果沒有一個好的辦法,備份不同版本是很耗費硬盤空間的。例如:您有一個總共10MB的目錄,使用單純的檔案備份。如果有10個版本就會變成100MB。20個版本就有200MB。如果,不想備份這麼多版本,勢必就是要減少備份的次數。拉長備份周期將會導致數據遺失的危險性增高。把舊的不需要的備份刪除?根據經驗,隻要時間一拉長,您跟本就不知道一個月以前的版本是重要或者是不重要

TortoiseSVN使用教程

一、建立一個 runoob01 的工作目錄

1、所謂的 runoob01 目錄其實就是您平常用來存放工作檔案的地方。通常我們會等到自己的工作做的一個段落的時候再進行備份。所以我們平常都是在 runoob01 目錄下面工作,等到適當時機在 commit 到 repository 中。舉例來說,我們想在 D 盤下面建立一個名為 runoob01 的目錄。首先先把這個目錄建立出來。

2、進入創建的目錄在空白處按下右鍵後(您可以在 MyWork 目錄的 icon 上按,也可進入 MyWork 目錄後,在空白的地方按),選擇SVN checkout。

3、接著會彈出一個檢出窗口。

4、首先我們要填入的是 repository(版本庫)的位置,對於 SVN 來說,repository 的位置都是 URL。版本庫 URL 這裡填入我們測試的版本倉庫地址svn://10.0.4.17/runoob01

接著,稍微看一下 Checkout directory(檢出至目錄),這個字段應該要指向您的 runoob01 目錄。

5、確認後,按下 OK 按鈕,您應該可以看到如下的信息窗口。

6、這樣就表示動作完成。按下 OK 按鈕後,再到您剛剛建立的目錄下。您將會看到 MyWork 目錄下面多瞭一個名為.svn的目錄(這個目錄是隱藏的,如果您的檔案管理員沒有設定可以看到隱藏目錄,您將無法看到它) 。

7、如果您要在一個已經存在的 SVN Server 上面 checkout 出上面的檔案,您隻需要給定正確的 SVN URL 以及要 checkout 目錄的名稱。就可以取得指定的檔案及目錄瞭。


二、新增檔案及目錄到 Repository 中 add commit

1、創建目錄 dir01, 在目錄裡新增文件

2、將新增的文件加入到 SVN 版本控制中,TortoiseSVN 會把準備要加入的檔案及目錄,勾選需要加入的文件。

3、按下 OK 後,您將會看到如下的訊息窗口:

4、這個 Add(增加)的動作並未真正的將檔案放到 Repository 中。僅僅是告知 SVN 準備要在 Repository 中放入這些檔案。 此時的文件狀態為:

5、這些檔案真正的放入到 Repository 中,空白處右鍵選擇 SVN commit(提交) 緊接著,您將會看到如下的窗口出現:

6、在這裡可以清楚地瞭解到哪些檔案要被 commit 到 repository(版本庫)中。同樣的,如果您有檔案不想在這個時候 commit 到 Repository,您可以取消選取的檔案,這樣他們就不會被 commit 到 Repository 中。在"信息"文本框中可以寫入對本次 commit 的說明。

點擊"確認"後完成 commit 動作,然後您可以到 runoob 目錄中,確定是否所有的檔案 icon 都有如下的綠色勾勾在上面,這樣代表您的檔案都正確無誤的到 repository 中。


三、更新檔案及目錄 update

由於版本控制系統多半都是由許多人共同使用。所以,同樣的檔案可能還有人會去進行編輯。為瞭確保您工作目錄中的檔案與 Repository 中的檔案是同步的。建議您在編輯前都先進行更新的動作。

1、在想要更新的檔案或目錄 icon 上面按下鼠標右鍵。並且選擇 SVN Update。

2、有時我們需要回溯至特定的日期或是版本,這時就可以利用 SVN 的 Update to revision 的功能。在想要更新的檔案或目錄 icon 上面按下鼠標右鍵。並且選擇 TortoiseSVN->Update to revision(更新至版本)。


四、復制檔案及目錄 branch

1、很多時候您會希望有另外一個復制的目錄來進行新的編修。等到確定這個分支的修改已經完畢瞭,再合並到原來的主要開發版本上。舉例來說,我們目前在runoob01/trunk下面有如下的目錄及檔案:

2、現在,我們要為 trunk 這個目錄建立一個 branch。假設我們希望這個目錄是在 D:\runoob01\branch。首先我們可以在 trunk 目錄下面的空白處,或是直接在 trunk 的 icon 下面按下鼠標右鍵選擇 Branch/Tag…(分支/標記)這個選項,您將會看到如下的對話框出現。

3、請先確認 From WC at URL(從工作副本/URL): 中的目錄是您要復制的來源目錄。接著,在 To URL(至路徑)中輸入您要復制過去的路徑。通常我們會將所有的 branch 集中在一個目錄下面。以上面的例子來說,branch 檔案都會集中在 branch 的子目錄下面。在 To URL 中您隻需要輸入您要的目錄即可。目錄不存在時,會由 SVN 幫您建立。特別需要註意的是 SVN 因為斜線作為目錄分隔字符,而非反斜線。 接著在 Log message(日志信息)輸入您此次 branch 的目的為何。按下 OK 就可以瞭。

如果成功,將可以看到下面的畫面:

4、按下 OK 就可以關閉這個窗口瞭。如果您此時立刻去 runoob01 目錄的 branch 子目錄下面,您將會失望的發現在該目錄下面並沒有剛剛指定的目錄存在。這是因為您 runoob01 目錄的部份還是舊的,您隻需要在 branch 子目錄下面進行 SVN update 就可以看到這個新增的目錄瞭。新增的目錄就與原來的目錄無關瞭。您可以任意對他進行編輯,一直到您確認好所有在 branch 下面該做的工作都完成後,您可以選擇將這個 branch merge 回原來的 trunk 目錄,或者是保留它在 branch 中。


五、合並動作 merge

1、假如我們在 branch 分支中對文件進行瞭修改或增加瞭文件,要 merge 回 trunk 目錄中,方法很簡單。以上面的例子來說,我們在 D:\runoob01\trunk目錄空白處,按下鼠標右鍵,選擇 Merge(合並):

2、這個畫面主要分為三個部份,前面的 From: 與 To: 是要問您打算從 Branch 中的哪個版本到哪個版本,merge 回原來的 trunk 目錄中。因此,From 跟 To 的 URL 字段應當都是指定原來 branch 的目錄下。剩下的就是指定要 merge 的 revision 范圍。以上面的例子而言,我們從 Branch 的 Revision 7 開始 merge 到 Branch 下面的最新版本。您可以透過,Dry run 按鈕,試作一次 Merge。這個 merge 隻會顯示一些訊息,不會真正的更新到 trunk 的目錄去。隻有按下 Merge 按鈕後,才會真正的將 branch 的檔案與 trunk 的檔案合並起來。

3、如果您確認這次的 merge 沒有問題,您可以直接使用 commit 來將這兩個被修改的檔案 commit 回 SVN repository 上。如果有問題,您可以直接修改這兩個檔案,直到確認 ok 瞭,再行 commit。


六、制作 Tag 或是 Release

1、所謂的 Tag 或是 Release 就是一個特別的版本,因為這個版本可能有特別的意義。例如:這個版本是特別的 Milestone 或是 release 給客戶的版本。其實,Tag 與 Release 的作法與 Branch 完全相同。隻是 Branch 可能會需要 merge 回原來的 trunk 中,而 tag 及 release 大部分都不需要 merge 回 trunk 中。

舉例來說,今天我們的 trunk 做瞭一版,這個版本被認定是軟件的 1.0 版。 1.0版對於開發來說是一個非常重要的裡程碑。所以我們要特別為他做一個標記,亦即 Tag。假設,這個 1.0 版是要正式 release 給客戶或是相關 vendor,我們要可以為他做一個 Release 的標記。基本上,SVN 隻有目錄的概念,並沒有什麼 Tag 的用法。所以您會看到在 SVN 的選單上面,Branch 與 Tag 是同一個項目。以這個 1.0 的例子來說,我們在 runoob01 目錄下創建 tags 目錄用於存放打 tag 的版本,並提交到版本庫,然後在 Trunk 上面,按下鼠標右鍵,選擇 Branch/Tag 的項目:

2、成功的話,您就在對應的 Tag 目錄下面建立瞭一個 v1.0 的目錄。當然,如果您這時到 Tag 的目錄下面去,會看不到這個目錄,您需要在 Tag 目錄下面 update 一下,才能看到它。

以上就是小編分享的TortoiseSVN使用教程,本文來網上轉載!如有疑問請留言!

返回顶部