开发新功能的分支问题(取决于其他项目)

时间:2014-11-21 10:13:44

标签: svn

想象一下你在SVN中有一些项目:

SVN
 |-- Project_A
     |-- trunk
     |-- branches
     |-- tags
 |-- Project_B
 |-- Project_C
 |-- Project_D

所有项目还有Project_A中的trunk,branches,tags结构。 Project_B中使用了Project_A(例如,.exe中使用的.dll)。

现在,我想向Project_A添加一项功能,因此我在Project_A\branches\Feature_A下创建了一个新分支。在开发Feature_A的同时,我面临着一种情况  我还需要在Project_B中添加一些更改(添加\ Feature_A将使用的更改代码)。

所以,从逻辑上讲,我创建了新的分支Project_B\branches\Code_changes_for_feature_A。 我完成后 - 将Code_changes_for_feature_A合并到Project_B\trunk已完成,我可以返回开发Feature_A。 到目前为止一切都很好......

但如果Feature_A请求不仅会在Project_B中更改,还会在其他项目(Project_CProject_D和其他项目中)更改,该怎么办?我每次都应该创造新的 每个项目中的分支将被更改?对我来说,我有点开销。

是否有可能创建将聚合(包含所有文件)Project_AProject_B的分支?

1 个答案:

答案 0 :(得分:0)

  

我是否应该每次在每个项目中创建新的分支?

来做。但是,从另一方面你可以尝试使用“懒惰的方式”(SVN外部和SVN 1.8。*不是强制性的,但是首选):

  • 在每个从属(B | C | D | ...)存储库中创建永久WIP分支
  • 从Project_A功能分支
  • 链接此分支的PEG修订版
  • 将依赖完成的更改合并到相应的中继中,并在将Project_A的开发合并到主干后将外部的定义更改为主干
  • 保持WIP与奴隶项目的中继(同步合并)中的更改(独立于WIP)保持同步

而不是“每次更改分支”,您将使用“每次更改的范围”来更难恢复WIP更改历史记录的成本:您必须始终编写良好的提交消息