是否有可能在TFS内“创建”(无基础)合并候选人?

时间:2012-04-10 12:29:28

标签: version-control tfs merge branch

我在这里工作,我们有一个分支,它只用于检查正在进行的错误和任务。这些小任务在下周签入时会被搁置并恢复。

我们开发了一个自动合并系统,其中这些小签到都合并到所有特定项目分支。然后,在项目结束时,它反向合并到主分支,从而自动进入另一个项目分支。

但是,假设我有功能A 的分支,而另一个分支功能B 。我需要第三个,包括功能A +功能B +错误修复。我不想反向合并它们,因为我不想弄乱主分支(还)

我已经从功能A创建了一个分支,并启用了我的自动合并功能,从“功能A”“功能A + B”。因此,每个错误修复都是这样的: Main - >特征A - >特征A + B 。并且功能A中的每个签到都会转到功能A + B

  

现在我想从“功能B”到“功能”进行无根据合并   A + B“即可。

     

有没有办法在它们之间进行合并(在TFS内)?

我知道它会破坏层次结构,我知道我可以通过tf.exe执行x baseless合并,或者手动(或使用任何已知工具)三路合并文件。

但是我不负责这样做,它是另一个熟悉Team Explorer界面的开发人员,所以这会让他的生活更轻松。

现在,现在,我知道可能的答案/评论将是:

  

你需要重新审视你的分支结构,因为出了什么问题!”

如果可能的话,请加上一些提示,我现在正试图改变这一点,但我不确定当我们开发2个独立项目时该怎么做,突然间,需要将它们放在一起。

2 个答案:

答案 0 :(得分:2)

您对情况的评估是正确的,您需要在此处使用无基础合并来建立功能B和功能A + B之间的关系。 tbergstedt是正确的,TFS一旦建立就会记住分支之间的合并关系。因此,这意味着您只需要在此方案中执行一个无基础合并,然后团队资源管理器中的常规合并UI将获取后续更改。

现在,只要实际执行baseless合并,就需要使用/ baseless选项从tf.exe完成,除非你有一个Team Explorer 2012 Beta客户端。在Team Explorer 2012中,我们添加了在UI中执行baseless合并的功能。如果你没有,我建议你只执行第一次baseless合并,然后让你的同事使用UI进行后续合并。

-Taylor,TFS版本控制开发负责人。

答案 1 :(得分:1)

据我所知,一旦你使用tf merge /baseless在两个分支之间进行了无基础合并,TFS会记住这种关系,从那时起,任何用户都可以在两个分支之间“正常”进行合并。

问题在于,无基础合并可能会检测每个项目的冲突,并且您需要检查所有内容的新版本,以便在项目的分支之间创建关系。因此,使用您的分支结构并在 FeatureB 功能A + B 之间进行无根据合并,在解决冲突时必须非常小心 - 如果您只是选择目标版本,目标分支上的任何 FeatureA 更改都将被 FeatureB 覆盖!

我应该补充一点,我没有完成这一切;我有一个类似的场景,但当我意识到我需要详细解决每一个冲突时,我都会得到救助。我们的产品很庞大,所以我们不值得花时间和风险。