branch 和 merge
-
branch到trunk see this:
也許過了一段時間,原本的 /calc/trunk 開發主線可能已經有其他團隊成員陸續修正了一些 Bugs,但這時你的分支 /calc/branches/my-calc-branch 就可以直接套用 開發主線 ( /calc/trunk ) 的更新,除了避免重複的工作外 (重複除錯),也可以避免版本的衝突發生,因為兩個人改同一個已知的 Bug 可能會因為用不同方法除錯或命名的方式不一致而發生衝突。經常將 開發主線 ( /calc/trunk ) 的變更透過 svn merge 合併至 分支線路 ( /calc/branches/my-calc-branch ) 是一個非常好的習慣,這樣才不會讓你因為脫離 開發主線(trunk) 過久而導致將 分支線路 ( /calc/branches/my-calc-branch ) 合併回 開發主線 ( /calc/trunk ) 時發生許多版本衝突。
-
trunk到branch see this:
從 分支線路 ( /calc/branches/my-calc-branch ) 合併回 開發主線 ( /calc/trunk ) 通常選第 2 個,而特別選擇 [Reintegrate a branch] 這個選項是很重要的,因為這有以下好處:
- 讓 Subversion 能知道 開發主線 ( /calc/trunk ) 是從哪個分支、哪些版本合併進來的
- 有效節省 Subversion Repository (SVN儲存庫) 的空間,因為不用重複儲存分支的所有變更資訊
- 可以產生 Revision graph 得知專案開發的分支狀況
-
注意一下 see this:
- branch主要用于新功能的开发
- 合并发生在本地working copy,只要你不提交就不会影响到repository
- 合并前一定要先update、commit,保证不会out of day,并将本地的修改保存到repository
- branch和trunk并行开发的过程中,要经常同步,将trunk的修改合并到branch,合并时选择”Merge a range of revision”
- branch最后合并回trunk时,merge type选择”Reintegrate a branch”
注意:在TortoiseSVN下, 1.的情况在branch处按右键, 2.的情况下在trunk处按右键. 其他客户端在merge时要看清楚from和to的路径.
注意:若在Retergate a branch时出现: must be ancestrally related to
字样,则说明分支和主干没有祖先关系(分支不是该主干分出来的)。解决办法是在看一下branch的log,看看它是从那个版本分出来的,然后checkout出那个版本,接着进行正常的merge。merge成功后若trunk不是最新的,那么还要将其与trunk进行合并。
忽略文件
在 Eclipse 中点击菜单 window –> Preferences –> Team –> Ignored Resources
或
在Eclipse的导航视图中,选中尚未加入版本控制的文件或目录,右键 –> Team –> 添加至SVN:ignore
和
右击鼠标-> 选择 TortoiseSVN -> Setting (设置) -> General (常规设置) -> 在右侧 “Golbal ignore pattern”(全局忽略样式)内填入*.db *.bak -> 确定
你好我想问一下这段的具体细节
“若在Retergate a branch时出现: must be ancestrally related to 字样,则说明分支和主干没有祖先关系(分支不是该主干分出来的)。解决办法是在看一下branch的log,看看它是从那个版本分出来的,然后checkout出那个版本,接着进行正常的merge。merge成功后若trunk不是最新的,那么还要将其与trunk进行合并。“
正常的merge指的是什么?我试了在branch上merge回turnk,从trank merge回branch都不好使。谢谢!
1. 从trunk中checkout出branch第一次分出来时的trunk版本(看一下branch的log,看看它是从那个版本分出来的,然后checkout出那个版本)。
2. 进行正常的merge,可参考:http://blog.csdn.net/keda8997110/article/details/21813035和http://developer.51cto.com/art/201005/201588.htm
3. 将merge后的版本与目前最新的trunk再merge一次。
ps:你指得“不好使”是指?具体提示是什么?你的操作步骤是什么?