一句话:提出 Infox,通过代码聚类与信息检索自动识别 fork 中未合并的功能特性,并为活跃 fork 生成概览。
基于 fork 的开发在开源社区和工业界被广泛采用,但当 fork 数量众多时,开发者难以了解各 fork 的活动,现有工具帮助有限。本文提出 Infox,自动识别 fork 中尚未合并的功能特性,并生成项目活跃 fork 的概览。该方法结合代码分析与网络分析技术对内聚的代码片段进行聚类,再利用信息检索技术为聚类生成关键词标签。在已知功能特性集合上,聚类达到 90% 的准确率;用户研究进一步表明,Infox 能为 fork 开发者提供可操作的洞察。
Fork-based development has been widely used both in open source communities and in industry, because it gives developers flexibility to modify their own fork without affecting others. Unfortunately, this mechanism has downsides: When the number of forks becomes large, it is difficult for developers to get or maintain an overview of activities in the forks. Current tools provide little help. We introduce Infox, an approach to automatically identify non-merged features in forks and to generate an overview of active forks in a project. The approach clusters cohesive code fragments using code and network-analysis techniques and uses information-retrieval techniques to label clusters with keywords. The clustering is effective, with 90 % accuracy on a set of known features. In addition, a human-subject evaluation shows that Infox can provide actionable insight for developers of forks.