中文

缺陷修复变体:可视化 GitHub 复刻间独特的源代码变更

软件工程 2022-08-09 v1

摘要

复刻(forking)是开发者在已有项目基础上进行开发时的常见做法。这些复刻产生了变体,它们拥有共同的代码库,但随后根据复刻项目的特定需求朝不同方向演进代码。拥有多个复刻的一个有趣副作用是,能够基于开发者在代码库中修复缺陷的不同代码演进方向之间进行选择。然而,这种去中心化形式的信息难以分析,这是关键问题。在本研究中,我们提出一种可视化方法来分析尚未合并回原始项目的复刻仓库中的活跃变更。我们的可视化展示了多个复刻中的代码提交活动,并突出显示了复刻历史中的缺陷修复提交。虽然每个仓库的提交活动可视化类似于 GitHub 的代码频率视图,但我们的视图仅显示复刻仓库独有的提交。为说明我们可视化的有效性,我们将其应用于两个用例:从不再维护的仓库中识别复刻,以及在复刻中识别缺陷修复。在第一种情况下,我们识别出一个已暂停项目 Obfuscator-LLVM 的复刻;我们的视图在顶部展示了原始仓库及其继续开发的最活跃复刻。在第二种情况下,我们识别出一个 Clipy 项目复刻中的缺陷修复;我们的视图显示最活跃的复刻拥有其自身的缺陷修复,我们可以轻松地在视图中识别出高亮显示的该缺陷补丁。作为一篇新想法论文,我们随后提出了三个研究问题的提纲,以激发我们可视化可能揭示的真实世界用例与目标。我们的可视化原型可在 \textcolor{blue}{\url{https://naist-se.github.io/vissoft2022/}} 获取。

关键词

引用

@article{arxiv.2208.04074,
  title  = {Bug-Fix Variants: Visualizing Unique Source Code Changes across GitHub Forks},
  author = {Daigo Imamura and Takashi Ishio and Raula Gaikovina Kula and Kenichi Matsumoto},
  journal= {arXiv preprint arXiv:2208.04074},
  year   = {2022}
}

备注

Accepted Short Paper to VISSOFT 2022