外部SVN标记过程

时间:2011-10-05 15:10:37

标签: svn tortoisesvn ankhsvn

我有一个单一的存储库。

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

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

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

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

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

  • 创建LibraryX的标签
  • 分支ApplicationA
  • 将分支的ApplicationA上的外部更改为指向标记的LibraryX,并且可能指向特定的修订版本(如果将来有人意外地提交了标记)
  • 创建分支ApplicationA的标签
  • 删除已分支的ApplicationA

声音合理吗?有更好的想法吗?想法?

2 个答案:

答案 0 :(得分:4)

我执行以下操作:

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

其他一些评论:

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

答案 1 :(得分:-1)

  1. 外部标记浪费时间
  2. ApplicationA +分支编辑(修复LibraryX的修订版)svn:外部分支+提交+标记分支中的最后修订为“产品标记”