我目前在托管的Web服务器上有一个svn存储库。我在本地工作,将我的更改提交到服务器上的存储库,然后当我准备好推送更改时,通过我的实时文件夹中的ssh运行“svn update”。
我现在正在添加一个暂存站点,该站点将驻留在同一台服务器上。它只是同一台服务器上的另一个文件夹。
问题是我将在登台服务器上对网站进行稍微大一些的更改,这可能需要长达一周的测试时间。在此期间,我可能希望对不需要测试的实时网站进行小的修饰。我们来举个例子:
这迫使我跟踪转速并不断更新和恢复。有没有更好的办法?我觉得我应该在这里使用分支和标签,但我不明白到底是什么。
谢谢, 约拿
答案 0 :(得分:9)
我管理一个由5名开发人员组成的开发商店。我们以下列方式为我们的网站使用SVN:
这允许小错误快速通过管道和更大的作业,以便在开发和测试中花费尽可能多的时间。
由于每个开发人员都负责合并他们自己的工作,并且每个合并都包含一小组代码更改,因此它们非常顺利。与使用合并管理器为一组增强功能创建主要增强分支的旧模式相比,它要紧张得多。由于其他开发人员通常会在一组增强功能上协同工作,因此最终会出现合并管理器,他们合并了他们没有编写的代码,这会在合并冲突时变得特别令人沮丧。
事实上,这种方法反映了像Git和Mercurial这样的版本控制系统试图通过如何构建其存储库来推广的方法。使用这些版本控制系统,每个开发人员都有自己的“本地”存储库。当他们想要从另一个“存储库”进行更改时,他们必须将它们与本地代码合并,然后提交有效的“合并”版本。
你也可以像安迪在回答这个问题时提到的那样使用标记。它可能适合您,但我更愿意将合并的责任放在编写代码而不是中央高级开发人员或发布经理的开发人员身上。他们往往会更加顺利。
答案 1 :(得分:1)
正如您已经确定的,最好的方法是使用分支和标记。如何做到这一点的一个很好的例子如下。
重大发展
当您需要进行一些小改变时,您现在可以执行以下操作:
关于颠覆的一本非常好的费用书在这里解释了这一切:
如果你能找到我强烈建议阅读的时间。