2

因此,我将 Subversion 用作我维护的经典 ASP webapp 的 SCM。我们使用功能分支来处理具有依赖关系或长期开发的更改。

我们为 Dev/QA 使用共享 Web 服务器,这就是我的问题所在。中央开发服务器是主干的工作副本,然后当我需要从功能分支查看 Dev 上的更改时,我将它们合并到 Dev工作副本。到目前为止一切都很好,但我是否正在为将来的坏事做好准备?

例如,今天一位分析师告诉我,我可以“删除”我对某个功能所做的更改,然后合并到 Dev 站点进行演示——不是因为该功能被杀死,只是因为他不需要查看它了。我意识到我不能轻易做到这一点。我现在合并的更改只是在 Dev 工作副本上显示为本地修改,我不能轻易地将它们剥离(我必须手动恢复对受影响文件的更改,因为完全恢复可能/会杀死与其它功能)。

我写得越多,我就越觉得我已经回答了自己的问题。我是否需要更改我的分支策略——每个环境的分支?或者我是否需要为每个分支(dev.mysite.com:4801、dev.mysite.com:4802)有一个单独的“共享开发”站点?或者这就是你处理这个的方式?

4

1 回答 1

1

如果您要删除的功能完全包含在一个特定修订版中,那么在与您的主干相关的任何分支上,您应该能够在您的主干分支的工作副本上对该特定修订进行反向合并。查看“svn merge”命令的选项。根据此页面,您应该能够发出如下命令:

svn merge -c -Revision YourDevBranch YourWorkingCopy

这应该从您的主干工作副本中删除最初提交给分支的一个修订。

但是,如果问题与仅在一个修订版中提交的多个功能有关,即使是在原始开发分支中,那么我想唯一的选择是手动删除修改。

于 2011-05-15T21:22:18.710 回答