一句话:实证研究 GitHub 项目 fork 低效差异,发现模块化与集中管理关联更多贡献、更高 PR 接受率。
Forking 与 pull request 已成为开源社区统一的开发与贡献机制,让开发者可先在自己的 fork 中自由修改而不影响他人,再尝试回馈上游。然而并非所有项目都能高效使用 fork,许多项目遭遇贡献丢失、重复贡献和社区碎片化等问题。本文探究 GitHub 开源项目在 forking 低效方面的差异。作者首先观察到不同社区经历这些低效问题的程度差异很大,并通过访谈实践者理解原因;随后使用多元回归建模分析哪些上下文因素与更少的低效相关。研究发现,更好的模块化和集中化管理与更多贡献以及更高比例的已接受 pull request 相关,提示项目维护者可采取具体最佳实践来减少社区中与 forking 相关的低效。
Forking and pull requests have been widely used in open-source communities as a uniform development and contribution mechanism, giving developers the flexibility to modify their own fork without affecting others before attempting to contribute back. However, not all projects use forks efficiently; many experience lost and duplicate contributions and fragmented communities. In this paper, we explore how open-source projects on GitHub differ with regard to forking inefficiencies. First, we observed that different communities experience these inefficiencies to widely different degrees and interviewed practitioners to understand why. Then, using multiple regression modeling, we analyzed which context factors correlate with fewer inefficiencies.We found that better modularity and centralized management are associated with more contributions and a higher fraction of accepted pull requests, suggesting specific best practices that project maintainers can adopt to reduce forking-related inefficiencies in their communities.