In the case of open source software development, where contributions build on previous work I would find it more sensible for each copyright holder to hold copyrights on the diffs/deltas he/she contributed, instead of copyrights on files.Unless a contributor created a file, the contribution is a modification.AFAIK, in projects with no CLAs, like the Linux kernel, copyright for contributions from different sources is still handled on a per file basis.Implementing this concept means licensing would have to be integrated into Git/Mercurial/Bazar/Fossil/SVN, and at first it would be more complicated than adding a commented header with the license to each file.What are the reasons (legal, technical, political, customary or otherwise) software licenses are applied to files instead of to diffs/deltas, especially now that version control systems are in wide spread use? Or is this a novel idea?Note 1: Obviously the question does not apply in cases where there are Contributors Licence Agreements, and does not apply to non-FLOS Software.Note 2: I mistakenly asked this on Stackoverflow and since instead of being moved here it was closed, I am asking this question here.Note 3: A diff can be any of the following and more: a change to a single file, changes to multiple files, new files, any combination of the previous.Note 4: The proposal mainly targets 2 situations:Discouraging creation of copylefted forks of copyfree projects for the sole reason of copylefting, accomplished by maintaining both copyleft and copyfree contributions in the same source tree, and filtering based on license.Enable license switching with the approval of all people necessary without anyone extra (e.g.: What if Linus would change his mind and would want to switch the license for Linux from GPLv2 to GPLv2+. Who would he have to track down and ask permission from. Must he ask permission from those whose contributions were discarded?)
Why are FLOSS licences applied to files instead of diffs/deltas?
licensing;open source;version control;versioning
It is mainly for practical reasons that copyright protection is applied on the level of files and not on change-sets.First of all, most of the copyright law and the ideas encased in it stem from an era far before electronic copies existed. In those days there was no effective mechanism to make changes to a copyrighted work and only distribute those changes. What was possible is that person B took the work from person A, made some changes to it and distributed the changed version. So, copyright law was written to regulate those kinds of processes.In addition, many copyright laws impose some minimum amount of originality to the change before the modified version becomes eligible for copyright on its own.As a result, we now have the following situation:A single contribution may not be substantive/original enough to qualify for copyright protection (just renaming a variable may not qualify)If the single contribution is substantive/original enough for copyright protection, then the result of applying the contribution is considered a distinct work for copyright protection, separate from the original work.If a single person makes several small contributions, each of which is not eligible for copyright protection on its own, it is still possible (and even likely) that the final product contains enough material from that one person to give that person a claim to the copyright on that material.With that in mind, your proposal has the following practical problems:As the result of applying all the contributions is considered a copyrightable work under copyright law, allowing different copyright licenses for the different contributions (presuming those contributions are each significant enough) means that each token in a file could be subject to a different copyright license. It will be almost impossible to tell what you will be allowed to do.As many individual contributions are likely to be too insignificant to be copyrightable in their own right, depending on the jurisdiction, it is impossible to attach license terms to those contributions.Taken together, several small contributions from one person give that person a claim to the copyright on the resulting file. The license terms will be those of the original copyright license, because the individual contributions were too small to dictate other terms.