2011-05-11 65 views
2

所以我使用Subversion作为SCM来维护一个经典的ASP webapp。我们使用功能分支来处理具有依赖关系或更长期开发的更改。分支机构和共享开发者服务器?

我们为Dev/QA使用共享网络服务器,这就是我的问题所在。中央Dev服务器是trunk的工作副本,然后当我需要在功能分支上查看Dev的更改时,我合并他们到开发工作副本。到目前为止这么好,但我是否为自己的不愉快感而努力?例如,今天一位分析师告诉我,我可以“删除”我对某个功能所做的更改,然后将其合并到开发人员网站进行演示 - 这并不是因为该功能被杀死,仅仅是因为他没有做到这一点,不需要再看到它了。我意识到我不能轻易做到这一点。我现在合并的更改只是在Dev工作副本上显示为本地修改,我不能轻易将其删除(我必须手动恢复对受影响文件的更改,因为完全恢复可能/会终止与其他特性)。

我越写越多,我觉得我已经回答了我自己的问题。我是否需要更改分支策略 - 每个环境分支?或者我需要为每个分支(dev.mysite.com:4801,dev.mysite.com:4802)设置一个单独的“共享Dev”网站?或者,你几乎可以处理这个问题?

回答

1

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

SVN合并-c -Revision YourDevBranch YourWorkingCopy

这应该删除一个版本的渊源致力于为一个分支,从你的躯干的工作拷贝。

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

+0

好的你是对的,我可以反向合并所做的更改。我从来没有使用过这种类型的合并。我认为这在某种程度上验证了这种方法? – 2011-05-16 16:56:11

+0

是的,这实际上是我的观点:) – yms 2011-05-16 17:04:19