【问题标题】:Process of SVN Tagging with ExternalsSVN 标记与外部的过程
【发布时间】:2011-10-05 15:10:37
【问题描述】:

我只有一个存储库。

假设我有跨项目共享的 LibraryX。

假设 ApplicationA(以及其他)使用 LibraryX 并将其作为外部引用。

在开发 ApplicationA 的同时,我还可能对 LibraryX 进行修改。

假设 ApplicationA 和 LibraryX 都进行了更改,现在我正在发布。

如果您同意/不同意以下流程,请告诉我,和/或告诉我您将采取哪些措施来改进它:

  • 创建LibraryX的标签
  • 分支应用A
  • 将分支 ApplicationA 上的 externals 更改为指向已标记的 LibraryX 并可能指向特定的修订版(以防将来有人意外提交到该标签)
  • 创建分支ApplicationA的标签
  • 删除分支的ApplicationA

听起来合理吗?有更好的想法吗?想法?

【问题讨论】:

  • 为什么要删除分支的ApplicationA?在您开始对其进行更改之前,它不会占用任何额外的空间,如果您要对该版本进行任何错误修复,您无论如何都必须从标签中重新分支它......
  • @nachito 好的。也许保留分支是有道理的。

标签: svn tortoisesvn ankhsvn


【解决方案1】:

我执行以下操作:

  • 我总是在特定版本中引用该库。如果库发生更改并且我希望在我的应用程序中进行更改,那么我会更新外部定义。
  • 在发布时,我创建了应用程序的标签。我不需要采取额外的步骤,因为引用了库的特定版本。

一些额外的 cmets:

  • 有时我不引用库的特定版本(因为我太懒了),但我知道这些修订版将来将无法使用。如果您知道,这是您可以做出的决定。但是,在创建标签之前,我总是冻结库引用。
  • 有时我会创建一个分支而不是一个标签,这样我就可以修复一些错误,同时继续开发下一个版本。最后我为这个分支创建了一个标签并delete这个分支。 (也许我创建了多个标签,但分支总是在最后被删除。)
  • 我删除分支是因为我只将分支用作短期实体:特性分支或发布分支来稳定发布。我不需要保留分支,因为标签是我感兴趣的版本。
  • 如果我需要修复标签中的错误,那么我首先创建一个分支。修复错误并创建一个新标签(并删除分支)。
  • 如果需要在库中修复错误(虽然有点复杂),这同样适用:在分支中,您可以更新到最新的库(如果可能)或创建 引用修订的分支 的图书馆。然后将 externals 更改为指向此分支,修复库中的错误,将 externals 定义冻结为库分支的最新版本并为应用程序创建标签。我通常不会费心为库创建标签,但这也是可能的。但是我确实删除了库分支:如果再次需要它,您可以根据已删除库分支的最新修订创建一个新分支。

【讨论】:

  • 如果您使用 svn:externals 来拉取特定版本的外部组件,我们始终建议您这样做。
  • “我总是在特定版本中引用库。”品味和工作流程可能不同
【解决方案2】:
  1. 为外部标记是浪费时间
  2. ApplicationA 的分支 + 编辑(修复 LibraryX 的修订版)svn:external in branch + commit + 将分支中的最后一个修订标记为“产品标签”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多