git的具体示例合并在SVN中不起作用

时间:2013-02-15 06:29:55

标签: git svn merge

我正在寻找可以在git中运行的具体示例合并,但会导致SVN发生冲突。除此之外,您从未尝试过的艰难/痛苦的SVN合并样本Git也没关系。

我可以识别出与我的问题相关的四类合并:

  1. big bang merges
  2. 重命名/移动相关合并
  3. 在两个分支中创建目录/相同文件
  4. criss cross merges
  5. 我在这里错过了任何方案吗?

    查找1-3的样本是微不足道的(在评论中找到2的样本,3作为我的答案的一部分,1几乎是任何rebase)。 是否有任何样本(看起来不是学术性的)成功的纵横交错合并,这将在SVN中失败?

3 个答案:

答案 0 :(得分:6)

当然值得一提的是octopus合并策略?

通常很难找到章鱼与最多8个分支合并的具体例子(最小值为3)。

example octopus merge

然而,为了回答你的问题,或许更准确地说,我不认为提供一个人为的'这个在Git中有效但在SVN中没有'的例子会赢得你与你的同事/管理层的任何战斗。

我认为这很困难 - 而且我说的是根据我自己的经验,在搬迁公司之后从SVN过渡到Git - 在不了解两种工具的潜在“螺栓和螺栓”的情况下欣赏Git的真正力量。我不确定Linus本人是否可以向某人(街头典型的)展示一个获胜的“电梯间距”,而不知道Git与SVN的内部运作。

有些人可能不同意这种观点,但我对Git的采用来自备受尊敬的人,称这是源控制的最佳工具;我信任他们,并且他们已被证明是正确的,因为我已经了解了Git如何在内部工作以及从高效工作流程中学到的知识。

使用SVN的持久记忆每天都在解决合并冲突。我曾经认为这是开发软件的正常部分,但并非必须如此。

答案 1 :(得分:3)

找到一个包含漂亮样本的article。仅创建“team b”分支以显示树与在两个分支中创建相同目录的冲突。以下是概述:Wall sample

答案 2 :(得分:3)

好吧,real sample of strange and bad merge已在现实世界中捕获并注册

  1. 分支中添加的文件
  2. 通过两个合并(分支 - >主干 - >另一个分支)文件出现在另一个分支
  3. 在branch-target
  4. 中编辑的文件
  5. 对于有问题的文件“树冲突”,将分支合并到主干后失败
  6. r9 | Badger | 2013-03-06 11:42:34 +0600 (Ср, 06 мар 2013) | 1 line Changed paths: M /branches/B2/src/add.txt

    B2 changes in add.txt
    ------------------------------------------------------------------------
    r8 | Badger | 2013-03-06 11:35:45 +0600 (Ср, 06 мар 2013) | 2 lines
    Changed paths:
       M /branches/B2
       M /branches/B2/core.txt
       A /branches/B2/src/add.txt (from /trunk/src/add.txt:7)
    
    Merge from trunk to B2
    ------------------------------------------------------------------------
    r6 | Badger | 2013-03-06 11:31:36 +0600 (Ср, 06 мар 2013) | 1 line
    Changed paths:
       M /trunk
       M /trunk/core.txt
       A /trunk/src/add.txt (from /branches/B1/src/add.txt:5)
    
    Merge from B1 to trunk
    ------------------------------------------------------------------------
    r5 | Badger | 2013-03-06 11:28:58 +0600 (Ср, 06 мар 2013) | 1 line
    Changed paths:
       M /branches/B1/core.txt
       A /branches/B1/src/add.txt
    
    B1 changes
    ------------------------------------------------------------------------
    

    从b2到trunk的合并尝试(预期结果 - 将src/add.txt的合并更改为现有文件的trunk版本)

    >svn merge --dry-run file:///Z:/Repo/branches/B2
    --- Merging r4 through r9 into '.':
       C src\add.txt
     G   .
    Summary of conflicts:
      Tree conflicts: 1