分支机构和共享开发服务器?
因此,我使用 Subversion 作为我维护的经典 ASP Web 应用程序的 SCM。我们使用功能分支来处理具有依赖性或长期开发的更改。
我们使用共享 Web 服务器进行开发/质量检查,这就是我的问题所在。中央开发服务器是主干的工作副本,然后当我需要从功能分支查看开发上的更改时,我将它们合并到开发中工作副本。到目前为止一切都很好,但我是否会为自己的未来做好准备呢?
例如,今天一位分析师告诉我,我可以“删除”对某个功能所做的更改,然后合并到开发站点进行演示——不是因为该功能被终止,只是因为他不需要看到不再这样了。我意识到我不能轻易做到这一点。我现在合并的更改仅显示为开发工作副本上的本地修改,我无法轻松地将它们剥离出来(我必须手动恢复对受影响文件的更改,因为完全恢复可能/会杀死与其他功能)。
我写得越多,我就越觉得我已经回答了我自己的问题。我是否需要更改我的分支策略——每个环境分支?或者我是否需要为每个分支拥有一个单独的“共享开发”站点(dev.mysite.com:4801、dev.mysite.com:4802)?或者这就是你处理这个问题的方式?
So I am using Subversion as SCM for a classic ASP webapp that I maintain. We use feature branching to handle changes that have dependencies or longer term development.
We use shared web servers for Dev/QA, and this is where my question comes in. The central Dev server is a working copy of trunk, and then when I need to see changes on Dev from a feature branch I merge them to the Dev working copy. So far so good, but am I setting myself up for ungoodness down the road?
For example, today an analyst told me I could "remove" the changes I had made to a feature and then merged to the Dev site for a demo--not because the feature was being killed, just because he didn't need to see it anymore. And I realized I could not easily do that. The changes I merged now just show up as local modifications on the Dev working copy and I can't easily peel them out (I'd have to manually revert changes to the affected files, since a full revert could/would kill changes related to other features).
The more I write about it the more I feel like I've answered my own question. Do I need to change my branching strategy--branch per environment? Or do I need to have a separate "shared Dev" site for each branch (dev.mysite.com:4801, dev.mysite.com:4802)? Or is this pretty much how you handle this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您要删除的功能完全包含在与您的主干相关的任何分支上的一个特定修订版中,您应该能够在您的主干分支的工作副本上对该特定修订版进行反向合并。看一下“svn merge”的选项 命令。根据此页面,您应该能够发出如下命令:
svn merge -c -Revision YourDevBranch YourWorkingCopy
这应该从主干工作副本中删除最初提交到分支的一个修订。
但是,如果问题与仅在一个修订版中提交的多个功能有关,即使是在原始开发分支中,那么我想唯一的选择就是手动删除修改。
If the feature you want to remove is exactly and entirely contained in one specific revision, on any branch related to your trunk, you should be able to do a reverse merge of that specific revision on the working copy of your trunk branch. Take a look on the options of the "svn merge" command. According to this page, you should be able to issue a command like this:
svn merge -c -Revision YourDevBranch YourWorkingCopy
This should remove one revision originaly commited to a branch, from your trunk working copy.
However if the issue is related to several features being commited in only one revision, even in the original development branch, then I guess the only choice is to remove the modifications manually.