基於SVN構建版本機及所遇到的問題-2

接續「基於SVN構建版本機及所遇到的問題-1」。app


二、發佈ide

項目右鍵菜單「發佈」後,並修改文件夾:測試

image.png


點擊「發佈」按鈕,輸出窗口提示以下:spa

image.png


進入資源管理器查看本地項目目錄:3d

image.png


Publish目錄仍是問號,前後執行Add(右鍵彈出菜單-->ToitorseSVN-->Add)和Commit(右鍵彈出菜單-->Commit),變爲綠勾:orm

image.png


交付人員能夠在其餘PC上使用TortoiseSVNcheckout這個發佈目錄,並部署之。blog


5.5 Update

SVN多半都是由許多人共同使用。一樣的檔案可能還有人會去進行編輯。爲了確保工做目錄中的代碼文件與Repository是同步的。在編輯前都先進行更新的動做。前提是:已經將代碼文件check out過一次。ci

 

假設另一個同事通知你修改了Program.cs,則點擊Program.cs右鍵彈出菜單的「Update」:資源

image.png


執行Update後顯示:開發

image.png

表示更新完成。

 

儘管推薦按文件更新,可是萬一不知道更新了哪一個文件,能夠執行解決方案的右鍵彈出菜單的Update」,來更新整個解決方案。


5.6 Update to Revision

若是想要回退到某個老版本,可使用該功能:

image.png


執行後:

image.png


點擊Show log」:

image.png


點擊版本1確認:

image.png


執行OK


image.png


成功更新到版本1.


5.7 Branch

創建分支的目的可能有:

(1)開發分支:從主幹複製一份來修改,修改完了後合併到主幹。

(2)老版本分支:老版本已經封閉,新版本準備開發,可是老版本還須要修改須要修改,因而從主幹分出一份來繼續老版本的修改。

(3)測試版本/正式版本分支:發佈軟件測試版本或者正式版本,用來測試部署或者正式部署。

(4)補丁版本分支:由於bug還須要建個補丁,不包括所有文件,保留須要更新的文件便可。

 

後兩種實際上都是Release,這些版本有特別的意義,特別的Milestone或是release給客戶的版本。後兩種都不須要mergetrunk中。舉例來講,今天咱們的trunk作了一版,這個版本被認定是軟件的1.0版。1.0版對於開發來講是一個很是重要的里程碑。因此咱們要特別爲他作一個標記,亦即Tag。假設,這個 1.0版是要正式release給客戶或是相關vendor,咱們要能夠爲他作一個Release的標記。基本上,SVN只有目錄的概念,並無什麼 Tag的用法。因此SVN的菜單上面,BranchTag是同一個菜單。以這個1.0的例子來講,就是在Trunk上面,按下鼠標右鍵,選擇Branch/Tag的菜單。

 

首先,建個branches目錄,並AddCommit,結果以下:

image.png


而後,右鍵菜單:


image.png


執行Branch/tag...:

image.png


上圖的Log Message」應該輸入一些說明文字。點擊OK後:

image.png


分支V1.1創建成功,可是要先更新branches目錄才能看到:

下圖看到branches目錄是空的:

image.png


執行update後看到:

image.png


還能夠指定版本創建分支:

image.png


5.7 Merge

在開發分支上開發的代碼文件每每須要合併到主幹(trunk),有時候老版本分支和補丁分支也須要合併到主幹中。

 

5.2節創建的項目的主幹在哪裏?實際上就是D:\測試項目\TestProject

 

先修改V1.1這個branch的文件:

image.png


上圖的Program.cs正在修改中或者是代碼文件在本地已經被修改,圖標上的感嘆號就是這個意思。Commit後表示V1.1和主幹不一樣了。

 

在資源管理器該目錄下空白處右鍵:

image.png


執行Merge...」:

image.png


選擇第一個,next >」:

image.png


URL to merge from」下面,點擊「...」選擇須要合併分支。

Revision range to merge」中指定須要合併的revision,這裏選擇版本5

點擊Next...」:

image.png


點擊Test merge」先測試一下:

image.png


這表示合併極可能不會錯誤,確認後返回,點擊Merge」:

image.png


進入主幹目錄:

image.png


感嘆號表示Program.cs已經被修改了。檢查一下內部代碼,便可提交。

 

5.7 conflictrevert

當有兩我的同時編輯一個文件,第一我的提交時是正常的,第二我的提交時會提示更新工做副本,點肯定更新時會出現版本衝突。當一個文件出現衝突時,文件的圖標爲×××的感嘆號。

提交後提示錯誤:

image.png

再如:

image.png

對於每一個衝突的文件,SVN在你的目錄下放置了三個文件

image.png


這個時候,一種選擇:先Update再提交。可是,可能會在代碼文件中出現:

<<<<<<< .mine

       6666666666666600000

=======

      66666666666aaaaaaaaaa666

>>>>>>> .r16

 

因此,最好是選擇revert

image.png


這時候,放棄了本身的修改。而後再使用備份文件從新修改回來。

 

還有兩種選擇:

一、在衝突提示上右鍵菜單有三個選項:

(1)直接標記已解決,至關於忽略;

(2)theirs爲準,就是放棄本身,認可其餘人修改的

image.png

(3)mine爲準,就是堅持本身,拋棄其餘人的

二、刪除工做目錄,從新拉取代碼

相關文章
相關標籤/搜索