為什么要用SVN備份工作檔案?
1、備份工作檔案是十分重要的。您永遠(yuǎn)不知道計(jì)算機(jī)上的硬盤何時(shí)會(huì)壞掉。根據(jù)經(jīng)驗(yàn)法則再加上摩菲定理,壞事情往往都發(fā)生在最重要的時(shí)刻。例如,要release東西的前一刻,硬盤完全壞掉,無法修復(fù)。所以,常常備份工作數(shù)據(jù)是非常重要的。大部分公司的server都會(huì)有專門的備份機(jī)制,甚至是異地備援。絕對(duì)比放在自己的計(jì)算機(jī)里頭,或是隨身碟上面來的安全。
2、版本控制非常重要。您無法保證手頭上最新版本永遠(yuǎn)都是對(duì)的。很多時(shí)候,在經(jīng)過數(shù)天努力工作后,您才發(fā)現(xiàn)走錯(cuò)方向。需要將所有的修改回復(fù)到數(shù)天前版本。沒有幾個(gè)人能夠完全記住自己修改過什么東西。如果沒有做好版本控管,那么,最差的狀況就是要全部重來
3、伙伴間的數(shù)據(jù)同步也是非常重要的。很多時(shí)候,除了您個(gè)人外,還有其它的伙伴也需要您的檔案。怎么把最新的檔案提供給伙伴呢?用e-mail?根據(jù)經(jīng)驗(yàn),用e-mail是一個(gè)很差的辦法。到了最后,根本就不知道哪一封e-mail才是新的。因?yàn)榭赡苣钚碌膃-mail已經(jīng)被當(dāng)成垃圾信給丟了。別忘了,現(xiàn)在很多e-mail軟件都有anti-spam的功能,說不定這些信件都被當(dāng)成廣告信給處理掉了。而且,您也應(yīng)該知道一般檔案如果放在e-mail內(nèi),檔案大小會(huì)變得比較大(通常是原來的4/3倍以上)。如果每天更新一次,恐怕幾天沒收信的話,信箱就爆了!
4、如果沒有一個(gè)好的辦法,備份不同版本是很耗費(fèi)硬盤空間的。例如:您有一個(gè)總共10MB的目錄,使用單純的檔案?jìng)浞?。如果?0個(gè)版本就會(huì)變成100MB。20個(gè)版本就有200MB。如果,不想備份這么多版本,勢(shì)必就是要減少備份的次數(shù)。拉長(zhǎng)備份周期將會(huì)導(dǎo)致數(shù)據(jù)遺失的危險(xiǎn)性增高。把舊的不需要的備份刪除?根據(jù)經(jīng)驗(yàn),只要時(shí)間一拉長(zhǎng),您跟本就不知道一個(gè)月以前的版本是重要或者是不重要
TortoiseSVN使用教程
一、建立一個(gè) runoob01 的工作目錄
1、所謂的 runoob01 目錄其實(shí)就是您平常用來存放工作檔案的地方。通常我們會(huì)等到自己的工作做的一個(gè)段落的時(shí)候再進(jìn)行備份。所以我們平常都是在 runoob01 目錄下面工作,等到適當(dāng)時(shí)機(jī)在 commit 到 repository 中。舉例來說,我們想在 D 盤下面建立一個(gè)名為 runoob01 的目錄。首先先把這個(gè)目錄建立出來。
2、進(jìn)入創(chuàng)建的目錄在空白處按下右鍵后(您可以在 MyWork 目錄的 icon 上按,也可進(jìn)入 MyWork 目錄后,在空白的地方按),選擇 SVN checkout。
3、接著會(huì)彈出一個(gè)檢出窗口。
4、首先我們要填入的是 repository(版本庫)的位置,對(duì)于 SVN 來說,repository 的位置都是 URL。版本庫 URL 這里填入我們測(cè)試的版本倉庫地址 svn://10.0.4.17/runoob01。
接著,稍微看一下 Checkout directory(檢出至目錄),這個(gè)字段應(yīng)該要指向您的 runoob01 目錄。
5、確認(rèn)后,按下 OK 按鈕,您應(yīng)該可以看到如下的信息窗口。
6、這樣就表示動(dòng)作完成。按下 OK 按鈕后,再到您剛剛建立的目錄下。您將會(huì)看到 MyWork 目錄下面多了一個(gè)名為 .svn 的目錄(這個(gè)目錄是隱藏的,如果您的檔案管理員沒有設(shè)定可以看到隱藏目錄,您將無法看到它) 。
7、如果您要在一個(gè)已經(jīng)存在的 SVN Server 上面 checkout 出上面的檔案,您只需要給定正確的 SVN URL 以及要 checkout 目錄的名稱。就可以取得指定的檔案及目錄了。
二、新增檔案及目錄到 Repository 中 add commit
1、創(chuàng)建目錄 dir01, 在目錄里新增文件
2、將新增的文件加入到 SVN 版本控制中,TortoiseSVN 會(huì)把準(zhǔn)備要加入的檔案及目錄,勾選需要加入的文件。
3、按下 OK 后,您將會(huì)看到如下的訊息窗口:
4、這個(gè) Add(增加)的動(dòng)作并未真正的將檔案放到 Repository 中。僅僅是告知 SVN 準(zhǔn)備要在 Repository 中放入這些檔案。 此時(shí)的文件狀態(tài)為:
5、這些檔案真正的放入到 Repository 中,空白處右鍵選擇 SVN commit(提交) 緊接著,您將會(huì)看到如下的窗口出現(xiàn):
6、在這里可以清楚地了解到哪些檔案要被 commit 到 repository(版本庫)中。同樣的,如果您有檔案不想在這個(gè)時(shí)候 commit 到 Repository,您可以取消選取的檔案,這樣他們就不會(huì)被 commit 到 Repository 中。在"信息"文本框中可以寫入對(duì)本次 commit 的說明。
點(diǎn)擊"確認(rèn)"后完成 commit 動(dòng)作,然后您可以到 runoob 目錄中,確定是否所有的檔案 icon 都有如下的綠色勾勾在上面,這樣代表您的檔案都正確無誤的到 repository 中。
三、更新檔案及目錄 update
由于版本控制系統(tǒng)多半都是由許多人共同使用。所以,同樣的檔案可能還有人會(huì)去進(jìn)行編輯。為了確保您工作目錄中的檔案與 Repository 中的檔案是同步的。建議您在編輯前都先進(jìn)行更新的動(dòng)作。
1、在想要更新的檔案或目錄 icon 上面按下鼠標(biāo)右鍵。并且選擇 SVN Update。
2、有時(shí)我們需要回溯至特定的日期或是版本,這時(shí)就可以利用 SVN 的 Update to revision 的功能。在想要更新的檔案或目錄 icon 上面按下鼠標(biāo)右鍵。并且選擇 TortoiseSVN->Update to revision(更新至版本)。
四、復(fù)制檔案及目錄 branch
1、很多時(shí)候您會(huì)希望有另外一個(gè)復(fù)制的目錄來進(jìn)行新的編修。等到確定這個(gè)分支的修改已經(jīng)完畢了,再合并到原來的主要開發(fā)版本上。舉例來說,我們目前在runoob01/trunk下面有如下的目錄及檔案:
2、現(xiàn)在,我們要為 trunk 這個(gè)目錄建立一個(gè) branch。假設(shè)我們希望這個(gè)目錄是在 D:\runoob01\branch。首先我們可以在 trunk 目錄下面的空白處,或是直接在 trunk 的 icon 下面按下鼠標(biāo)右鍵選擇 Branch/Tag…(分支/標(biāo)記)這個(gè)選項(xiàng),您將會(huì)看到如下的對(duì)話框出現(xiàn)。
3、請(qǐng)先確認(rèn) From WC at URL(從工作副本/URL): 中的目錄是您要復(fù)制的來源目錄。接著,在 To URL(至路徑)中輸入您要復(fù)制過去的路徑。通常我們會(huì)將所有的 branch 集中在一個(gè)目錄下面。以上面的例子來說,branch 檔案都會(huì)集中在 branch 的子目錄下面。在 To URL 中您只需要輸入您要的目錄即可。目錄不存在時(shí),會(huì)由 SVN 幫您建立。特別需要注意的是 SVN 因?yàn)樾本€作為目錄分隔字符,而非反斜線。 接著在 Log message(日志信息)輸入您此次 branch 的目的為何。按下 OK 就可以了。
如果成功,將可以看到下面的畫面:
4、按下 OK 就可以關(guān)閉這個(gè)窗口了。如果您此時(shí)立刻去 runoob01 目錄的 branch 子目錄下面,您將會(huì)失望的發(fā)現(xiàn)在該目錄下面并沒有剛剛指定的目錄存在。這是因?yàn)槟?runoob01 目錄的部份還是舊的,您只需要在 branch 子目錄下面進(jìn)行 SVN update 就可以看到這個(gè)新增的目錄了。新增的目錄就與原來的目錄無關(guān)了。您可以任意對(duì)他進(jìn)行編輯,一直到您確認(rèn)好所有在 branch 下面該做的工作都完成后,您可以選擇將這個(gè) branch merge 回原來的 trunk 目錄,或者是保留它在 branch 中。
五、合并動(dòng)作 merge
1、假如我們?cè)?branch 分支中對(duì)文件進(jìn)行了修改或增加了文件,要 merge 回 trunk 目錄中,方法很簡(jiǎn)單。以上面的例子來說,我們?cè)?D:\runoob01\trunk目錄空白處,按下鼠標(biāo)右鍵,選擇 Merge(合并):
2、這個(gè)畫面主要分為三個(gè)部份,前面的 From: 與 To: 是要問您打算從 Branch 中的哪個(gè)版本到哪個(gè)版本,merge 回原來的 trunk 目錄中。因此,F(xiàn)rom 跟 To 的 URL 字段應(yīng)當(dāng)都是指定原來 branch 的目錄下。剩下的就是指定要 merge 的 revision 范圍。以上面的例子而言,我們從 Branch 的 Revision 7 開始 merge 到 Branch 下面的最新版本。您可以透過,Dry run 按鈕,試作一次 Merge。這個(gè) merge 只會(huì)顯示一些訊息,不會(huì)真正的更新到 trunk 的目錄去。只有按下 Merge 按鈕后,才會(huì)真正的將 branch 的檔案與 trunk 的檔案合并起來。
3、如果您確認(rèn)這次的 merge 沒有問題,您可以直接使用 commit 來將這兩個(gè)被修改的檔案 commit 回 SVN repository 上。如果有問題,您可以直接修改這兩個(gè)檔案,直到確認(rèn) ok 了,再行 commit。
六、制作 Tag 或是 Release
1、所謂的 Tag 或是 Release 就是一個(gè)特別的版本,因?yàn)檫@個(gè)版本可能有特別的意義。例如:這個(gè)版本是特別的 Milestone 或是 release 給客戶的版本。其實(shí),Tag 與 Release 的作法與 Branch 完全相同。只是 Branch 可能會(huì)需要 merge 回原來的 trunk 中,而 tag 及 release 大部分都不需要 merge 回 trunk 中。
舉例來說,今天我們的 trunk 做了一版,這個(gè)版本被認(rèn)定是軟件的 1.0 版。 1.0版對(duì)于開發(fā)來說是一個(gè)非常重要的里程碑。所以我們要特別為他做一個(gè)標(biāo)記,亦即 Tag。假設(shè),這個(gè) 1.0 版是要正式 release 給客戶或是相關(guān) vendor,我們要可以為他做一個(gè) Release 的標(biāo)記?;旧?,SVN 只有目錄的概念,并沒有什么 Tag 的用法。所以您會(huì)看到在 SVN 的選單上面,Branch 與 Tag 是同一個(gè)項(xiàng)目。以這個(gè) 1.0 的例子來說,我們?cè)?runoob01 目錄下創(chuàng)建 tags 目錄用于存放打 tag 的版本,并提交到版本庫,然后在 Trunk 上面,按下鼠標(biāo)右鍵,選擇 Branch/Tag 的項(xiàng)目:
2、成功的話,您就在對(duì)應(yīng)的 Tag 目錄下面建立了一個(gè) v1.0 的目錄。當(dāng)然,如果您這時(shí)到 Tag 的目錄下面去,會(huì)看不到這個(gè)目錄,您需要在 Tag 目錄下面 update 一下,才能看到它。
以上就是小編分享的TortoiseSVN使用教程,本文來網(wǎng)上轉(zhuǎn)載!如有疑問請(qǐng)留言!