SVN外部标记过程
我只有一个存储库 假设我有一个LibraryX,我在各个项目中共享它 假设ApplicationA(以及其他应用程序)使用LibraryX并将其作为外部引用 在开发ApplicationA的同时,我也可能对LibraryX进行修改 假设ApplicationA和LibraryX都做了更改,现在我正在发布一个版本 如果您同意/不同意以下流程,请告诉我,和/或告诉我您将如何改进:SVN外部标记过程,svn,tortoisesvn,ankhsvn,Svn,Tortoisesvn,Ankhsvn,我只有一个存储库 假设我有一个LibraryX,我在各个项目中共享它 假设ApplicationA(以及其他应用程序)使用LibraryX并将其作为外部引用 在开发ApplicationA的同时,我也可能对LibraryX进行修改 假设ApplicationA和LibraryX都做了更改,现在我正在发布一个版本 如果您同意/不同意以下流程,请告诉我,和/或告诉我您将如何改进: 创建LibraryX的标记 分支应用程序 更改分支应用程序A上的externals以指向标记的LibraryX,或者指
- 创建LibraryX的标记
- 分支应用程序
- 更改分支应用程序A上的externals以指向标记的LibraryX,或者指向特定的修订版(以防将来有人意外提交标记)
- 创建分支应用程序的标记a
- 删除分支应用程序a
- 我总是在特定版本中引用库。如果库发生更改,并且我希望在应用程序中进行更改,那么我将更新externals定义
- 在发布时,我创建了应用程序的一个标记。我不需要采取额外的步骤,因为引用了库的特定版本
- 有时我没有引用库的特定版本(因为我太懒了),但我知道这些修订版在将来将不可用。如果你意识到这一点,你可以做出决定。但是,在创建标记之前,我总是冻结库引用
- 有时我会创建一个分支而不是一个标记,这样我就可以修复一些bug,同时继续下一个版本的工作。最后,我为这个分支创建了一个标记并删除了这个分支。(可能我创建了多个标记,但分支总是在最后被删除。)
- 我之所以删除分支,是因为我只将分支用作短期实体:功能分支或发布分支以稳定发布。我没有必要保留分支,因为标记是我感兴趣的版本李>
- 如果我需要修复标记中的错误,那么我首先创建一个分支。修复错误并创建新标记(并删除分支)李>
- 如果需要在库中修复错误(尽管有点复杂),也同样适用:在分支中,您要么更新到最新的库(如果可能),要么创建库的引用修订版的分支。然后,将externals更改为指向此分支,修复库中的错误,将externals定义冻结为库分支的最新版本,并为应用程序创建标记。我通常不会费心为库创建标记,但这也是可能的。但是,我确实删除了库分支:如果再次需要它,您可以基于已删除库分支的上一个修订版创建一个新分支
为什么要删除分支应用程序A?它不会占用任何额外的空间,直到你开始对它进行更改,如果你要对该版本进行任何错误修复,你将不得不从标签中重新发布它…@nachito Okay。也许保留分支是有意义的。如果您使用svn:externals在特定版本中提取外部内容,则始终建议您。“我总是在特定版本中引用库。”品味和工作流可能有所不同