一句话:本文通过大规模分类与访谈,揭示 GitHub 上 hard fork 多由 social fork 演化而来,且对其看法已转向积极。
分布式版本控制系统与 GitHub 等社交编码环境改变了 fork 的含义:传统 hard fork 指拆分出独立开发分支,常被视为可能分裂社区;而社交编码中的 social fork 则被鼓励用于贡献。本文重新审视 hard fork,在 GitHub 上识别、研究和分类了 15,306 个 hard fork,并访谈了 18 位 hard fork 或被 fork 仓库的所有者。研究发现,hard fork 常常并非刻意规划,而是从 social fork 演化而来;同时开发者对 hard fork 的认知已显著改变,越来越常将其视为原项目的积极、非竞争性替代方案。
The notion of forking has changed with the rise of distributed version control systems and social coding environments, like GitHub. Traditionally forking refers to splitting off an independent development branch (which we call hard forks); research on hard forks, conducted mostly in pre-GitHub days showed that hard forks were often seen critical as they may fragment a community Today, in social coding environments, open-source developers are encouraged to fork a project in order to contribute to the community (which we call social forks), which may have also influenced perceptions and practices around hard forks. To revisit hard forks, we identify, study, and classify 15,306 hard forks on GitHub and interview 18 owners of hard forks or forked repositories. We find that, among others, hard forks often evolve out of social forks rather than being planned deliberately and that perception about hard forks have indeed changed dramatically, seeing them often as a positive noncompetitive alternative to the original project.