【问题标题】:Merging specific files in TortoiseSVN / branch practices在 TortoiseSVN / 分支实践中合并特定文件
【发布时间】:2020-01-11 07:18:26
【问题描述】:

我有一个个人分支,我在其中同时处理多个功能。完成一项功能后,我想将相关文件合并回主干,但我不知道如何。合并将单方面合并所有内容,如果我想要任何一种粒度,我必须一次通过界面流一个文件。

我尝试使用修订图比较分支和主干,让我从更改中选择相关文件 - 但从统一差异创建补丁不包括任何新文件。

“合并修订范围”也不是非常有用,因为我对个人分支的许多提交都包含不同功能的工作,因为我在多台机器上工作并且必须确保我所做的一切都已提交,是否完成.

我只是做错了吗?我应该为每个功能都创建一个新分支吗?我觉得我将有十几个和一个噩梦般的时间来构建它们。我是否应该对我的分支提交进行微观管理,以确保将每个功能分开以供以后选择?我无法对此提出强烈反对,我想,我只是对缺乏合并特定文件的明显能力感到困惑。

【问题讨论】:

    标签: svn version-control tortoisesvn


    【解决方案1】:

    我是不是做错了?

    如果“它”是您的“分支策略”,那么 - 是

    如果“它”是您的“分支发展政策”,那么 - 是

    我是否应该为每个功能都创建一个新分支?

    也许,但“这取决于”至少:并行分支的数量、每个此类分支的生命周期、您的合并习惯(开发期间的累积合并或已完成功能的“大爆炸”合并),因此 - 我不能给你确定的答案 (tm)

    如果您在共享分支中遵循“每个任务的分支”策略至少“按任务提交”,您的头痛就会减轻。至少在某种程度上是易于管理的合并

    无论如何,你必须阅读different merge-types,注意子树和cherrypick合并:

    • 如果您要在公共分支中提交每个任务,您只需在分支中收集所有与功能提交相关的内容,然后将这些子集单独挑选到主干中
    • 每个任务都有一个分支,您将使用普通的合并到主干中,但是很多合并地狱与跨分支合并(从长远来看这是一个真正的痛苦)

    现在您只有一种方法:将子树和cherrypick 与大量手工混合:

    • 收集与功能相关的文件列表
    • 收集与功能相关的修订列表
    • subtree-merge p.1 中的每个文件,并在同一命令中从 p.2 中挑选修订版(无论如何,每个功能都将有多个合并,因为“为功能 X 合并文件 N... " 对于源代码树的每个独立部分都是必须的)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-20
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2016-11-29
      • 2010-09-05
      相关资源
      最近更新 更多