【问题标题】:Moving files in trunk and branch and merging after that在主干和分支中移动文件并在此之后合并
【发布时间】:2014-08-08 16:03:33
【问题描述】:

我有一种情况,我在太多地方上的课很少。我想将它们放在一个目录中以避免不必要的文件搜索。有主干(所有实际开发都在其中进行),还有几个具有相同文件和许多小自定义的分支。

在主干中使用 svn move 然后将该修订合并到所有分支可能会消除所有自定义,因为它基本上只是删除和添加,所以我想如果我在主干中运行相同的 svn move 命令和所有分支,并且从未将特定版本从主干合并到任何上述分支?

问题是,如果我必须对这些文件进行更改,我完全不知道从主干合并到分支是否会起作用。是我手头有一场巨大的灾难(我经历过关于 Subversion 和移动/重命名文件的所有恐怖和一般的骗局),还是 SVN 一次玩得很好?

编辑:我们使用的是 Subversion 1.6.15

【问题讨论】:

    标签: svn version-control merge


    【解决方案1】:

    如果我必须对这些文件进行更改,我完全不知道从主干合并到分支之后是否会起作用

    不会不会。合并在一侧编辑并在另一侧移动是保证成为“重构地狱”受害者并获得树冲突的方法,即使在 SVN 1.8+ 中也是如此。对于 1.6+ 的情况更糟糕更丑陋的共同点

    【讨论】:

      【解决方案2】:

      它不起作用 - 如果您在 2 个分支中添加了 2 个文件,但在合并时使用相同的名称,您可能最终会遇到“邪恶双胞胎”问题。如果您将修订标记为合并并且文件存在于主干上,那么您应该没问题。看看this question

      但是,一种可能更好的方法是合并对主干的更改(我假设最终会发生)编辑,然后分支包含重构目录的主干以继续对这些文件进行更改。

      升级后,1.8 在树冲突方面会好一些,尤其是支持合并到移动的文件中 - 在 1.6 中它可以正确解决它,有时不能,所以 1.7 让它每次都标记冲突。

      【讨论】:

      • 感谢您的解释,即使它证实了我所有的恐惧。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      相关资源
      最近更新 更多