svn - 源代码控制 – 每个产品都需要一个单独的分支吗?

标签 svn version-control tfs branch

假设您有四个产品,每个产品都有自己的发布时间表。每个产品都有 50% 的共享代码(所有产品的通用功能)和 50% 的产品特定代码。

您是否需要为每个产品单独的源代码控制分支?是否应该始终在四个产品分支之一中开发通用功能,然后再合并到其他产品中?

典型场景:产品 A 下个月发布,需要核心(共享)增强 1,产品 B 将在四个月后发布,需要核心(共享)增强 2(需要三个月才能完成)。

最佳答案

我将共享代码保存在它自己的产品文件夹中。然后使用 svn:externals在其他产品之间共享代码。处理分支和合并有点痛苦,但总比在存储库中有四个共享代码的副本要好。像这样的(将主干替换为/branches/RB-1.0.0 或/tags/REL-1.0.0 用于发布分支和标记发布):

/core/trunk
/product_a/trunk
  /core (svn:externals 'core /core/trunk')
/product_b/trunk
  /core (svn:externals 'core /core/trunk')
/product_c/trunk
  /core (svn:externals 'core /core/trunk')
/product_d/trunk
  /core (svn:externals 'core /core/trunk')

UPDATE0:请注意/product_a/tags/REL-1.0.0 可能使用/core/tags/REL-1.0.0 而/product_b/tags/REL-1.0.0 可能使用/core/tags/REL-1.1.0

关于svn - 源代码控制 – 每个产品都需要一个单独的分支吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110026/

相关文章:

java - 使用 SVN 将一些模板文本包含到源文件中的好解决方案?

php - 使用 Subversion 制作 PHP 项目的生产版本

SVN 用户的 Git

java - 在没有工作区的情况下使用 Java SDK 以编程方式将文件提交到 TFS

javascript - 使用 JavaScript 命名空间有什么危险吗?

version-control - GitHub 多个存储库与多个环境的分支

visual-studio-2010 - TFS 2010 和未修改文件的 checkin

TFS 2010 : Change 'Work Item' type from 'Product Backlog Item' to 'Task' - how to?

git - Subgit - 停止属性同步

visual-studio - 在Visual Studio的TFS生成窗口中停止刷新