接續「基於SVN構建版本機及所遇到的問題-1」。app
二、發佈ide
項目右鍵菜單「發佈」後,並修改文件夾:測試
點擊「發佈」按鈕,輸出窗口提示以下:spa
進入資源管理器查看本地項目目錄:3d
Publish目錄仍是問號,前後執行Add(右鍵彈出菜單-->ToitorseSVN-->Add)和Commit(右鍵彈出菜單-->Commit),變爲綠勾:orm
交付人員能夠在其餘PC上使用TortoiseSVN來checkout這個發佈目錄,並部署之。blog
SVN多半都是由許多人共同使用。一樣的檔案可能還有人會去進行編輯。爲了確保工做目錄中的代碼文件與Repository是同步的。在編輯前都先進行更新的動做。前提是:已經將代碼文件check out過一次。ci
假設另一個同事通知你修改了Program.cs,則點擊Program.cs右鍵彈出菜單的「Update」:資源
執行Update後顯示:開發
表示更新完成。
儘管推薦按文件更新,可是萬一不知道更新了哪一個文件,能夠執行解決方案的右鍵彈出菜單的「Update」,來更新整個解決方案。
若是想要回退到某個老版本,可使用該功能:
執行後:
點擊「Show log」:
點擊版本1確認:
執行OK:
成功更新到版本1.
創建分支的目的可能有:
(1)開發分支:從主幹複製一份來修改,修改完了後合併到主幹。
(2)老版本分支:老版本已經封閉,新版本準備開發,可是老版本還須要修改須要修改,因而從主幹分出一份來繼續老版本的修改。
(3)測試版本/正式版本分支:發佈軟件測試版本或者正式版本,用來測試部署或者正式部署。
(4)補丁版本分支:由於bug還須要建個補丁,不包括所有文件,保留須要更新的文件便可。
後兩種實際上都是Release,這些版本有特別的意義,特別的Milestone或是release給客戶的版本。後兩種都不須要merge回trunk中。舉例來講,今天咱們的trunk作了一版,這個版本被認定是軟件的1.0版。1.0版對於開發來講是一個很是重要的里程碑。因此咱們要特別爲他作一個標記,亦即Tag。假設,這個 1.0版是要正式release給客戶或是相關vendor,咱們要能夠爲他作一個Release的標記。基本上,SVN只有目錄的概念,並無什麼 Tag的用法。因此SVN的菜單上面,Branch與Tag是同一個菜單。以這個1.0的例子來講,就是在Trunk上面,按下鼠標右鍵,選擇Branch/Tag的菜單。
首先,建個branches目錄,並Add,Commit,結果以下:
而後,右鍵菜單:
執行「Branch/tag...」:
上圖的「Log Message」應該輸入一些說明文字。點擊OK後:
分支V1.1創建成功,可是要先更新branches目錄才能看到:
下圖看到branches目錄是空的:
執行update後看到:
還能夠指定版本創建分支:
在開發分支上開發的代碼文件每每須要合併到主幹(trunk)中,有時候老版本分支和補丁分支也須要合併到主幹中。
5.2節創建的項目的主幹在哪裏?實際上就是D:\測試項目\TestProject。
先修改V1.1這個branch的文件:
上圖的Program.cs正在修改中或者是代碼文件在本地已經被修改,圖標上的感嘆號就是這個意思。Commit後表示V1.1和主幹不一樣了。
在資源管理器該目錄下空白處右鍵:
執行「Merge...」:
選擇第一個,「next >」:
在「URL to merge from」下面,點擊「...」選擇須要合併分支。
在「Revision range to merge」中指定須要合併的revision,這裏選擇版本5。
點擊「Next...」:
點擊「Test merge」先測試一下:
這表示合併極可能不會錯誤,確認後返回,點擊「Merge」:
進入主幹目錄:
感嘆號表示Program.cs已經被修改了。檢查一下內部代碼,便可提交。
當有兩我的同時編輯一個文件,第一我的提交時是正常的,第二我的提交時會提示更新工做副本,點肯定更新時會出現版本衝突。當一個文件出現衝突時,文件的圖標爲×××的感嘆號。
提交後提示錯誤:
再如:
對於每一個衝突的文件,SVN在你的目錄下放置了三個文件:
這個時候,一種選擇:先Update再提交。可是,可能會在代碼文件中出現:
<<<<<<< .mine
6666666666666600000
=======
66666666666aaaaaaaaaa666
>>>>>>> .r16
因此,最好是選擇revert:
這時候,放棄了本身的修改。而後再使用備份文件從新修改回來。
還有兩種選擇:
一、在衝突提示上右鍵菜單有三個選項:
(1)直接標記已解決,至關於忽略;
(2)以theirs爲準,就是放棄本身,認可其餘人修改的
(3)以mine爲準,就是堅持本身,拋棄其餘人的
二、刪除工做目錄,從新拉取代碼