Preferred form for making modifications
Preferred form for making modifications
Posted Nov 16, 2018 23:40 UTC (Fri) by JoeBuck (subscriber, #2330)In reply to: Preferred form for making modifications by matthias
Parent article: Bringing the Android kernel back to the mainline
Posted Nov 17, 2018 8:51 UTC (Sat)
by mjthayer (guest, #39183)
[Link] (14 responses)
Posted Nov 17, 2018 11:40 UTC (Sat)
by matthias (subscriber, #94967)
[Link] (13 responses)
The GPL predates much of today's version management systems. The use case "port 2-3 years of kernel development to an ancient kernel with many out of tree changes" was certainly not on the radar, back then. The use cases where like fixing a bug or programming a new feature (not merging a feature from a different branch).
Having the history available would be very nice. But this can only be accomplished by convincing the companies that working together with the community provides some benefits. And without the companies willing to work together, I think, even a git repository with history is not really helpful. How should we integrate code into the mainline, that nobody in the community knows and that is not supported. If we just want to backport some security fixes, the tar ball is not much worse than a full repository. If we want more, we need someone knowing the code who helps with integration.
Posted Nov 17, 2018 17:15 UTC (Sat)
by pallas (guest, #128204)
[Link] (3 responses)
Posted Nov 17, 2018 23:49 UTC (Sat)
by JoeBuck (subscriber, #2330)
[Link] (2 responses)
Posted Nov 19, 2018 4:29 UTC (Mon)
by jeffm (subscriber, #29341)
[Link]
Posted Nov 19, 2018 20:47 UTC (Mon)
by tao (subscriber, #17563)
[Link]
"You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change."
The best way to do this *is* typically to provide a changelog entry, but if you just distribute patches that should be enough; after all patches by their very nature show what files are modified, and assuming that the patch was created when the modification was made, it'll also have the time of change in the patch header.
Posted Nov 18, 2018 3:13 UTC (Sun)
by marcH (subscriber, #57642)
[Link] (1 responses)
There isn't really one thing such as "the" history, it's a continuum and any line drawn would be in an arbitrary place. Should it be possible to access every version that was ever tested by some internal Trybot / 0day even before getting approved and merged internally? There's a lot of value in test results after all. Going even further, should it possible to get every version that is in the developer's reflog? If it was committed at some point then it must have some value. Getting inside the thought process of a good developer is surely a useful learning experience, observing mistakes made helps not repeating them.
BTW *open-source* developers rewrite history, that's part of the public review process. Sometimes some of these git histories get lost!
> But this can only be accomplished by convincing the companies that working together with the community provides some benefits. And without the companies willing to work together, I think, even a git repository with history is not really helpful.
This is the best summary.
Posted Nov 18, 2018 11:15 UTC (Sun)
by emj (guest, #14307)
[Link]
Thanks for the links! At work I've started keeping tracking every branch and all the rebases and squashes. It helped me immensly once and I suspect if there were tooling for keeping the history for both WIP repos and "official" gitseries repos in the same repo I could solve a lot more problems.
Posted Nov 19, 2018 22:16 UTC (Mon)
by cyphar (subscriber, #110703)
[Link] (5 responses)
This is somewhat incorrect (depending on your interpretation of "history" in this context). ยง2a of GPLv2 states:
> You may modify your copy or copies of the Program [...] provided that you also [...] must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
Unfortunately it appears most people have forgotten this part of the GPL. There was a big argument several years ago when RedHat decided to start providing big patch-blobs rather than individual patches, but it seems the community has settled that this is "okay". But just providing a tarball with a modified kernel isn't full compliance with the GPLv2.
Posted Nov 20, 2018 2:16 UTC (Tue)
by pizza (subscriber, #46)
[Link] (4 responses)
That said, a simple tarball of modified sources is arguably another matter -- while perhaps a technical violation, IMO using that alone as the basis for accusing someone of GPL violations is ludicrous -- but there exists a modern [1] tool called 'diff' which makes it a fairly trivial exercise to determine what has changed versus the original, unmodified sources.
[1] First released all the way back in 1974
Posted Nov 20, 2018 6:55 UTC (Tue)
by mjthayer (guest, #39183)
[Link] (3 responses)
Posted Nov 20, 2018 7:04 UTC (Tue)
by mjthayer (guest, #39183)
[Link] (1 responses)
Posted Nov 20, 2018 11:54 UTC (Tue)
by nix (subscriber, #2304)
[Link]
should suffice, more or less -- or, alternatively, instead of the rebase you can git checkout the new kernel version and do a git cherry-pick onto it. (In non-ancient versions of git these end up using exactly the same machinery for application, even if you cherry-pick a range.)
Posted Nov 21, 2018 17:39 UTC (Wed)
by tao (subscriber, #17563)
[Link]
Posted Nov 27, 2018 7:54 UTC (Tue)
by nhippi (subscriber, #34640)
[Link]
Chromium OS has excellent Git repos, with relatively well enforced commit message, bug tracker and CI testing results available in open, and still you will be overwhelmed easily in forest of trees with numerous branches... Any internal repo would need lots of institutional knowledge to understand what is going on.
Posted Nov 17, 2018 19:37 UTC (Sat)
by Otus (subscriber, #67685)
[Link] (4 responses)
I definitely often rely on git blame and git log to understand what and why a piece of code is trying to do. IMO git history and commit messages are comparable to comments. Though I have no idea whether stripping those before distribution is ok.
Posted Nov 17, 2018 21:21 UTC (Sat)
by matthias (subscriber, #94967)
[Link] (3 responses)
Posted Nov 17, 2018 21:39 UTC (Sat)
by Otus (subscriber, #67685)
[Link] (2 responses)
Removing git history is clearly at least tolerated.
Posted Nov 17, 2018 21:56 UTC (Sat)
by matthias (subscriber, #94967)
[Link] (1 responses)
Posted Nov 19, 2018 18:12 UTC (Mon)
by jezuch (subscriber, #52988)
[Link]
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
https://public-inbox.org/git/70ccb8fc-30f2-5b23-a832-9e47...
https://github.com/git-series/git-series
So shouldn't these open-source developers be forbidden to "unpublish" and unshare these? It's GPL code after all </devil's advocate>
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
cd original-kernel-repo; git apply --index blob; git commit -m "Blob patch"; git rebase new-kernel-version
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications
Preferred form for making modifications