程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> TortoiseSVN應用教程

TortoiseSVN應用教程

編輯:C#入門知識

TortoiseSVN應用教程。本站提示廣大學習愛好者:(TortoiseSVN應用教程)文章只能為提供參考,不一定能成為您想要的結果。以下是TortoiseSVN應用教程正文


TortoiseSVN 是 Subversion 版本掌握體系的一個收費開源客戶端,可以超出時光的治理文件和目次。文件保留在中心版本庫,除能記住文件和目次的每次修正之外,版本庫異常像通俗的文件辦事器。你可以將文件恢復到曩昔的版本,而且可以經由過程檢討汗青曉得數據做了哪些修正,誰做的修正。這就是為何很多人將 Subversion 和版本掌握體系看做一種“時光機械”。

裝置及下載client 端

1.下載Windows 端法式:http://tortoisesvn.net/downloads。普通而言,假如是32-bit的Windows XP 應當應用TortoiseSVN-1.4.x.xxxx-win32-svn-1.4.x.msi 這個檔案。假如是64-bit 的操作體系,則應當應用TortoiseSVN-1.4.x.xxxx-x64-svn-1.4.x.msi 這個檔案。

2.履行下載回來的TortoiseSVN 裝置法式,就會停止TortoiseSVN 的裝置。准確裝置後,應當停止一次的重開機,以確保TortoiseSVN 的准確無誤。

3.裝置勝利後,在檔案治理員內按下鼠標右鍵,應當可以看到以下的畫面:

 

年夜部門的TortoiseSVN的操作都是透過檔案治理員及鼠標右鍵便可以完成了。假如您之前應用過TortoiseCVS,應當會對這類操作方法覺得非常親熱。

甚麼是SVN(Subversion)?

有一個簡略但不非常准確比方:
SVN = 版本掌握 + 備份辦事器

簡略的說,您可以把SVN當做您的備份辦事器,更好的是,他可以幫您記住每次上傳到這個辦事器的檔案內容。而且主動的付與每次的變革一個版本。

平日,我們稱用來寄存上傳檔案的處所就做Repository。用中文來講,有點像是檔案倉庫的意思。不外,平日我們照樣應用Repository這個名詞。根本上,第一次我們須要有一個新增(add)檔案的舉措,將想要備份的檔案放到Repository下面。往後,當您有任何修正時,都可以上傳到 Repository下面,上傳曾經存在且修正過的檔案就叫做commit,也就是提交修正給SVN server的意思。針對每次的commit,SVN server都邑付與他一個新的版本。同時,也會把每次上傳的時光記載上去。往後,由於某些身分,假如您須要從Repository下載已經提交的檔案。您可以直接選擇獲得最新的版本,也能夠獲得任何一個之前的版本。假如忘卻了版本,照樣可以靠記憶測驗考試獲得某個日期的版本。

為什麼要用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。假如,不想備份這麼多版本,必將就是要削減備份的次數。拉長備份周期將會招致數據遺掉的風險性增高。把舊的不須要的備份刪除?依據經歷,只需時光一拉長,您跟本就不曉得一個月之前的版本是主要或許是不主要。

SVN能幫我們處理下面的成績嗎?謎底是確定的:

1.SVN Repository可所以本身盤算機上的一個目次,或許是隨身碟(不建議如許用)。固然也能夠是公司的辦事器。
2.SVN有很棒的版本控管機制。一切上傳的版本都邑幫您記載上去。往後您可以隨時獲得某一個時辰的版本。並且,也有版天職支及歸並等好用的功效。
3.SVN可讓分歧的開辟者存取異樣的檔案,而且應用SVN Server作為檔案同步的機制。也就是說,您有檔案更新時,不必將檔案寄給您的開辟成員。只須要告知他新的版本曾經在SVN Server下面,請他本身去SVN Server下面便可以獲得最新版本。並且,SVN Server也能夠做到當您上傳新版本後,主動發信給相干的成員。
 4.SVN的寄存檔案方法是采取差別備份的方法。也就是說,他只會備份有分歧的處所。所以很省硬盤空間。另外,他也能夠針對所謂的非文字文件停止差別備份。

怎樣樣在Windows上面樹立SVN Repository?

假定您曾經裝置後面所說起的TortoiseSVN這套軟件,如今我們先告知您若何用本身的硬盤或是隨身碟看成SVN Repository的寄存所在。假如您只想曉得若何存取一個曾經樹立好的SVN Server下面的Repository,請直接跳過本節。

假定您的要放置Repository的處所是E槽。您須要先樹立一個空的目次。以上面的例子而言,我們在E槽上面樹立了一個名為svn_repo的目次。 SVN並沒無限定Repository目次稱號。您可以樹立任何您本身愛好的稱號。然則,激烈建議勿應用非英文的檔名(如中文或日文)。


透過您的檔案治理員,在E:\svn_repo的Icon下面,按下鼠標右鍵後,選擇TortoiseSVN->Create repository here。

接著,您會看到以下的一個窗口,這個窗口重要是問您,您願望應用的Repository數據庫格局是FSFS照樣BDB。根本上,請選擇FSFS便可以了。按下OK按鈕後,您將可以看到下一個畫面。

 

這就表現您的SVN repository曾經勝利的樹立了。接上去就是要把您的檔案備份出去。往後,只需須要應用這個repository,我們便可以應用 file:///E:/SVN_REPO表現它。SVN就是透過這類URL的方法到若何與Repository獲得接洽。各類URL的格局以下:

file:///磁盤驅動器|/repository地點目次/子目次
http://賬號@辦事器稱號/ repository地點目次/子目次
https://賬號@辦事器稱號/ repository地點目次/子目次
svn+ssh://賬號@辦事器稱號/ repository地點目次/子目次

個中,http表現應用普通的超文字傳輸通信協定。https表現應用加密的超文字傳輸通信協定。svn+ssh表現透過SSH加密通信的管道,停止存取。

樹立一個Working目次

所謂的Working目次其實就是您平凡用來寄存任務檔案的處所。平日我們會比及本身的任務做的一個段落的時刻再停止備份。所以我們平凡都是在 Working目次上面任務,比及恰當機會在commit到repository中。舉例來講,我們想在D槽上面樹立一個名為working的目次。起首先把這個目次樹立出來。

此時,這個目次應當為空的。

在檔案治理員中按下右鍵後(您可以在working目次的icon上按,也可進入working目次後,在空白的處所按),選擇SVN checkout。

接著您可以看到以下的畫面:

起首我們要填入的是repository的地位,關於SVN來講,repository的地位都是URL。因為我們後面曾經在E槽樹立一個repository,是以,我們如今要在URL of repository這一欄填入file:///E:/svn_repo/。

接著,略微看一下Checkout directory,這個字段應當要指向您的working目次。確認後,按下OK按鈕,您應當可以看到以下的訊息窗口。

如許就表現舉措完成。按下OK按鈕後,再到您方才樹立的目次下。您將會看到working目次上面多了一個名為.svn的目次(這個目次是隱蔽的,假如您的檔案治理員沒有設定可以看到隱蔽目次,您將沒法看到它) 。


SVN會在您的任務目次下,和其子目次下樹立這個.svn的子目次。您不該該出來這個目次,特別不該該更動這個目次上面的任何內容。不然會極可能會形成SVN沒法正常運作。

因為,本來的repository是空的,所以我們如今的working目次也是空的。假如您如今checkout的是一個曾經有內容的repository,您將會看到working目次上面如今多了很多目次及檔案。

假如您要在一個曾經存在的SVN Server下面checkout出下面的檔案,您只須要給定准確的URL和working目次的稱號。便可以獲得指定的檔案及目次了。

新增檔案及目次到Repository中

假定您後面的舉措都無誤。如今您開端開辟一個新的法式。假定您開辟的法式將放在後面樹立的working目次上面的my_ prj子目次。以下所示:

假定您曾經編纂好檔案,預備把他們放到SVN的repository中。您須要在my_prj目次的icon下面,按鼠標右鍵,而且選擇TortoiseSVN->Add:


接著,TortoiseSVN會把預備要參加的檔案及目次,顯示給您看。打勾的就是等下要被參加到Repository中的。假如您有某些檔案或是目次不想在此次參加,您可讓該項目不要被勾選。如斯,它就不會被參加到Repository去。

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

如許就表現勝利了。有一點要留意的是,這個Add的舉措並未真實的將檔案放到Repository中。僅僅是告訴SVN預備要在Repository中放入這些檔案。此時,假如您透過檔案治理員檢查這些檔案,應當會看到一個白色紅底的贊歎號在檔案icon的下方。


這是表現您的working目次中的檔案與Repository中的檔案還沒有同步。如今我們要多一個commit的舉措。讓這些檔案真實的放入到 Repository中。您可以在my_prj目次的icon上或許是my_prj目次內的空白處按下鼠標右鍵,叫出以下的選單,而且選擇SVN commit。

緊接著,您將會看到以下的窗口湧現:

在這個窗口中,下半部會列出一個清單,讓您清晰的懂得到哪些檔案要被commit到repository中。異樣的,假如您有檔案不想在這個時刻commit到Repository,您可以撤消拔取的檔案,如許他們就不會被commit到Repository中。

在檔案列表的上方是Message欄,您可以在欄中輸出本次commit的目標。這是非常主要的字段,當您commit的次數許多時,可以靠這個訊息曉得版本與版本之間的差別。當您輸出好Message,按下OK以後,便可以看到以下的窗口湧現,告訴您曾經將指定的檔案送到Repository中。

您可以到先前的folder中,肯定能否一切的檔案icon都有以下的綠色勾勾在下面,如許代表您的檔案都准確無誤的到repository中。

有時刻,由於Windows自己的成績,您能夠會看到有些icon沒有釀成綠色的勾勾。此時,多按F5幾回,應當便可以處理這個成績。假如,依然不可,表現您之前的commit舉措真的有成績。請細心檢討之前的commit舉措能否准確。

更新檔案及目次

為什麼須要更新?因為版本掌握體系多半都是由很多人配合應用。所以,異樣的檔案能夠還有人會去停止編纂。為了確保您任務目次中的檔案與Repository中的檔案是同步的。建議您在編纂前都先輩行更新的舉措。在此,我們都先假定您曾經將檔案check out過一次。如今要解釋的是若何在一個check out過的目次停止update。在想要更新的檔案或目次icon下面按下鼠標右鍵。而且選擇SVN Update。


正常的狀態下,您可以看到如上的窗口。在這個窗口中會顯示有哪些文件更新了。假如沒有看到檔案更新的相干信息,這表現您的目次中的檔案曾經是最新的,所以不必停止更新。

更新至特定版本

有時我們須要回溯至特定的日期或是版本,這時候便可以應用SVN的Update to revision的功效。在想要更新的檔案或目次icon下面按下鼠標右鍵。而且選擇TortoiseSVN->Update to revision。


在這個Update窗口中,您可以選擇更新到最新版本(HEAD)。也能夠選擇更新到某個指定的版本(Revision)。固然,您能夠早就記不起來准確的版本號碼。能夠只模糊的記得年夜概在甚麼時光。沒緊要,按下Show log按鈕,您便可以回想汗青了。


一切您已經做過的舉措,及其日期與對應的版本都邑列在這個窗口下面,只需在你想要的版下面點一下,讓他釀成反白,然後按下OK。這個版本就會主動填入Update窗口中的Revision字段中。您只需再按下一次OK,這個版本就會被掏出離開您的硬盤中。

復制檔案及目次

許多時刻您會願望有別的一個復制的目次來停止新的編修。比及肯定這個分支的修正曾經終了了,再歸並到本來的重要開辟版本上。舉例來講,我們今朝在working copy上面有以下的目次及檔案:

 


如今,我們要為trunk這個目次樹立一個branch。假定我們願望這個目次是在D:\working\my_prj\branch \my_new_branch_for_testing。起首我們可以在trunk目次上面的空白處,或是直接在trunk的icon上面按下鼠標右鍵。


在選擇Branch/Tag…這個項目後,您將會看到以下的對話框湧現。

請先確認From WC at URL: 中的目次是您要復制的起源目次。接著,在To URL中輸出您要復制曩昔的途徑。平日我們會將一切的branch集中在一個目次上面。以下面的例子來講,branch檔案都邑集中在branch的子目次上面。在To URL中您只須要輸出您要的目次便可。目次不存在時,會由SVN幫您樹立。特殊須要留意的是SVN由於斜線作為目次分隔字符,而非反斜線。

接著在Log message輸出您此次branch的目標為什麼。按下OK便可以了。

假如勝利,將可以看到上面的畫面:

按下OK便可以封閉這個窗口了。假如您此時連忙去working copy的branch子目次上面,您將會掉望的發明在該目次上面並沒有方才指定的目次存在。這是由於您working copy的部分照樣舊的,您只須要在branch子目次上面停止SVN update便可以看到這個新增的目次了。新增的目次就與本來的目次有關了。您可以隨意率性對他停止編纂,一向到您確認好一切在branch上面該做的任務都完成後,您可以選擇將這個branch merge回本來的trunk目次,或許是保存它在branch中。

要merge回trunk目次中,辦法很簡略。以下面的例子來講,我們在D:\working\my_prj\trunk目次空白處,按下鼠標右鍵,選擇Merge:

接著可以看到以下的畫面:

這個畫面重要分為三個部分,後面的From: 與 To: 是要問您盤算從Branch中的哪一個版本到哪一個版本,merge回本來的trunk目次中。是以,From跟To的URL字段應該都是指定本來 branch的目次下。剩下的就是指定要merge的revision規模。以下面的例子而言,我們從Branch的Revision 7開端merge到Branch上面的最新版本。您可以透過,Dry run按鈕,試作一次Merge。這個merge只會顯示一些訊息,不會真實的更新到trunk的目次去。只要按下Merge按鈕後,才會真實的將 branch的檔案與trunk的檔案歸並起來。


下面的訊息告知我們在trunk目次上面的yyyy.cpp及xxx1.cpp曾經被更悛改了。假如您在如今到trunk目次下,會看到這兩個檔案處於被修正的狀況。

假如您確認此次的merge沒有成績,您可以直接應用commit來將這兩個被修正的檔案commit回SVN repository上。假如有成績,您可以直接修正這兩個檔案,直到確認ok了,再行commit。

 

一切順遂的話,您就勝利的將branch的檔案merge回trunk了。

制造Tag或是Release

所謂的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的例子來講,我們就是在Trunk下面,按下鼠標右鍵,選擇Branch/Tag的項目:


勝利的話,您就在Tag目次上面樹立了一個1.0的目次。固然,假如您這時候到Tag的目次上面去,會看不到這個目次,您須要在Tag目次上面update一下,能力看到它。


制造Release的作法與Tag完整雷同。只是把Tag的目次換成Release罷了。

看到這裡,信任年夜家都曾經融會到不管是Branch,Tag或是Release都只是將指定的 Trunk版本復制一份到別的一個目次去。至於這個目次要叫Branch照樣叫Release,SVN基本就不論。所以,您也可取其它的目次稱號。不外,Branch,Tag及Release曾經是SVN下面商定成俗的稱號。所以,除非您曉得本身為什麼如許做,不然,最好照樣follow這個定名准繩,以避免前面新參加的人看不懂。
NOTE:異樣的事理Trunk也只是一個商定成俗的稱號。紛歧定要叫Trunk。只是年夜家看到Trunk目次就會曉得這外面放的是重要的開辟骨干。

疾速參考

後面寫了很多空話,重要是給完整沒有版本掌握不雅念的人看的。假如你想直接曉得某個功效若何應用,請看上面的章節。

在前面的解釋,皆以d:\working看成任務目次。您可以將他換成其它任何您想要的目次。

獲得(Checkout)Repository

1.開啟檔案治理員,進入d:
2.在檔案治理員空白處按下鼠標右鍵,選擇SVN Checkout
3.在Checkout對話框中, 1.URL of repository:repository的地位。
2.Checkout directory:要寄存working copy的處所。

4.若d:\working目次不存在,SVN會問您要不要樹立這個目次,請選擇Yes。
5.接著按下OK,便可checkout該目次。

更新(Update)檔案或目次

1.在您要由repository更新至working copy的檔案或是目次的icon下面按下鼠標右鍵。選擇SVN Update便可。
2.假如是要更新至特定的版本,則選擇TortoiseSVN->Update to revision。而且在Update對話框中的Revision字段輸出您要的版本。也能夠透過Show Log按鈕來檢查版本的信息。

新增(Add)檔案或目次

1.在尚不屬於repository的檔案或目次的icon上按下鼠標右鍵。選擇TortoiseSVN->Add。
2.拔取要新增的檔案。
3.按下OK。


NOTE:新增的檔案要經由提交(Commit)的舉措才回真實的放入Repository中。

提交(Commit)修正過的檔案或目次

1.在修正過的檔案,或是在全部目次的空白處按下鼠標右鍵。
2.勾選真正要提交至Repository的檔案或目次。
3.輸出本次提交的記載訊息(Message)。這個訊息應當要清晰清楚明了,但不該過份簡略。以利往後版本追蹤。
4.按下OK。

Copy/Tag/Branch/Release檔案或目次

1.確認您要處置的檔案或是目次曾經是Repository中最新的版本。
2.在要處置的目次或是檔案下面按下鼠標右鍵,選擇TortoiseSVN->Branch/Tag。
3.在To URL處輸出您要的目標地。 1.branch:要發生一個分支。以差別與trunk分歧的開辟。
2.tag:要構成一個標志,表現主要的milestone。
3.release:表現一個曾經正式的release的記載。
4.其它:停止一個復制(copy)。

以上內容經由過程圖片加文字的方法給年夜家引見了tortoisesvn應用教程,願望年夜家愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved