gpt4 book ai didi

c++ - 处理多个颠覆项目之间的关系

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:21:27 24 4
gpt4 key购买 nike

在我的公司,我们使用一个 SVN 存储库来保存我们的 C++ 代码。代码库由公共(public)部分(基础设施和应用程序)和客户端项目(作为插件开发)组成。

存储库布局如下所示:

  • 基础设施
  • 应用程序 1
  • 应用2
  • App3
  • project-for-client-1
    • App1-插件
    • App2-插件
    • 配置
  • project-for-client-2
    • App1-插件
    • App2-插件
    • 配置

客户项目的典型版本包括项目数据和它使用的每个项目(例如基础设施)。

每个目录的实际布局是-

  • 基础设施
    • 分支机构
    • 标签
    • 中继
  • project-for-client-2
    • 分支机构
    • 标签
    • 中继

其余项目也是如此。

上面的布局有几个问题:

  1. 很难为客户项目启动一个全新的开发环境,因为必须检查所有涉及的项目(例如:基础设施、App1、App2、project-for-client-1)。
  2. 出于与上述相同的原因,很难在客户项目中标记发布。
  3. 如果客户项目需要更改一些通用代码(例如基础架构),我们有时会使用分支。很难跟踪项目中使用了哪些分支。

SVN有没有办法解决以上问题?我想在客户端项目中使用 svn:externals,但在阅读 this post 之后我知道这可能不是正确的选择。

最佳答案

你可以用 svn:externals 处理这个。这是 svn 存储库中某个位置的 url这使您可以拉入不同存储库(或同一存储库)的部分内容。使用它的一种方法是在 project-for-client2 下,您添加一个 svn:externals 链接到您需要的基础设施分支,您需要的 app1 分支等。所以当您 checkout project-for-client2 时,您会得到所有正确的部分。

svn:externals 链接与​​其他所有内容一起进行版本控制,因此当 project-for-client1 被标记、分支和更新时,正确的外部分支将始终被拉入。

关于c++ - 处理多个颠覆项目之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405091/

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