如何在重新整合时删除延迟的svn:mergeinfo属性?

时间:2018-03-06 20:58:03

标签: svn svn-merge svn-merge-reintegrate

我想在项目的其他开发项目上独立完成一小组更改。我一直在使用this作为指南。

我开始从/ trunk / app / module到/ branches / pete / feature-branch执行svn cp,这是r393

经过一些更改,并在主干和分支之间来回合并以保持最新状态,我完成了我的功能,然后回到后备箱上工作。

稍后几次修改,我决定我应该清理我的功能分支,所以我尝试重新整合它。

  1. 我查看了功能分支和主干的新副本。
  2. 我将主干更改合并到功能分支并提交了它们
  3. 然后我在主干上做了一个合并--reintegrate ^ / branches / pete / feature-branch导致r434
  4. 从代码的角度看,一切看起来都不错,但现在我的trunk / app / module仍然有一个svn:mergeinfo属性。

    $ svn pg svn:mergeinfo
    /branches/pete/feature-branch:393-433
    

    根据我的理解,svn:mergeinfo应为空,这些修订应该是" elided"或者这样可以吗?

1 个答案:

答案 0 :(得分:1)

子文件夹中的这些信息显示您(意外?)合并到子文件夹(不在主干上,但在/ trunk / app / module上)。

Subversion现在知道它不会再次从这个分支合并这些修订。通常你应该只在最顶层的文件夹上合并,所以mergeinfo只在这个文件夹上。

SVN-Team(See SVN book topic here

不建议仅合并子目录
  

避免子树合并和子树mergeinfo。仅在分支的根目录上执行合并,而不是在子目录或文件上执行合并(请参阅“子树合并和子树Mergeinfo”一节)。

仍然可以进行所有合并,但最终在不同的文件夹级别上会有很多(不同的)mergeinfos,这使得以后更难弄清楚发生了什么以及为什么SVN会以这种方式运行。

也总是可以(不推荐!)删除merge-info属性,以及#34; reset"合并功能。主要通过删除分支来完成。那么第二次合并的风险通常可以忽略不计。