3

我们使用SVN进行版本控制。主要开发工作在中继线中完成,并且在适用于每个用户的情况下创建分支(当预期的更改很复杂时)。修复标记版本中的错误(subversion)

不时地,测试版本被标记(例如到/tag/v0.4)。

然而,可能会发生某个严重错误在中继(在其他开发期间)的某个时间修复的情况。

现在我想创建一个标签/tags/v0.41这是一样的/tags/v0.4但只有固定的这个单一严重错误(可能多处严重错误,但肯定不是一切从trunk)。

如何继续使用TortoiseSVN?

我建议是这样的:

  1. /tags/v0.4创建一个分支(svn copy)至/tags/v0.41
  2. 合并适用的变化从中继/tags/v0.41并提交。

但这是一个好主意吗?

我该怎么做,从具体干线版本(没有别的),以/tags/v0.41合并?事实上,这不会是一个标签,而是一个不太好的分支......

回答

5

你列出的程序是正确的。

需要创建分支以确保只有针对特定错误的修复被提交到新的稳定版本(至中继),并且没有额外的(可能中断的)功能从开发中错误地移植版。

  • 搜索树干的承诺是明确解决您 发现的bug,

  • 从它创建一个补丁并将其应用到/tags/v0.41工作副本 (或仅将需要的中继修订合并到/tags/v0.41 工作副本)。

注意:如果有多个提交或没有承诺,只是修复了这个bug不接触任何东西,你必须手动的代码中的相关行复制到新的标记版本!

+0

嗨,谢谢!还有两个问题:1)所以我不需要分支,或者我?我签出/tags/v0.4,将修补程序和签入应用到/tags/v0.41?还是我混合了? 2.)使用补丁而不是任何合并来做到这一点真的是正确的吗?我在手册中读到应该避免修补程序,因为它会中断文件/修订之间的连接。但也许这与此处不相关... – divB 2012-07-19 11:39:43

+0

@divB是的,事实上,它合并更正确,只要你有一个或多个修正,只是修复了错误,没有别的(在其他情况下,你需要手动编辑文件)。您需要结帐/tags/v0.4,合并(或应用该补丁,请参阅上文)仅从主干中获得必需的修订,并从工作副本创建新的/tags/v0.4.1分支。 (分支机构需要分离您发布的每个版本的代码,所以1)如果您将来需要再次检索该版本的代码,则不必搜索日志,2)您不需要混合稳定和alpha代码)。 – 2012-07-19 13:08:39

相关问题