svn branch、tag & merge關(guān)鍵字: svnsvn中建立branch或者tag的方法比較簡(jiǎn)單,,totoiseSVN中的操作是:
1.選擇Branch/tag.. 2.在出來的界面中的To URL中填上URL,一般是svn://IP/Project/branches/branch-1, 這樣就建立了一個(gè)branch-1的branch. 建立tag是一樣的操作,,只不過URL一般是svn://IP/Project/tags/tag-1 3.后面的Create copy from是用于選擇從你當(dāng)前的working base中的哪個(gè)版本中建立branch/tag,,可以根據(jù)自己的選擇來訂制,一般選擇Head Revision subclipse中幾乎是一樣的操作,。 Merge分為很多種: 1.多個(gè)branch之間merge 2.branch merge到trunk 3.trunk merge到branch 第2種用的比較多,,比如在otfs接口中netamount的需求提出后就得建立一個(gè)netamount的branch,trunk繼續(xù)在非netamount的情況下繼續(xù)開發(fā),,netamount單獨(dú)開發(fā),當(dāng)netamount功能測(cè)試通過后,,將netamount branch merge到trunk下,,然后將trunk release。 第3種情況用的也不少,,如上的例子,當(dāng)用戶進(jìn)行netamount測(cè)試時(shí),,如果用戶不想只測(cè)試netamount的功能,,則需要將trunk中的修改merge到netamount branch,然后從netamount branch中發(fā)布一個(gè)版本供用戶測(cè)試,。 branch merge to trunk在tortoiseSVN操作如下: 1.選擇TortoiseSVN->Merge 2.選擇Reintegrate a branch 3.選擇From URL,URL填好之后可以點(diǎn)擊Show Log,可以看看這個(gè)branch是否是你要merge的內(nèi)容,下面的Working copy中也可以Show Log,,可以確認(rèn)一下你的工作目錄是否是trunk,。確認(rèn)后點(diǎn)擊Next 4.Merge Options里面有些選項(xiàng),根據(jù)需要來選擇,,Test Merge按鈕會(huì)告訴你這次Merge會(huì)做哪些操作,,最好先Test Merge一下!如果是預(yù)期的Merge操作,點(diǎn)擊Merge則可以將branch Merge到本地工作目錄下 5.有沖突的文件需要解決好沖突,,解決之后點(diǎn)擊svn commit則完成了merge 從多個(gè)revision中merge到本地工作目錄在tortoiseSVN的操作如下: 1.選擇TortoiseSVN->Merge 2.選擇Merge a range of revisions 3.URL to merge from填上merge的來源,,merge 來源一般和你的working copy是不同的branch或者working copy是trunk 而merge from是branch 4.Revision range to merge填上需要merge的revision,格式是1,3,5或者 1-10 5.后續(xù)操作同Reintegrate a branch subclipse進(jìn)行Merge操作同tortoiseSVN的操作方式有所區(qū)別,,原理基本同Merge a range of revisions,。 點(diǎn)擊Team->Merge后,只有一個(gè)界面,,這個(gè)界面提供了兩種Merge操作方式: 1.Merge某個(gè)版本范圍內(nèi)的修改到本地工作目錄上 2.Merge feature branch到trunk (也需要先merge到本地) 第1種的操作方法是: 1.在from url中填上branch的url 2.from revision中選擇建立這個(gè)branch的revision號(hào),不是最新的那個(gè)版本號(hào)! 3.to url框中勾上"Use 'From:' URL"這個(gè)check box, To Revision中選擇需要需要Merge到的revision號(hào),,一般勾head revision 4.Dry run讓你預(yù)覽一下merge效果,Unified Diff將Merge的兩邊進(jìn)行Diff并將Diff結(jié)果保存到文件中,。(在我機(jī)器中Dry run沒有窗口出來,,diff結(jié)果的文件除非只有很小的變化,,不然看得頭大) 5.點(diǎn)擊Merge將merge到本地,這時(shí)候與版本庫進(jìn)行一下同步應(yīng)該和上一步的dry run有同樣的效果,,如果merge過來的東西不是你預(yù)期的更改可以選擇revert,但是新增的文件需要手工刪除!如果是預(yù)期的merge效果,,那commit,記得在comments中寫上merge來的branch,、from revision、to revision(不要寫head,,寫數(shù)字) 總的來看subclipse的merge操作并不方便,不如tortoiseSVN |
|