使用SVN,如果分支中的提交未合并并提交到TRUNK直到以后或者另一个人svn up,merge和commit,该怎么办?

时间:2013-04-19 04:14:48

标签: svn

如果我在一个名为“R08”的分支上工作,并且有一个主分支“TRUNK”,我承诺“R08”,然后

  1. 不要将更改提交到TRUNK,而是在第二天将我的同事svn up提交到分支R08,然后合并,并提交到{{1我的提交也会合并到TRUNK吗?

  2. 我没有合并并提交给TRUNK,因为我可能会在第二天做一些更改或使用不同的解决方案,而且我做了(比如说它是一个不同的文件),并提交{{ 1}},这次合并并提交到TRUNK,两次提交都会转到R08吗?

  3. 我看到的一些例子是TRUNK加一个分支,但只有一个人在分支机构工作,另一个人在TRUNK工作。我想知道当有5个人在分支机构工作时会发生什么,还有6个人同时在TRUNK工作? (有些人是同一个人)。

    请给出答案,而不是提供手册的链接。

2 个答案:

答案 0 :(得分:1)

正如其他评论所述,在分支机构/中继线上工作的人数与行为无关。合并只是基于两个分支的变化。无论是其他人进行更改,还是同一个用户进行更改都与整个过程无关。

  1. 它会(我假设您所说的“我的提交”是您在R08中所做的更改,并且是在您的同事合并之前提交的,对吗?)

  2. 您的问题不明确:“两次提交”是什么意思?

  3. 这是一种简化的方法来告诉你合并将会做什么:

    B1分支从主干出来

       r10  
    ----+--->    (trunk)
         \-->    (B1)
    

    有人将更改A提交到分支B1,在r15

       r10   r15
    ----+--->        (trunk)
         \----X->    (B1)
    

    在trunk上进行了一些其他更改,有人更新到最新的turnk并准备将B1合并到trunk:

       r10   r15 r16 r17
    ----+---------Y---Z->  (trunk)
         \----X->          (B1)
    

    当它尝试将B1合并到主干时,它将从B1分支到最新的点找到B1中所做的更改,这是在r15中完成的更改X,并在trunk中应用更改:

       r10   r15 r16 r17     r18
    ----+---------Y---Z------X'-->    (trunk)
         \----X-------------/         (B1)
    

    所有逻辑都无关紧要,每个分支上有多少人在工作。

答案 1 :(得分:1)

至1: 是的,如果没有排除形式合并。

至2: 这更像是一个组织问题。通常认为在完成后会提交trunk。因此,您必须在团队中清除何时合并。但这适用于所有团队。 在我工作的项目中,这绝不是一个真正的问题。