arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2011.07821cs.SE
收藏

无需点击的分叉:如何识别软件仓库分叉

Forking Without Clicking: on How to Identify Software Repository Forks

Antoine Pietri, Guillaume Rousseau, Stefano Zacchiroli

摘要:

随着时间的推移,软件“分叉”的概念已经从社区分歧的(负面)现象转变为使用分布式版本控制系统(Distributed Version Control System,简称DCS)存储库来协作改进单个产品而不会踩到彼此的脚趾。在这两种情况下,参与fork的Linux存储库共享共同开发历史的一部分。对软件分叉的研究通常依赖于托管平台元数据,如GitHub,作为构成分叉的真实来源。然而,这些“forge forks”只能识别为在平台上创建的forks存储库,例如,通过点击平台用户界面上的“fork”按钮。代码托管平台的多样性增加(例如,GitLab)和重要开发社区的习惯(例如,Linux内核,它主要不是托管在任何单一平台上)对信任代码托管平台来识别fork的可靠性提出了质疑。这样做可能会在实证研究中引入选择和方法上的偏见。在本文中,我们将探讨“软件分叉”的各种定义,试图捕捉现实世界中存在的分叉工作流。我们根据不同的定义量化了GitHub上有多少仓库被识别为fork的差异,确认了一个重要的数字可以通过只考虑forge fork而被忽略。我们研究了分叉网络的结构和规模,观察它们如何受到所提出的定义的影响,并讨论了对实证研究的潜在影响。

英文摘要:

The notion of software ''fork'' has been shifting over time from the (negative) phenomenon of community disagreements that result in the creation of separate development lines and ultimately software products, to the (positive) practice of using distributed version control system (VCS) repositories to collaboratively improve a single product without stepping on each others toes. In both cases the VCS repositories participating in a fork share parts of a common development history. Studies of software forks generally rely on hosting platform metadata, such as GitHub, as the source of truth for what constitutes a fork. These ''forge forks'' however can only identify as forks repositories that have been created on the platform, e.g., by clicking a ''fork'' button on the platform user interface. The increased diversity in code hosting platforms (e.g., GitLab) and the habits of significant development communities (e.g., the Linux kernel, which is not primarily hosted on any single platform) call into question the reliability of trusting code hosting platforms to identify forks. Doing so might introduce selection and methodological biases in empirical studies. In this article we explore various definitions of ''software forks'', trying to capture forking workflows that exist in the real world. We quantify the differences in how many repositories would be identified as forks on GitHub according to the various definitions, confirming that a significant number could be overlooked by only considering forge forks. We study the structure and size of fork networks , observing how they are affected by the proposed definitions and discuss the potential impact on empirical research.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑