gpt4 book ai didi

SVN通用代码与外部

转载 作者:行者123 更新时间:2023-12-04 06:29:05 24 4
gpt4 key购买 nike

目前我正在尝试使用相同的代码为多个产品建立一个存储库。最好的解决方案是制作共享代码的真正库并以这种方式使用它们。然而,目前这需要很多时间。这个想法是有一个带有以下树的存储库

-trunk-Project1
-Project2
-Shared

项目 1 和 2 都有一个外部来包含共享代码。外部指向特定修订,以在处理 project1 和共享代码时不中断 project2 构建。由此产生一个问题。

当对共享代码进行更改并且我进行提交(使用 tortoise SVN)时,project1 和共享代码的更改都会被拾取,并且作为单个修订很好地提交给 SVN。但是,当我或同事进行更新时,项目将不会构建,因为 svn external 指向“旧”版本。

这可以通过更新外部并提交它来解决(让构建中断)。我们可以暂时从外部删除特定的修订,但我们必须在开发结束时再次添加它。有没有办法自动做到这一点?

最佳答案

我想你有几个选择。首先是按照 Martin 的建议使用带有分支的单个模块。每个事件项目或开发线程都会有一个分支。当您合并回主干时,将获取对共享代码的更改。

例如

Module
|
+ trunk
| + Project1
| + Project2
| + Shared
|
+ branches
|
+ Project1Development
| + Project1 [active development here]
| + Project2
| + Shared [active development here]
|
+ Project2Development
+ Project1
+ Project2 [active development here]
+ Shared [active development here]

其次,您可以对 Shared 进行分支,这样您就不需要将外部固定在它上面。这就是您的存储库中的内容
Project1
|
+ trunk [svn:external to a branch of Shared]

Project2
|
+ trunk [svn:external to a branch of Shared]

Shared
|
+ trunk
|
+ branches
|
+ Project1Development
|
+ Project2Development

每个项目都会使用自己的主干 View 。这里的危险是分支变得太长——你需要遵守纪律来合并和删除它们,也许在每次发布之后。仅当需要对 shared 进行特定于项目的更改时,才应创建 Shared 的分支。

第三,您继续像现在一样使用外部组件,并忍受固定修订的痛苦。如果你这样做,我会将你的 repo 重新排列成上面的第二个图 - 你在项目中的外部有一点点味道。

关于SVN通用代码与外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5673767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com