我只有一个存储库。
假设我有跨项目共享的 LibraryX。
假设 ApplicationA(以及其他)使用 LibraryX 并将其作为外部引用。
在开发 ApplicationA 时,我也可能对 LibraryX 进行修改。
假设对 ApplicationA 和 LibraryX 都进行了更改,现在我正在发布。
请告诉我您是否同意/不同意以下流程,和/或告诉我您将采取哪些措施来改进它:
- 创建 LibraryX 标签
- 分支机构申请A
- 更改分支ApplicationA上的外部以指向标记的LibraryX,也许还指向特定的修订版(以防将来有人意外提交该标记)
- 创建分支ApplicationA的标签
- 删除分支的ApplicationA
听起来合理吗?有更好的想法吗?想法?
最佳答案
我执行以下操作:
- 我总是在特定版本中引用该库。如果库发生变化并且我希望在我的应用程序中进行更改,那么我会更新外部定义。
- 在发布时,我创建应用程序的标签。我不需要采取额外的步骤,因为引用了该库的特定修订版。
一些附加评论:
- 有时我不会引用库的特定版本(因为我太懒了),但我知道这些修订版将来将无法使用。如果您意识到这一点,您就可以做出这个决定。但是,在创建标签之前,我总是卡住库引用。
- 有时我会创建一个分支而不是标签,这样我就可以修复一些错误,同时继续开发下一个版本。最终我为这个分支创建了一个标签并删除该分支。 (也许我创建了多个标签,但分支总是在最后被删除。)
- 我删除分支是因为我仅将分支用作短期实体:功能分支或发布分支来稳定版本。我不需要保留分支,因为标签是我感兴趣的版本。
- 如果我需要修复标签中的错误,那么我首先创建一个分支。修复错误并创建新标签(并删除分支)。
- 如果需要在库中修复错误(尽管有点复杂),则同样适用:在分支中,您可以更新到最新的库(如果可能),或者创建引用版本的分支图书馆的。然后,您将外部更改为指向此分支,修复库中的错误,将外部定义卡住到库分支的最新版本,并为应用程序创建一个标签。我通常不会费心为库创建标签,但这也是可能的。不过,我确实删除了库分支:如果再次需要它,您可以根据已删除库分支的最后修订版创建一个新分支。
关于svn - SVN 外部标记流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663531/