【问题标题】:svn vendor branchsvn供应商分支
【发布时间】:2010-11-26 18:26:58
【问题描述】:

svn red book,在“供应商分支”一章中,建议维护一个当前/包含最新版本的第三方产品,所以从示例中我们最终得到:

   repos/vendor/libcomplex/current - contains 1.1
   repos/vendor/libcomplex/1.0
   repos/vendor/libcomplex/1.1 

当前/的目的是什么?为什么我们首先需要将新版本放到 current/ 中,然后才将 current/ 复制到版本专用目录(例如 1.1)中?

我猜是为了:

  1. 使不同版本的svn具有可比性。
  2. 另一方面,版本以更有效的方式存储在 svn 存储库中。

我可以绕过供应商分支中当前/的处理吗?

更新: 我不打算修补供应商代码(至少这是一个计划)。所以我将使用 svn:external 来使用适当的供应商版本。

【问题讨论】:

    标签: svn vendor-branch


    【解决方案1】:

    该供应商分支管理方案的目的是将第 3 方产品的版本放入您的存储库,以便您在版本之间建立历史记录。如果您只是将版本 1.0 导入到repos/vendor/libcomplex/1.0 并将版本 1.1 导入到repos/vendor/libcomplex/1.1,则版本 1.0 和 1.1 之间的 Subversion 将没有历史记录,您将无法在 Subversion 中查看版本 1.0 和 1.1 之间的更改。当然,您可以检查两者并使用 GNU diff 来比较它们,但在这种情况下,您并没有利用 Subversion 的强大功能。

    如果您正在创建自己的分支并希望将 1.0 和 1.1 之间的更改合并到您的分支中,那么历史记录很重要。如果您希望查看 Subversion 版本 1.0 和 1.1 之间的更改,也可以导入历史记录。最后,拥有历史记录可以更有效地存储数据,因为只存储 1.0 和 1.1 之间的增量。

    通过将 1.0 版导入 repos/vendor/libcomplex/current,然后将 1.1 版添加到同一目录,您可以在 1.0 和 1.1 之间建立历史记录。

    【讨论】:

      【解决方案2】:

      这是必需的,因为使用 svn_load_dirs.pl 脚本会破坏该目录的内容并将所有内容导入为新的。

      不,你不能绕过它,因为它是必要且有用的。

      重点在于新供应商删除的目录和文件相对于旧供应商。这个脚本处理这个将新的供应商拖放到当前,然后通过“自动手动”删除每个不再存在的文件/目录。然后合并。

      svn_load_dirs.pl

      包含多个 少量删除、添加和移动 使升级过程复杂化 的每个连续版本 第三方数据

      【讨论】:

      • 好吧,你说的是svn_load_dirs.pl需要current/。但我不想使用它。实际上,如果我正确理解了 svn 书,则专门引入了该脚本以克服由维护供应商丢弃的提议架构引起的困难。同样,我不打算在我的代码中直接引用 current/,只会使用版本下降(例如 repos/vendor/libcomplex/1.1)。那么,在这种情况下我真的需要 current/ 吗?
      • 你真的需要一个供应商drop导入的目录!当然,随心所欲地命名它。但是您需要一个进行导入的地方,这个地方不能直接成为目标目录。如果您不使用 current,则不同供应商 drop 之间不会有任何关联,因此将它们放在您的 svn repo 中没有多大意义,将 lib 导入使用它的项目就足够了。
      【解决方案3】:

      除了 AlberT 的 cmets 之外,如果您的构建脚本打算引用一个您应该始终看到最新供应商代码的区域,那么拥有一个专用目录(当前)也有助于获得一个恒定的路径引用。

      【讨论】:

        【解决方案4】:

        使用 /vendor/current 分支使 /vendor/tag 分支成为纯影子副本。

        我还在供应商的主要版本之间的非常小的版本中使用了当前分支,我认为不需要添加标签。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-20
          • 2012-01-03
          • 1970-01-01
          • 2010-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多