0

我们正在建立一个产品系列。该系列中的每个产品都建立在通用的“基础设施”组件之上。因此,我们有不同的应用程序团队,他们致力于产品 A、产品 B 和 f 系列中的基础设施组件。

通常,产品 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 [infrastructure-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

因此,family tag1.0 应指产品 A tag 1.0 和基础设施 tag1.0。

4

2 回答 2

1

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

所以产品 A 会有一个外部设置为http://myrepourl.com/infrastructure/tags/tag1.0

然后产品可以将外部设置为http://myrepourl.com/infrastructure/tags/tag1.1

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

于 2012-05-01T20:38:54.030 回答
0

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

你来自:

/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
于 2012-05-01T20:39:12.667 回答