使用以下任一方法实现以下工作流程的首选方法是什么Git
or Subversion
(我更感兴趣的是Git
版本,但比较肯定会有用):
这是所描述案例的一个小伪图解。请注意,顶部的所有内容都会带来树之间的差异release-2.0.x
和当前的master/trunk
and 导致合并问题(否则我可以简单地合并critical-feature
并避免写这个问题:)
(features added since 2.0.x, which
should not be backported)
^ ^ ^
| | | (code refactorings done
| | | in master/trunk)
\ | / (*) (*) (*)
-------------------------------------------------------> master/trunk
| |
| |
| |
\ release-2.0.x \ critical-feature
(should be backported)
问题:
-
从以下位置执行功能向后移植的最佳方法是什么?VCS
看法?
-
这应该作为一个简单的merge
对应的critical-feature
具有解决冲突的分支?
-
或者应该这样做cherry-pick
提交的,它合并了critical-feature
into master/trunk
什么时候完成?或者甚至可以作为一组cherry-picks
对于中的每个提交critical-feature
branch?
-
您能为冲突解决程序提供一些建议吗?如果当前之间的差异应该怎么办release-2.0.x
and master/trunk
如此巨大,以至于“天真的”向后移植会由于代码重构和缺少功能或功能而导致大量冲突API
,这是在之后添加的release-2.0.x
?
-
Does Git
or Subversion
除了标准合并或挑选方法之外,还有其他具体内容可以为此例程提供吗?我猜可能是rebasing当冲突数量巨大时,这不会有帮助,但是,显然,我可能是错的。
向后移植的所有想法features对我来说看起来很糟糕。仅应向后移植关键且非破坏性的更改。对于功能和改进,您必须创建新分支并开始稳定期。
查看 Apache Subversion 项目本身使用的发布流程:https://subversion.apache.org/docs/community-guide/releasing.html#release-stabilization https://subversion.apache.org/docs/community-guide/releasing.html#release-stabilization
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)