这种情况:我们推测试和1.0版已经发布到几个客户的网站。团队已经繁忙的工作在1.1版,将增量错误修正和可用性调整,而另一个团队工作上的版本2.0的大规模变化,其中的核心产品可能已完全重新设计。现在,大多数变化为1.1将必须使他们进入2.0在某些时候,一些错误的修正造的2.0分支可能会在事实上需要计划更早释放。问题是,由于2.0具有根本的分歧,没有改变从1.1可以合并在没有手工转换,也反之亦然。

我的问题:什么是最好的版本控制措施合并,以尽量减少冲突和重复工作,在这种情况?我怎么能保证我的团队花点时间和努力尽可能在修订管制问题,同时仍然提供定期增补程序的客户?

有帮助吗?

解决方案

一个好的方法是解决各个错误,在稳定和合并的稳定分纳入发展分支。这是的 平行维护/开发行 图,关键是要合并的早期和经常。合并频繁度一般不高,而且迟意味着,发展分支是无法辨认相比,稳定的一个或错误不再重复同样的方式。

颠复 包括合并跟踪,因为1.5版所以你保证,同样的改组不合并的两倍,造成愚蠢的冲突。其他的系统存在(例如 Git, 善变的, Accurev, 必然)就让你做查询的类型"是什么变化分支的一个尚未合并成分B的吗?"cherry-pick的修你需要的开支。

其他提示

该文章 在这里, (每日与颠复)提到的方法之一是不断地更新版本2的数据从1.1版本建立。在文章,那家伙说到这样做的每一天。

这部分你会想读的标题是"服务员,还有一个错误我干!".这是大约一半,虽然该条款。

我可能会依靠一个问题跟踪系统,为此目的,并确保以标记每一个变化,需要提前进后备箱码。然后你可以确保检查在评论对每一个变化的参考的相关问题,并明确表达的目的代码的更改,以便它可以很容易地理解当试图重新实现在后备箱。

几乎什么每个人都有说,但我想我会扔在我的经验,处理发展在多个分支机构使用SVN

与我们的主要产品,我们需要同时发展在2+版本在同一时间。

我最初使用的主干线作为"主要发展"的版本,与标签用于每一个实际的释放。分支机构被用于大量发展努力的一个新的功能设置。然后,当我们开始工作月2、3和4版本在一段时间我开始使用一个分支对每个修订。

自我维持的仓库还处理推动QA生,我要确保做到的"汇总"每天早晨-其中包括合并改变了该树起最低的当前活动的分支。所以我最终合并的变化,从1.1到1.2,其合并为1.3与任何其他改变,从1.2自最后一次合并,等等。

当我承诺,我一定要始终意见提交喜欢的东西

合并1.1转5656-5690

它可以是一个有点痛苦,但是它的工作原理:)

合并初,合并往往,并确保QA主线上知道和倒退/验证的缺陷,固定在每个补丁的维护稿。

这真的很容易让我们的东西溜出去"unfix"一个错误在随后释放,并让我告诉你的客户不要关心如何复杂,它可以得到管理多个分支机构--这是你的工作。

确保你使用源控制系统,支持分支和合并(我有经验必然和SVN,同时必然是更好、SVN是免费)。

我还认为,具有一个单一的负责人进行合并在一个一致的方式有助于确保他们定期发生。它通常是我的一位高级人在我们的团队。

我们的方式处理这在我的工作是要保持躯干分支作为最前沿的代码(即2.0在这种情况下)。你创建的一个分支于1.x代码,使所有修正。任何变化为1。x应该合并(手动,如果需要的话)进后备箱(2.0)的分支。

然后我会坚持认为,1.x开发人员注意的两个修订数的1.x犯和修订的数量为2.0合并在机票的错误。这种方式,它会更容易注意到,如果任何人都忘记了合并他们的变化,而事实上,他们有跟踪这将帮助他们记住。

一个关键点是在拍摄 这张照片 从建立医生:只有合并一方向。

回答的具体问题,许多开发者已经从颠复到饭桶。结账github.com.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top