svn几点备忘

branch 和 merge

  1. 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 ) 時發生許多版本衝突。

  2. trunk到branch see this:

    從 分支線路 ( /calc/branches/my-calc-branch ) 合併回 開發主線 ( /calc/trunk ) 通常選第 2 個,而特別選擇 [Reintegrate a branch] 這個選項是很重要的,因為這有以下好處:

    • 讓 Subversion 能知道 開發主線 ( /calc/trunk ) 是從哪個分支、哪些版本合併進來的
    • 有效節省 Subversion Repository (SVN儲存庫) 的空間,因為不用重複儲存分支的所有變更資訊
    • 可以產生 Revision graph 得知專案開發的分支狀況
  3. 注意一下 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 -> 确定

2pharmaceuticals.com

“svn几点备忘”的2个回复

  1. 你好我想问一下这段的具体细节

    “若在Retergate a branch时出现: must be ancestrally related to 字样,则说明分支和主干没有祖先关系(分支不是该主干分出来的)。解决办法是在看一下branch的log,看看它是从那个版本分出来的,然后checkout出那个版本,接着进行正常的merge。merge成功后若trunk不是最新的,那么还要将其与trunk进行合并。“

    正常的merge指的是什么?我试了在branch上merge回turnk,从trank merge回branch都不好使。谢谢!

    1. 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:你指得“不好使”是指?具体提示是什么?你的操作步骤是什么?

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据