On 10/03/2017 12:16 AM, intrigeri wrote: > Hi, > > Steve Beattie: >> On Sat, Sep 30, 2017 at 07:50:56AM +0200, intrigeri wrote: >>> One thing I've noticed is that the way changes are backported from >>> master to older branches (i.e. tons of cherry-picks) makes history >>> hard to analyze, i.e. it's very hard to tell "what do we have in >>> master but not in apparmor-2.11". One way we fix that problem in other >>> projects is to fork topic branches not off master, but off the oldest >>> maintenance branch the topic branch is a candidate for, and then we >>> merge the topic branch into all candidate maintenance branches, no >>> cherry-pick involved, no commit duplication, and history becomes more >>> useful :)
Hrmmm this is problematic. Many patches come out of development and then end up being backported/reworked as fixes for older releases. > >> Do you have a smallish example git tree you can point to? > > I'm afraid not. I could cook one if the above explanation is > not sufficient. > >> I want to make sure it looks nothing like what upstream php does[1], >> which makes it nearly impossible to tease out how a patch was >> cherry-picked for a specific newer branch[2], > > [...] > >> [1] http://git.php.net/?p=php-src.git > >> [2] For a specific random example: https://bugs.php.net/bug.php?id=74111 >> aka CVE-2017-12933. Original commit is >> >> http://git.php.net/?p=php-src.git;a=commit;h=f8c514ba6b7962a219296a837b2dbc22f749e736 >> which got applied to the php 5.6 branch and then >> merged forward onto the php 7.x branches... but possibly as >> >> http://git.php.net/?p=php-src.git;a=commit;h=3a25a56a92ac1d0d6028a8ecd32ccf03bcd71ade >> ? However, doing 'git tag --contains' on >> f8c514ba6b7962a219296a837b2dbc22f749e736 and >> 3a25a56a92ac1d0d6028a8ecd32ccf03bcd71ade shows both commits in >> the 7.0.22 tag... so what actually applies to 7.0? Attempting to >> use tig to visualize what's happening just leads to nonsense. > > So apparently that commit was cherry-picked into the 7.x branch *and* > the 5.x branch was merged into 7.x, which results in a duplicate > commit on 7.x, that's indeed totally confusing. IMO one should either > cherry-pick or merge forward, but doing both gives the worst of both > worlds. This is not what I'm proposing. Instead, I'm suggesting we do > merge forward only and essentially forget that cherry-pick exists. > I don't see how that would work. Often the code is different enough that merging forward just doesn't work, and cherry-picked patches are more of backported patches. At which point you are now doing backports and forward merges which isn't what you want. -- AppArmor mailing list AppArmor@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor