TortoiseSVN打分支、合並分支、切換分支


SVN幾個重要文件夾說明:
       我們一般習慣性在創建repository倉庫后,再在剛才創建的倉庫里面再創建trunk、branches、tags這三個文件夾,而不是直接將項目提交到倉庫的根目錄下(雖然直接將項目分享到倉庫的root根目錄下也是可以的,但是我們一般不這么做)。主要目的是:為了給項目各個階段,各個版本歸類、分階段存儲、並行開發。

trunk文件夾: 主干,我們一般把項目提交到此文件夾里面,在trunk中開發。

branches文件夾:分支,我們一般把那些需要打分支,但是有可能會修改的項目代碼,打分支到此目錄。

tags文件夾:分支,我們一般把那些階段性(如迭代各期)的項目代碼,打分支到此目錄。

注:其實也不一定非要手動創建這三個目錄,在我們打分支選擇打到branch或tags等時,會自動在對應的repository
        倉庫的根目錄下創建該文件夾。

注:我們在第一次連接SVN的repository時,可以指定連接目標倉庫下的不存在的文件夾,當我們第一次將項目
        team>>>share project時,將會在該倉庫下自動創建URL中不存在的文件夾,並把代碼放進去。

提示:開發時,可以以開發trunk中的項目代碼為主,當開發到某個時期(你覺得比較重要的時期)時,可以看情況將需
           要備份的文件夾(或文件)打分支到其他如branches、tags等文件夾下。

 

注:需要時,我們可以從SVN上同步分支中的任意時期的項目代碼(注:我們當然也可以同步trunk主干下的最新的代碼)。

注:有時,我們也可以在branches中開發(但是需要即時將trunk中的代碼合並到branches中,但是暫時不將branches中
       合並到trunk主干上),然后開發到一定程度的時候,再將branches合並到主干trunk上。此方式,也很常用。

聲明一:本次示例的軟硬件環境為:Windows10、VisualSVNServer、TortoiseSVN、Eclipse。

注:VisualSVNServer主要用作SVN服務端、TortoiseSVN主要用作SVN客戶端。

聲明二:由於Eclipse或其它IDE開發工具的SVN插件版本不同等原因,所以這里並不以SVN插件來介紹分支的使用,
               下面是以TortoiseSVN客戶端來介紹分支的使用的。

准備工作:
使用VisualSVNServer創建一個本地倉庫:

 

 

注:創建repository時需要先創建user,這里就不詳細介紹了。

注:創建SVN倉庫的方式較多,本人這里是利用VisualSVN Server創建的。

創建完成,如下圖所示:

 

注:右鍵目錄或倉庫,會出現拷貝連接SVN的URL的選項。

往SVN中放入一些東西,方便下面講解。

注:可以使用Eclipse的SVN插件將項目分享到SVN的倉庫中,也可以使用TortoiseSVN將文件夾add到SVN的倉
       庫中,還可以……這里就不再給出具體步驟了。

使用TortoiseSVN來管理SVN:

使用TortoiseSVN來查看一下SVN中的內容:

 

 

 

使用TortoiseSVN檢出SVN中的項目:

 

 

可以看見,以檢出到桌面了:

 

SVN打分支:
方式一:先檢出,再打分支

 

 

注:to path中輸入或選擇要打分支到哪一個文件夾下;如果是輸入的是不存在的文件夾的話,那么會自動在SVN中創建
        該文件夾。

注:/branches/project20180831是指當前倉庫文件夾下的branches文件夾下的project20180831文件夾。

分支創建完畢,我們再去看一下:

 

 

注:在某一個枝干上的操作,其作用范圍就是其自身,並不會影響到其他枝干(注意:這里說的是一般操作,分支合並等情況除外)。

可以簡單測試一下:在主干trunk上略作修改之后,提交。再用TortoiseSVN查看一下分支上的對應文件,發現是修改
                                 前的;查看主干上的對應文件,發現是修改后的。說明枝干之間不會發生干擾。

注:打分支之前,要保證本地的和服務器上是一致的,即:打分支前需要update、commit。

方式二:直接在客戶端,通過Copy to的方式,打分支

選擇要備份的目錄:

 

右擊 > Copy to,填寫要打分支到哪里:

 

填寫分支信息:

 

點擊ok后,刷新一下客戶端,可看見打分支成功:

 

合並分支:
提示:合並分支即>>>選擇目標分支合並到當前所處分支。

 

注:可以合並文件也可以合並整個文件夾,看自己的需求。

 

 

 

如果Test merge測試沒沖突的話,是這樣的:

 

此時直接再點擊Merge合並即可。

Merge解決沖突:
如果Test merge測試有沖突的話,是這樣的(示例):

 

此時點擊Merge,會出現:

 

點擊Edit conflict來編輯沖突:

 

在合並后的枝干對應欄中編輯后,Save保存后關閉。

點擊已解決Resolved按鈕:

 

點擊OK即可:

 

此時,(沖突已經解決並且)已經合並完畢了。

注:Merge合並之后,只是在本地的當前枝干發生了變化,而在服務端SVN中的當前枝干還是合並之前的;所以合並之后確
     認沒問題后還需要commit到服務端SVN,以保證其他小伙伴能拿到最新的代碼。

注:如果發現合並之后,還有問題,那么可以回退

 

切換分支:

 


注:我們在打分支時,取的分支文件夾名雖然和項目名不同(如下圖),但是當我們切換分支時,右擊項目(Abc_SVN_Test)
       之后,選擇要切換到的分支時,直接選我們打分支時起的文件夾名字即可。雖然兩個文件夾不同,但是切換分
       之后,還是會以Abc_SVN_Test為文件夾名,只是里面的內容變成了切換到的分支的內容。

 

注:切換分支后,我們的update、commit等基本操作,其作用范圍只是當前分支,並不會影響其他分支。
————————————————
版權聲明:本文為CSDN博主「justry_deng」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/justry_deng/article/details/82259470


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM