假设您在一个大型项目中工作,每个版本都针对多个功能。对于每个功能开发,我们可能有不同的功能分支(在 VCS 中)。但是在合并所有功能分支并完成集成之后,说其中一个功能被删除(这在我们的组织中发生的频率比您想象的要高)。此时有没有办法回滚功能?我们通常所做的就是弄清楚所有代码更改并手动回滚。您是否有任何有助于减少这项工作的流程/最佳实践?作为记录,我们有一个带有 subversion 作为 VCS 的 java 项目。
问问题
92 次
2 回答
5
这取决于您放弃该功能的原因。
如果“在最后一刻”是在系统测试期间,并且您不想重复它,那么我会说您只是禁用该功能并发送它。
我们过去曾这样做过;删除该功能可能会产生额外的错误,风险太大。如果您不再需要该功能(例如,该需求已消失,或者已确定实现不正确),那么就风险而言,最好以最少的代码更改将其关闭。
我的意思是,删除或隐藏启用该功能的 UI 元素,然后用户不会知道它的存在(假设它默认关闭)。
希望在未来的版本中,将有机会重构该部分代码并删除该功能或正确重新引入它。
于 2010-02-11T05:38:58.200 回答
1
如果您使用 TortoiseSVN 作为客户端,它在上下文菜单中有一个“从这个版本回滚更改”。
只需在工作副本上显示日志,然后选择您希望反向合并的修订版(在这种情况下,代表您在功能分支中合并的修订版)。
替代文字 http://img64.imageshack.us/img64/9053/svnreversemerge.png
否则,您可以从命令行执行反向合并。反向合并会创建一个新修订版,即 HEAD 修订版减去您反向合并的修订版的更改,因此您始终可以“反向反向”合并。SVN 在这方面很棒。
于 2010-02-11T05:42:07.447 回答