繁体   English   中英

SVN产品系列版本控制

[英]SVN family of products versioning

我们正在建立一个产品系列。 该系列中的每个产品都基于通用的“基础结构”组件。 因此,我们拥有各种应用程序团队,它们正在处理f系列中的产品A,产品B和基础结构组件。

通常,产品A,B..X和基础结构将具有各自独立的发布周期。 因此,我们的版本控制策略是2倍。 对产品/基础架构进行独立版本控制,然后对已部署的系列进行版本控制。

并非所有产品都会同时创建。 因此,很少有以下示例部署:

Family1.0 [Infrastructure-1.0,产品A-1.0]

Family1.0.1 [Infrastructure-1.0,产品A-1.1]

Family1.2 [Infrastructure-1.1,产品A-2.0]

Family2.0 [基础架构1.2,产品A-2.0,产品B-1.0]

因此,我创建了一个SVN目录结构,例如

family
    /tags
/product A
    /tags
    /trunk
/product B
    /tags
    /trunk
/infrastructure
    /tags
    /trunk

我的问题是我如何使以下成为可能

/family
    /tags
        /tag1.0 <-- should refer to infrastructure tag 1.0 and product A tag1.0
/product A
    /tags
        /tag1.0
/infrastructure
    /tags
        /tag1.0

因此,系列tag1.0应该引用产品A标签1.0和基础结构tag1.0。

您应该能够使用svn:externals属性( 在此处 ),而不是链接到其他存储库,而是指定存储库。

因此,产品A的外部设置为http://myrepourl.com/infrastructure/tags/tag1.0

然后,产品be可以具有一个外部设置为http://myrepourl.com/infrastructure/tags/tag1.1

这是我认为完成多个依赖关系的唯一方法,除非它在您的配置文件(或将检查正确基础结构的版本化脚本)中以某种方式存在。

如果要获取所有项目的快照,则将根分支到标签文件夹中

您来自:

/tags
/trunk
    /family           
    /product_A
    /product_B
    /infrastructure

/tags
    /tag1.0               ; Snapshot of trunk with all the projects
        /family           
        /product_A
        /product_B
        /infrastructure
/trunk
    /family           
    /product_A
    /product_B
    /infrastructure

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM