无需点击的复刻:如何识别软件仓库复刻
软件工程
2020-11-17 v1
摘要
软件“复刻(fork)”的概念随时间发生转变:从导致独立开发线与最终软件产品产生的社区分歧这一(负面)现象,转变为使用分布式版本控制系统(VCS)仓库协作改进单一产品而不相互冲突的(正面)实践。在这两种情况下,参与复刻的 VCS 仓库共享部分共同开发历史。软件复刻研究通常依赖托管平台元数据(如 GitHub)作为何为复刻的真相来源。然而,这些“平台复刻(forge fork)”仅能将平台上创建(例如通过点击平台用户界面上的“fork”按钮)的仓库识别为复刻。代码托管平台(如 GitLab)的日益多样化以及重要开发社区(如并非主要托管于任何单一平台的 Linux 内核)的习惯,令人质疑信赖代码托管平台来识别复刻的可靠性。这样做可能在实证研究中引入选择与方法论偏差。本文中我们探索“软件复刻”的各种定义,试图捕捉现实世界中存在的复刻工作流。我们量化了依据不同定义将在 GitHub 上被识别为复刻的仓库数量的差异,证实仅考虑平台复刻会忽略大量仓库。我们研究复刻网络的结构与规模,观察其如何受所提定义影响,并讨论对实证研究的潜在影响。
引用
@article{arxiv.2011.07821,
title = {Forking Without Clicking: on How to Identify Software Repository Forks},
author = {Antoine Pietri and Guillaume Rousseau and Stefano Zacchiroli},
journal= {arXiv preprint arXiv:2011.07821},
year = {2020}
}