If "at the last moment" is during system testing, and you don't want to repeat it, then I'd say that you just disable the feature and ship it anyway.
We have done this in the past; removing the feature can be too risky in terms of creating additional bugs. If you don't want the feature any more (for example, the requirement has gone away, or the implementation has been decided to be incorrect), then it is probably better in terms of risk to just switch it off with minimum code changes.
I mean, remove or hide UI elements which enable the feature, then users won't know it's there (provided it's turned off by default).
Hopefully during a future release there will be an opportunity to refactor that part of the code and either remove the feature or reintroduce it properly.
否则,您可以从命令行进行反向合并。反向合并会创建一个新修订版,该修订版是 HEAD 修订版减去您反向合并的修订版中的更改,因此您始终可以“反向反向”合并。 SVN 在这方面就很棒。
If you're using TortoiseSVN as a client, it has a "roll back changes from this revision" right in the context menu.
Simply show the log on the working copy, and choose the revision that you wish to reverse-merge (in the case, the revision that represents where you merged in the feature branch).
Otherwise, you can do a reverse merge from the command line. Reverse merging creates a new revision that is the HEAD revision minus the changes from the revision that you reverse-merged, so you can always "reverse reverse" merge. SVN is great that way.
发布评论
评论(2)
这取决于您放弃该功能的原因。
如果“最后一刻”是在系统测试期间,并且您不想重复它,那么我会说您只需禁用该功能并无论如何发布它即可。
我们过去曾这样做过;删除该功能可能会产生额外的错误,风险太大。如果您不再需要该功能(例如,需求已消失,或者已确定实现不正确),那么就风险而言,通过最少的代码更改将其关闭可能会更好。
我的意思是,删除或隐藏启用该功能的 UI 元素,那么用户将不知道它的存在(假设它默认关闭)。
希望在未来的版本中,将有机会重构这部分代码,并删除该功能或正确地重新引入它。
It depends why you dropped the feature.
If "at the last moment" is during system testing, and you don't want to repeat it, then I'd say that you just disable the feature and ship it anyway.
We have done this in the past; removing the feature can be too risky in terms of creating additional bugs. If you don't want the feature any more (for example, the requirement has gone away, or the implementation has been decided to be incorrect), then it is probably better in terms of risk to just switch it off with minimum code changes.
I mean, remove or hide UI elements which enable the feature, then users won't know it's there (provided it's turned off by default).
Hopefully during a future release there will be an opportunity to refactor that part of the code and either remove the feature or reintroduce it properly.
如果您使用 TortoiseSVN 作为客户端,它的上下文菜单中会显示“回滚此版本的更改”。
只需在工作副本上显示日志,然后选择您想要反向合并的修订版(在本例中,即代表您在功能分支中合并的位置的修订版)。
替代文本 http://img64.imageshack.us/img64/9053/svnreversemerge.png< /a>
否则,您可以从命令行进行反向合并。反向合并会创建一个新修订版,该修订版是 HEAD 修订版减去您反向合并的修订版中的更改,因此您始终可以“反向反向”合并。 SVN 在这方面就很棒。
If you're using TortoiseSVN as a client, it has a "roll back changes from this revision" right in the context menu.
Simply show the log on the working copy, and choose the revision that you wish to reverse-merge (in the case, the revision that represents where you merged in the feature branch).
alt text http://img64.imageshack.us/img64/9053/svnreversemerge.png
Otherwise, you can do a reverse merge from the command line. Reverse merging creates a new revision that is the HEAD revision minus the changes from the revision that you reverse-merged, so you can always "reverse reverse" merge. SVN is great that way.