假设您有四个产品,每个产品都有自己的发布时间表。每个产品都有 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/