在顶级文件夹级别合并时,子文件夹的mergeinfo如何使用?

时间:2013-08-21 19:39:53

标签: svn tortoisesvn svn-merge

众所周知,如果在该文件夹级别执行合并,TortoiseSVN会将svn:mergeinfo创建为文件夹属性。这可能是顶级文件夹(例如主干)或某个子文件夹。我一直认为在子文件夹级别合并是可以的,因为在顶级文件夹级别合并时将使用子文件夹上的svn:mergeinfo。我认为它过去一般对我有用,直到今天我看到一个我无法解释的案例。

我在子文件夹级别看到了从分支主干的合并,我可以在该修订版中看到该子文件夹上的svn:mergeinfo属性< strong> trunk 。

但是,如果我尝试在顶层文件夹级别再次从分支合并到 trunk ,则分支处的合并修订版不会显示为灰色。如果我尝试合并,它只会合并顶部文件夹中的属性,而不会进行任何代码更改。如果我尝试从该子文件夹合并一个文件夹,则该合并的修订版也不会显示为灰色。

我无法解释我在这里看到的内容。谁能对此有所了解?我使用的是最新的TortoiseSVN 1.8.1。在过去,我使用的是TortoiseSVN 1.7及以下版本。最新版本的TortoiseSVN是否故意改变了这种行为,或者我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:2)

  1. 不要使用你不完全理解的技巧
  2. 当不需要时,不要使用技巧(子树合并必须在罕见的情况下,仅在某些特殊情况下
  3. SVN Book 轻轻,缓慢地,无需急速阅读相关部分(“子树合并和子树Mergeinfo”主题)
  4. 现在,关于你的问题的考虑因素:

    • 当您在子树中合并某些修订时,对于父母来说没有任何意义 - 因为对于任何级别的父母,这些修订不会合并(即使他们没有子树外的对象)
    • 子树的Mergeinfo仅用于避免此子树中的重复合并 (不在上方或下方),当相同的修订稍后合并到某个父级时(和移动到父级的合并根,当与相交的修订(在子树和父合并中)的这种合并完成时)