所以我使用Subversion作为我维护的经典ASP webapp的SCM。我们使用功能分支来处理具有依赖性或长期开发的更改。
我们使用共享Web服务器进行Dev / QA,这就是我的问题所在。中央开发服务器是trunk的工作副本,然后当我需要从功能分支看到Dev的更改时我将它们合并到开发工作副本。到目前为止一切都那么好,但是我是否正在为自己的未来做好准备?
例如,今天一位分析师告诉我,我可以“删除”我对某个功能所做的更改然后合并到Dev网站进行演示 - 不是因为该功能被杀,只是因为他没有需要再看一遍了。我意识到我不能轻易做到这一点。我现在合并的更改只是显示为Dev工作副本的本地修改,我不能轻易将它们删除(我必须手动还原对受影响文件的更改,因为完全恢复可能/会杀死与之相关的更改其他功能)。
我写的越多,我就越觉得我已经回答了自己的问题。我是否需要更改分支策略 - 按环境分支?或者我是否需要为每个分支设置一个单独的“共享开发”站点(dev.mysite.com:4801,dev.mysite.com:4802)?或者这就是你如何处理这个?
答案 0 :(得分:1)
如果要删除的功能完全包含在一个特定修订中,则在与主干相关的任何分支上,您应该能够在主干分支的工作副本上对该特定修订进行反向合并。看一下"svn merge"命令的选项。根据此页面,您应该能够发出如下命令:
svn merge -c -Revision YourDevBranch YourWorkingCopy
这应该从您的主干工作副本中删除一个原始提交到分支的修订。
但是,如果问题与仅在一个修订中提交的几个功能相关,即使在原始开发分支中,那么我想唯一的选择是手动删除修改。