是的你可以。
我在最近的一个项目中使用了以下策略,该项目在高峰期有大约 5 个并发开发人员,并且效果很好。我们案例中的base
代码是核心专有产品,plus
是客户对该base
代码的定制。
我们有这样的项目空间base
;
repo/
- base/
+ trunk
+ branches
+ tags
plus
我们在同一个存储库中为基础创建了项目空间;
repo/
-base/
+ branches
+ tags
+ trunk
-plus/
+ branches
+ tags
[new trunk will go here]
用于svn copy
克隆base/trunk
到plus/trunk
.
base
现在plus
有共同的祖先。plus
通过定期合并base/trunk
到plus/trunk
. 按照惯例,我们从未从 plus 合并回 base。
最困难的部分(我发现)是确保开发人员在提交时保持自律。如果您开始将应该编写的base
代码提交到plus
视图中以便稍后将其移植回来,那么很容易陷入混乱。合并通常非常简单。
为了记录,我不会再在 svn 中这样做,我会使用 git。我用 svn 术语描述它只是因为我以前做过。
顺便说一句,abranch
可以用于多种不同的目的——特性分支、热修复、发布集成、供应商分支……所有分支,但按照惯例,它们的含义不同。我所描述的在某种程度上仍然是一个分支——只是一个没有按照惯例重新整合到其原始主干的分支。又名叉子。