我们是一家ISV小型商店,通常我们每个月都会发布我们产品的新版本。我们使用Subversion作为代码存储库,并使用Visual Studio 2010作为IDE。我知道很多人都在倡导Mercurial和其他分布式源代码控制系统,但是目前我还不知道如何从中受益,但是我可能是错的。
我们的主要问题是如何使分支和主干保持同步。
这是我们今天的工作方式:
- 发布新版本(在Subversion中自动创建标签)
- 继续研究将于下个月发布的主干
并且该周期每个月重复一次,并且运行良好。当需要发布紧急服务发布时会出现问题。我们无法从主干(2)上将其释放,因为它正在大力开发且不够稳定,无法紧急释放。
在这种情况下,我们将执行以下操作:
- 从我们在步骤(1)中创建的标签创建分支
- 错误修复
- 测试并发布
- 将更改推回主干(如果适用)
我们最大的问题是将这两个(主分支)合并。在大多数情况下,我们不能依靠自动合并,因为例如:
- 主干做了很多改变
- 合并复杂的文件(例如Visual Studio XML文件等)效果不佳
- 另一个开发人员/团队进行了您不了解的更改,您无法将其合并
因此,您认为最好的做法是使这两个不同的版本(分支和主版本)保持同步。你是做什么?