我在git中维护Redis Sentinel library for Laravel有两个活跃的开发分支:
var dataToPost ={ id : 3, firstName : 'Test', lastName : 'User', username : 'testuser', isApproved : true, isOnlineNow : true, isChecked: true };
var config = {
headers : {
'Content-Type': 'application/json;charset=utf-8;'
}
}
$http.post(thisIsUrl, dataToPost, config).then(......
如上图所示,我分叉 1.x 以适应此库集成的框架的较新版本的重大更改,但我发现自己1.x ... o ———— o —————— o — o — o — o — o ...
↘ ↑ ↑ ↖
2.x (breaking change) — o — o — o — o — o ...
提交或手动复制分支之间的代码,用于更新两个分支中的常用功能。
似乎我永远不能合并这些分支,因为它们每个都包含与另一个分支不兼容的代码。我可以遵循哪些更好的工作流程来减少合并分支之间的常见更改所需的工作量?
答案 0 :(得分:2)
这个古老的问题。分支或不分支。
这里真的没有灵丹妙药。他们必须保持分歧的原因是什么?如果它们意味着永远不会再回到原点,由于类似于新架构的实现,那么有一个原因是你无法在宣布的一段时间之后将1.x迁移到2.x或完全弃用1.x等。 ?
这些通常是必须做出的艰难选择 - 弃用并停止支持较旧或不同的更改,因为与持续合并相关的维护开销,或者只是与它一起使用。只要意识到如果你和它一起生活,你就会把时间花在那些本来可以用在新功能上的开销上。
分支机构保持分歧并且没有计划调和差异的时间越长,您可能会有越多的技术债务让您定期忙碌,并且可能会增长。
我意识到这不是一个解决方案,但我不知道任何其他选择 - 如果你将在没有计划的情况下允许差异将来重新合并它们,将会有差异并且需要不断的维护无论你想做什么都想保持不变。如果不深入了解您的特定项目的细节,我不知道任何其他答案。