SVN 分支是主干的副本,除了一个修订版

SVN branch that's a copy of the trunk except for one revision

我们有一个功能需要在完善时从生产(主干)副本中禁用。它在修订版 22 中被禁用,相关菜单和按钮变灰并添加了一些被禁用功能的文本解释。

我们想创建一个重新启用该功能的分支,用于测试和有限的生产目的。我们可以通过 'undoing' 或 'deleting' 修订版 22 的更改来有效地做到这一点,但我们现在只想在分支上执行此操作,并希望在主干上禁用该功能。

trunk 自 rev 22 以来继续向前发展,但此后的更改不太可能与禁用代码冲突。

除了没有修订版 22 的更改之外,获得与主干匹配的分支的最简单方法是什么?其次,是否可以在更新主干时根据需要更新分支以匹配主干,同时仍然保持没有 rev 22 的分支?

最终我们将在主干上重新启用此功能,从主干本身删除 rev 22 更改。我们打算将此分支作为一种临时方式,以便尽早进行内部使用,同时在主干上保持禁用该功能(修订版 22 的目的),直到该功能准备就绪。

所以你要做的是在它当前所在的主干上创建一个分支(根据你的解释,我假设你想要主干中的所有东西,除了这个特定的修订版)。

然后一旦你把你的分支从主干中分离出来

  1. 对您的新分支执行 svn switch,或
  2. 签出不同目录中的新分支。

你的选择。

然后右键单击您检出的文件夹并转到 TortoiseSVN > 显示日志。打开日志后,您应该会看到直到创建此分支为止的修订历史记录。如果您没有看到完整的历史记录,请取消选中 Stop on copy/rename.

然后就是简单地转到日志中的修订版 22,右键单击它,select Revert changes from this revision。然后你应该在你的工作副本中修改文件。这一步之后:

  • 在您满意后将这些更改提交到您的新分支。
  • 在此分支上做任何你需要的开发。
  • 完成后合并回后备箱。
  • 利润。

关于你的第二个问题,是的。您可以在开发过程中定期执行 svn merges 以使您的分支保持最新。在 TortoiseSVN 中是 TortoiseSVN > 合并...