git merge - git cherry-pick being ancestor-aware, not just applying a patch? -
it sure nice if merge-like cleverness , awareness of common ancestors available in cherry-pick. possible?
suppose have situation. have development commits made dev , cherry-picked release. [1]
x----y---a1---a2---b---z dev \ \----b' release a1: remove function foo() a2: re-add function foo() (ooops, needed) , change function bar() (a1 , a2 listed becuase 2 commits, attempts, fix same bug.) b: modify function foo() b': b cherry-picked release branch x, y, z: changes touching unrelated files. no conflicts here. now want cherry-pick a1 , a2 release branch. obviously, cannot cherry-pick them because there conflict on deletion/modification of foo().
but smart person see how a1 , a2 delete , re-add foo() , how can indeed merged release branch. , make algorithm take commits dev occur after a1,a2 in release, go commit before that, , re-apply a1, a2, b in order applied dev take final state of files , put after b' on release branch. (because on release branch, no history modification ever allowed.)
and that's fine , well, gets hairy pretty quickly. sure nice if merge-like cleverness , awareness of common ancestors available in cherry-pick. possible?
steve
[1] know think ridiculous. please don't bother telling me that. honestly, more complicated think , there reasons it. have tried keep things simple question , it's not in anybody's best interest have multi-page explanation of why, in case, right thing do.
Comments
Post a Comment