我想在项目的其他开发项目上独立完成一小组更改。我一直在使用this作为指南。
我开始从/ trunk / app / module到/ branches / pete / feature-branch执行svn cp,这是r393
经过一些更改,并在主干和分支之间来回合并以保持最新状态,我完成了我的功能,然后回到后备箱上工作。
稍后几次修改,我决定我应该清理我的功能分支,所以我尝试重新整合它。
从代码的角度看,一切看起来都不错,但现在我的trunk / app / module仍然有一个svn:mergeinfo属性。
$ svn pg svn:mergeinfo
/branches/pete/feature-branch:393-433
根据我的理解,svn:mergeinfo应为空,这些修订应该是" elided"或者这样可以吗?
答案 0 :(得分:1)
子文件夹中的这些信息显示您(意外?)合并到子文件夹(不在主干上,但在/ trunk / app / module上)。
Subversion现在知道它不会再次从这个分支合并这些修订。通常你应该只在最顶层的文件夹上合并,所以mergeinfo只在这个文件夹上。
SVN-Team(See SVN book topic here)
不建议仅合并子目录避免子树合并和子树mergeinfo。仅在分支的根目录上执行合并,而不是在子目录或文件上执行合并(请参阅“子树合并和子树Mergeinfo”一节)。
仍然可以进行所有合并,但最终在不同的文件夹级别上会有很多(不同的)mergeinfos,这使得以后更难弄清楚发生了什么以及为什么SVN会以这种方式运行。
也总是可以(不推荐!)删除merge-info属性,以及#34; reset"合并功能。主要通过删除分支来完成。那么第二次合并的风险通常可以忽略不计。