在SVN repo中对多个标签应用修复

时间:2014-10-02 02:48:15

标签: svn

背景

我们有共享代码库,我们必须维护多个版本(某些遗留应用程序只能使用这些库的旧版本)。它们存在于自己的仓库中,并通过svn:externals导入到需要它们的应用程序中。最近,我们不得不对所有正在使用的版本应用安全补丁。

问题

从回购结构的角度来看,将回顾性补丁应用于旧标签的最佳方法是什么?我选择这样做的方式(如下所述)是否会产生任何不利影响?

我当时选择这样做的方式是:

  1. 对/ trunk和commit进行更改(这是一个相对较小的更改)。
  2. 标记为最新版本(正常情况下)。
  3. 对于要维护的每个旧标签
    1. 将工作副本切换为标记
    2. 合并更改(主要是/ trunk @HEAD)并根据需要进行修改。
    3. 将本地更改标记为 major.minor.1 (因此,/ tags / 1.3将被svn复制到/tags/1.3.1)。
  4. 这有效地链接了标签。由于我们没有为每个 major.minor 版本维护一个永久分支,这似乎是唯一的方法。

1 个答案:

答案 0 :(得分:1)

对于每个标记,我会对具有标记的主干版本执行svn updatesvn switch,并且会从该点创建分支。

然后我会完成从主干到每个分支的樱桃选择合并,以获得后端所需的几个补丁。

然后,我会从每个分支标记。

这样,没有标签被修改,您仍然拥有准确的历史记录和一整套标签。

如果你将某个分支命名为一般(例如1.2.x),那么如果你有将来的后端修复,那么也可以进入分支以节省你创建另一个。