TortoiseSVN打分支、合并分支、切换分支
SVN幾個(gè)重要文件夾說(shuō)明:
? ? ? ?我們一般習(xí)慣性在創(chuàng)建repository倉(cāng)庫(kù)后,再在剛才創(chuàng)建的倉(cāng)庫(kù)里面再創(chuàng)建trunk、branches、tags這三個(gè)文件夾,而不是直接將項(xiàng)目提交到倉(cāng)庫(kù)的根目錄下(雖然直接將項(xiàng)目分享到倉(cāng)庫(kù)的root根目錄下也是可以的,但是我們一般不這么做)。主要目的是:為了給項(xiàng)目各個(gè)階段,各個(gè)版本歸類(lèi)、分階段存儲(chǔ)、并行開(kāi)發(fā)。
trunk文件夾: 主干,我們一般把項(xiàng)目提交到此文件夾里面,在trunk中開(kāi)發(fā)。
branches文件夾:分支,我們一般把那些需要打分支,但是有可能會(huì)修改的項(xiàng)目代碼,打分支到此目錄。
tags文件夾:分支,我們一般把那些階段性(如迭代各期)的項(xiàng)目代碼,打分支到此目錄。
注:其實(shí)也不一定非要手動(dòng)創(chuàng)建這三個(gè)目錄,在我們打分支選擇打到branch或tags等時(shí),會(huì)自動(dòng)在對(duì)應(yīng)的repository
? ? ? ??倉(cāng)庫(kù)的根目錄下創(chuàng)建該文件夾。
注:我們?cè)诘谝淮芜B接SVN的repository時(shí),可以指定連接目標(biāo)倉(cāng)庫(kù)下的不存在的文件夾,當(dāng)我們第一次將項(xiàng)目
? ? ? ? team>>>share project時(shí),將會(huì)在該倉(cāng)庫(kù)下自動(dòng)創(chuàng)建URL中不存在的文件夾,并把代碼放進(jìn)去。
提示:開(kāi)發(fā)時(shí),可以以開(kāi)發(fā)trunk中的項(xiàng)目代碼為主,當(dāng)開(kāi)發(fā)到某個(gè)時(shí)期(你覺(jué)得比較重要的時(shí)期)時(shí),可以看情況將需
? ? ? ? ? ?要備份的文件夾(或文件)打分支到其他如branches、tags等文件夾下。
注:需要時(shí),我們可以從SVN上同步分支中的任意時(shí)期的項(xiàng)目代碼(注:我們當(dāng)然也可以同步trunk主干下的最新的代碼)。
注:有時(shí),我們也可以在branches中開(kāi)發(fā)(但是需要即時(shí)將trunk中的代碼合并到branches中,但是暫時(shí)不將branches中
? ? ? ?合并到trunk主干上),然后開(kāi)發(fā)到一定程度的時(shí)候,再將branches合并到主干trunk上。此方式,也很常用。
聲明一:本次示例的軟硬件環(huán)境為:Windows10、VisualSVNServer、TortoiseSVN、Eclipse。
注:VisualSVNServer主要用作SVN服務(wù)端、TortoiseSVN主要用作SVN客戶(hù)端。
聲明二:由于Eclipse或其它IDE開(kāi)發(fā)工具的SVN插件版本不同等原因,所以這里并不以SVN插件來(lái)介紹分支的使用,
? ? ? ? ? ? ? ?下面是以TortoiseSVN客戶(hù)端來(lái)介紹分支的使用的。
準(zhǔn)備工作:
使用VisualSVNServer創(chuàng)建一個(gè)本地倉(cāng)庫(kù):
注:創(chuàng)建repository時(shí)需要先創(chuàng)建user,這里就不詳細(xì)介紹了。
注:創(chuàng)建SVN倉(cāng)庫(kù)的方式較多,本人這里是利用VisualSVN Server創(chuàng)建的。
創(chuàng)建完成,如下圖所示:
注:右鍵目錄或倉(cāng)庫(kù),會(huì)出現(xiàn)拷貝連接SVN的URL的選項(xiàng)。
往SVN中放入一些東西,方便下面講解。
注:可以使用Eclipse的SVN插件將項(xiàng)目分享到SVN的倉(cāng)庫(kù)中,也可以使用TortoiseSVN將文件夾add到SVN的倉(cāng)
? ? ? ?庫(kù)中,還可以……這里就不再給出具體步驟了。
使用TortoiseSVN來(lái)管理SVN:
使用TortoiseSVN來(lái)查看一下SVN中的內(nèi)容:
使用TortoiseSVN檢出SVN中的項(xiàng)目:
可以看見(jiàn),以檢出到桌面了:
SVN打分支:
方式一:先檢出,再打分支
注:to path中輸入或選擇要打分支到哪一個(gè)文件夾下;如果是輸入的是不存在的文件夾的話(huà),那么會(huì)自動(dòng)在SVN中創(chuàng)建
? ? ? ??該文件夾。
注:/branches/project20180831是指當(dāng)前倉(cāng)庫(kù)文件夾下的branches文件夾下的project20180831文件夾。
分支創(chuàng)建完畢,我們?cè)偃タ匆幌?#xff1a;
注:在某一個(gè)枝干上的操作,其作用范圍就是其自身,并不會(huì)影響到其他枝干(注意:這里說(shuō)的是一般操作,分支合并等情況除外)。
可以簡(jiǎn)單測(cè)試一下:在主干trunk上略作修改之后,提交。再用TortoiseSVN查看一下分支上的對(duì)應(yīng)文件,發(fā)現(xiàn)是修改
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?前的;查看主干上的對(duì)應(yīng)文件,發(fā)現(xiàn)是修改后的。說(shuō)明枝干之間不會(huì)發(fā)生干擾。
注:打分支之前,要保證本地的和服務(wù)器上是一致的,即:打分支前需要update、commit。
方式二:直接在客戶(hù)端,通過(guò)Copy to的方式,打分支
選擇要備份的目錄:
右擊 > Copy to,填寫(xiě)要打分支到哪里:
填寫(xiě)分支信息:
點(diǎn)擊ok后,刷新一下客戶(hù)端,可看見(jiàn)打分支成功:
合并分支:
提示:合并分支即>>>選擇目標(biāo)分支合并到當(dāng)前所處分支。
注:可以合并文件也可以合并整個(gè)文件夾,看自己的需求。
如果Test merge測(cè)試沒(méi)沖突的話(huà),是這樣的:
此時(shí)直接再點(diǎn)擊Merge合并即可。
Merge解決沖突:
如果Test merge測(cè)試有沖突的話(huà),是這樣的(示例):
此時(shí)點(diǎn)擊Merge,會(huì)出現(xiàn):
點(diǎn)擊Edit conflict來(lái)編輯沖突:
在合并后的枝干對(duì)應(yīng)欄中編輯后,Save保存后關(guān)閉。
點(diǎn)擊已解決Resolved按鈕:
點(diǎn)擊OK即可:
此時(shí),(沖突已經(jīng)解決并且)已經(jīng)合并完畢了。
注:Merge合并之后,只是在本地的當(dāng)前枝干發(fā)生了變化,而在服務(wù)端SVN中的當(dāng)前枝干還是合并之前的;所以合并之后確
? ? ?認(rèn)沒(méi)問(wèn)題后還需要commit到服務(wù)端SVN,以保證其他小伙伴能拿到最新的代碼。
注:如果發(fā)現(xiàn)合并之后,還有問(wèn)題,那么可以回退
切換分支:
注:我們?cè)诖蚍种r(shí),取的分支文件夾名雖然和項(xiàng)目名不同(如下圖),但是當(dāng)我們切換分支時(shí),右擊項(xiàng)目(Abc_SVN_Test)
? ? ? ?之后,選擇要切換到的分支時(shí),直接選我們打分支時(shí)起的文件夾名字即可。雖然兩個(gè)文件夾不同,但是切換分
? ? ? ?之后,還是會(huì)以Abc_SVN_Test為文件夾名,只是里面的內(nèi)容變成了切換到的分支的內(nèi)容。
注:切換分支后,我們的update、commit等基本操作,其作用范圍只是當(dāng)前分支,并不會(huì)影響其他分支。
?
^_^ 如有不當(dāng)之處,歡迎指正
^_^ 本文已經(jīng)被收錄進(jìn)《程序員成長(zhǎng)筆記(三)》,筆者JustryDeng
總結(jié)
以上是生活随笔為你收集整理的TortoiseSVN打分支、合并分支、切换分支的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机结构简图
- 下一篇: hdu 2222 Keywords Se