gav*_*koa 8 git mercurial branch dvcs bazaar
如果我们发现某些分支中的错误,我们会修复它(请查看图片上的新版本).但我们也有兴趣将此修复程序移动到旧版本和主要开发分支:
a-->b-->c (Old release) | A-->B-->C-->D (Main release) | 1-->2-->bugfix-->4 (New release)
svn记得在svn:merge属性(来自svn 1.6,2009)哪个版本合并到哪个分支.因此,下次如果您合并修订区域,则会从合并修补程序中跳过先前合并的修订.
如何应对现代DVCS?
我需要制作普通补丁并将其应用到每个分支机构或DVCS存在一些帮助吗?
注意:我不能将New branche 合并到Main,因为之前的更改集也会移动到Main branche.
Rebase也不可能,因为许多开发人员都会发布新版本.
我有兴趣回答命名的braches模式和多存储库模式.
PS. Andy建议找到bug影响的所有分支的公共父级,更新它,对bug进行修复并将修复移动到受影响的分支.
通过更新到旧的变更集并进行更改,您可以创建新的分支.我建议创建命名分支(将其命名为bugID),以便稍后您可以轻松返回它.
找到我们有兴趣修复bug的所有分支的共同父母都有问题.
第一个解决方案(建议Andy)使用$ hg/git/bzr blame并仔细检查所有受影响文件的输出.这涉及到对第一BUG修复了一些最新的变更你找到之前怪什么变更引入的错误.然后,您需要将rebase fix(patch)修改为常见的父更改集.
另一个解决方案是使用$ hg/git/bzr bisect(您也可以手动执行更新以查找引入了错误的第一个修订版).这可以是扩展但更真实的解决方案,因为允许将bug修复到任何存在bug的分支.
我认为最好首先找到第一个BAD变更集,然后修复一个错误,而不是先修复一个错误然后找到第一个BAD变更集(除非您已经知道如何修复bug).引入差异也有助于理解它为什么会发生.
PPS.对于错误,很清楚哪个分支实现允许合并更改到任何受影响的分支.
如果询问从开发分支到发布分支的后端功能如何有趣的问题.如您所见,您必须在发布分支之前的changeset开始提交功能更改集.但是当你开发功能时,你可能不知道你需要哪种后端功能.使用svn:merge VCS记住你所有的backports.DVCS怎么样?
你可以:
寻找共同的父母.感谢Novelocrat这一步.
git merge-base branch1 branch2 branch3 ...
结帐共同的父母
git checkout A
创建新的分支来修复错误
git checkout -b bugFix
修复错误并将其提交到bugFix分支
需要修复bug的Checkout分支
git checkout branchToApplyFixTo
将bugFix合并到分支中
git merge bugFix
归档时间: |
|
查看次数: |
453 次 |
最近记录: |