An Empirical Study of Token-based Micro Commits
本研究针对现有小型变更定义丢失行内token信息的局限,提出基于变更token的微提交概念,通过四个OSS项目实证其特征,并提出用token级信息支撑相关软件工程方法。
2024-05-15 cs.SE
Generating Commit Messages from Git Diffs
提交消息帮助开发人员理解不断发展的代码库。然而,开发人员并不总是正确地记录代码更改。自动生成提交消息将减轻开发人员的负担。最近,许多不同的工作已经证明了使用神经机器翻译的方法来生成提交消息的可行性。这项工作的目的是再现在这一领域的一个突出的研究论文,以及试图通过提出一种新的预处理技术来改善他们的结果。参考神经机器翻译模型的复制能够在相同的数据集上实现稍微好一点的结果。然而,当应用更严格的预处理时,性能显著下降。这表明了当前提交消息生成模型的固有缺陷,这些模型通过记忆某些结构来执行。未来的研究方向可能包括改进diff嵌入和关注特定的提交组。
2019-11-26 cs.SE
From Commits to Confidence: Towards Stability-Informed Risk Assessment in Open Source Software
George Mason University(乔治梅森大学);Queen’s University(女王大学)
本文研究了开源软件项目稳定性与韧性,发现稳定提交模式能反映项目治理和开发流程,提出需结合社区参与等指标进行稳定性导向的风险评估。
2026-01-05 cs.SE
Dynamics of Open-Source Software Developer's Commit Behavior: An Empirical Investigation of Subversion
提交是开源软件版本控制的一个重要操作。最近的研究一直在探索这种操作的统计规律,但很少有这些论文对提交间隔进行实证研究(即,两个连续提交之间的等待时间)。本文从提交间隔分布的角度研究了软件开发人员的集体和个人提交行为,发现1)所分析的项目生命周期和每个版本的项目级提交间隔数据集大致遵循幂律分布; 2)类文件的生命周期和版本级集体提交间隔也可以最好地拟合幂律分布。这些发现揭示了开放源码软件项目的一些一般(集体)协作开发模式,例如,在两次连续提交到中央存储库之间的大多数等待时间都很短,但只有少数提交经历了长时间的等待。然后,我们发现的OSS研究的影响进行了概述,这可以提供一个洞察到更好地理解OSS开发过程中基于软件开发人员的历史提交行为。
2013-11-23 cs.SE
Understanding the Energy Impact of Software Refactoring: A Workload-Aware Study of Controlled Examples and Real-World Commits
Concordia University(康考迪亚大学);Polytechnique Montréal(蒙特利尔高等理工学院)
该研究通过微基准与真实世界基准的大规模实证分析,发现重构的能源影响受工作负载显著影响,现有方法无法可靠识别重构引发的能源回归,需开发更准确的预测技术。
2026-08-10 cs.SE
Commit Messages in the Age of Large Language Models
本研究评估ChatGPT基于代码变更生成提交消息的性能,发现其效果远超专门训练的现有ACMG方法,生成消息准确高质,同时对失效案例进行了分类分析。
2024-02-02 cs.SE
CommitShield: Tracking Vulnerability Introduction and Fix in Version Control Systems
本文提出 CommitShield,融合静态分析与 LLM 的代码及自然语言理解能力,利用提交描述和补丁上下文检测漏洞引入与修复,并在 CommitVulFix 等数据集上显著提升召回率和 F1 分数。
2025-01-07 cs.SE
What really changes when developers intend to improve their source code: a commit-level study of static metric value and static analysis warning changes
许多软件度量被设计用来度量那些被认为与软件质量相关的方面。静态软件度量,例如,规模、复杂性和耦合性被用于缺陷预测研究以及软件质量模型来评估软件质量。虽然这表明了质量和软件度量之间的关系,但它的程度还没有得到很好的理解。此外,最近的研究发现,复杂性度量可能是源代码可理解性的不可靠指标。为了探索这种关系,我们利用开发人员的意图,即什么构成了他们自己代码库的质量改进。我们通过检查提交消息,将来自54个Java开源项目的2,533个提交的随机样本手动分类为质量改进,这取决于开发人员的意图。我们通过预定义的指导方针区分完美和纠正性维护,并将这些数据用作基础事实,用于微调自然语言处理的最先进的深度学习模型。我们使用该模型将数据集增加到125,482次提交。基于由此产生的数据集,我们调查的差异大小和14静态源代码指标之间的变化,提高质量,由开发人员表示,和其他变化。我们发现,质量改善提交比其他提交更小。完美的更改对静态源代码指标有积极的影响,而纠正性更改则倾向于增加复杂性。此外,我们发现,文件的目标是完善的维护已经有一个较低的中位数比其他文件的复杂性。我们的研究结果提供了经验证据,静态源代码度量捕获质量改进从开发人员的角度来看。这对程序理解以及代码气味检测和推荐系统都有影响。
2022-05-30 cs.SE
Context-Encoded Code Change Representation for Automated Commit Message Generation
本文提出一种结合变更代码及其程序依赖的未变更代码的上下文编码表示方法,克服了现有代码变更表示的局限,显著提升了5种最先进自动化提交信息生成方法的性能。
2023-06-26 cs.SE
A Model of the Commit Size Distribution of Open Source
编程中的一个基本工作单元是开发人员对工作中的项目的代码库做出的代码贡献(“提交”)。我们使用统计方法来推导出一个模型的概率分布的提交大小在开源项目中,我们表明,该模型适用于不同的项目规模。我们使用图形和统计方法来验证我们的模型的拟合优度。通过测量和建模编程的基本维度,我们帮助改进软件开发工具和我们对软件开发的理解。
2014-08-21 cs.SE
Mutation Testing in Evolving Systems: Studying the relevance of mutants to code evolution
当软件发展时,引入错误的机会出现了。因此,在每个演化周期中测试演化后的程序行为是非常重要的。我们进行了一项探索性研究,以调查提交相关突变体的性质,即,提交感知突变测试的测试元素,通过提供一般定义和实验方法来识别它们。因此,我们的目标是调查随着时间的推移,提交感知突变测试的流行率、位置、比较优势(即,程序演化)和几个与提交相关的特征的预测能力,以理解其尽力而为应用案例的基本属性。我们的方法利用突变体的影响和一个突变体对另一个突变体的影响来捕获和分析改变和未改变的代码部分之间的隐式交互。该研究分析了数百万个突变体(超过1000万),288个提交,五(5)个不同的开源软件项目,涉及超过68,213个CPU日的计算,并设置了我们执行分析的基础事实。我们的分析表明,提交相关的突变体主要位于程序提交更改之外(81%),而有效选择提交相关的突变体可以减少高达93%的突变体数量。此外,我们证明了提交相关的突变测试比最先进的基线更有效和高效。我们对突变体和提交相关特征在预测提交相关突变体中的预测能力的分析发现,大多数代理特征不能可靠地预测提交相关突变体。这项实证研究突出了提交相关的突变体的属性,并证明了识别和选择提交相关的突变体时,测试不断发展的软件系统的重要性。
2021-12-29 cs.SE
Using Large Language Models for Commit Message Generation: A Preliminary Study
本文通过实验评估Llama 2和ChatGPT在提交信息生成中的表现,发现大语言模型在人工评估中显著优于现有方法,并揭示了常用自动评估指标的局限性。
2024-01-13 cs.SE
On the Use of Commit Messages for Corrective Software Maintenance: A Systematic Mapping Study
Télécom Paris, Institut Polytechnique de Paris(巴黎电信学院,巴黎理工学院)
本文通过系统映射研究97篇2004至2025年发表的文献,探讨提交信息在纠正性维护中的应用,发现提交信息在 bug 分析和修复识别中作用显著,但其他领域如自动程序修复研究较少。
2026-03-31 cs.SE
Brevity is the Soul of Wit: Condensing Code Changes to Improve Commit Message Generation
本文提出用包含概括变更、提炼注释和强调标识符的简洁模板压缩代码变更,并微调CodeLlama-7B生成提交信息,在多个指标上显著优于基线。
2025-09-19 cs.SE
CommitBART: A Large Pre-trained Model for GitHub Commits
Nanyang Technological University(南洋理工大学);Singapore Management University(新加坡管理大学)
GitHub提交是一种以自然语言消息描述的方式记录代码变更的提交,对于软件开发人员理解软件演化具有重要作用。为了促进开源软件社区的发展,我们收集了一个提交基准,其中包括7种程序设计语言的超过799万次提交。基于这个基准,我们提出了CommitBART,一个用于GitHub提交的大型预训练编码器-解码器Transformer模型。该模型通过三个类别进行预训练(即,去噪目标、交叉模态生成和对比学习)来学习提交片段表示。此外,我们统一了一个“提交智能”框架,一个理解任务和三个生成任务的提交。这些任务的综合实验表明,CommitBART显着优于以前的代码预训练的作品。进一步的分析还表明,每个预训练任务都提高了模型的性能。
2023-01-22 cs.AI cs.SE
Dynamics of Team Library Adoptions: An Exploration of GitHub Commit Logs
当一群人努力理解新信息时,各种各样的想法争夺注意力。陡峭的学习曲线随着团队的共同学习而被克服。为了理解这些团队动态在软件开发中是如何发挥作用的,我们探索了Git日志,它提供了软件存储库的完整更改历史。在这些存储库中,我们观察到代码添加,这代表成功实现的想法,以及代码删除,这代表失败或被取代的想法。通过检查这些提交类型之间的模式,我们可以开始理解团队如何采用新信息。我们专门研究软件库被项目采用后会发生什么,即,在项目中首次使用库时。我们发现,各种因素,包括团队规模,库的流行程度和流行的堆栈溢出与团队学习和成功地采用新的软件库的速度有关。
2019-07-10 cs.SE cs.SI
Boosting Automatic Commit Classification Into Maintenance Activities By Utilizing Source Code Changes
背景资料:了解在源代码存储库中执行的维护活动可以帮助从业人员减少不确定性,并通过提前规划和预分配资源来提高成本效益。研究界使用3个主要的分类类别进行维护活动:纠正:故障修复;完善:系统改进;适应:新功能引入。以前在这方面的工作主要集中在评估提交分类(到维护活动)模型在一个单一的软件项目的范围。目的:在这项工作中,我们试图设计一个提交分类模型,能够提供高精度和Kappa在不同的项目。此外,我们希望比较利用词频分析、源代码变化及其组合的分类模型的准确性和Kappa特性。方法:我们提出了一种新的方法,自动分类到维护活动的提交,利用源代码的变化(例如,语句添加,方法删除等)。我们报告的结果是基于研究来自不同专业领域的11个流行的开源项目,我们手动分类了1151个提交,每个研究项目超过100个。我们的模型使用85%的数据集进行训练,而剩下的15%用作测试集。结果如下:我们的方法显示了76%的准确率和63%的科恩kappa(在这种情况下被认为是“好”)的测试数据集,超过20个百分点的改进,以及在跨项目分类的背景下相对提升约40%。结论:我们表明,通过使用源代码更改与提交消息词频分析相结合,我们能够以项目不可知的方式大大提高分类质量。
2017-11-14 cs.SE
On the Evaluation of Commit Message Generation Models: An Experimental Study
Fudan University(复旦大学);Microsoft Research Asia(微软亚洲研究院);Xi’an Jiaotong University(西安交通大学);The University of Newcastle(纽卡斯尔大学)
提交消息是代码更改的自然语言描述,对于程序理解和维护非常重要。然而,手动编写提交消息是费时费力的,特别是当代码频繁更新时。已经提出了利用生成或检索技术来自动生成提交消息的各种方法。为了更好地理解现有方法在解决这一问题时的表现,本文对最先进的模型和数据集进行了系统和深入的分析。我们发现:(1)在以前的工作中使用了BLEU度量的不同变体,这影响了对现有方法的评估和理解。(2)大多数现有的数据集只从Java存储库中抓取,而其他程序设计语言的存储库没有得到充分的探索。(3)数据集分割策略可以在很大程度上影响现有模型的性能。一些模型在按提交拆分数据集时表现出更好的性能,而其他模型在按时间戳或项目拆分数据集时表现更好。根据我们的研究结果,我们进行了人工评估,并找到了与任务的人类得分最相关的BLEU指标。我们还收集了一个大规模的、信息丰富的、多语言的提交消息数据集MCMD,并在这个数据集上评估了现有的模型。此外,我们在不同的数据集分割策略下进行了大量的实验,并提出了不同场景下合适的模型。基于实验结果和发现,我们提供了可行的建议,全面评估提交消息生成模型,并讨论可能的未来研究方向。我们相信这项工作可以帮助从业者和研究人员更好地评估和选择自动提交消息生成的模型。
2021-07-26 cs.AI cs.SE
ChangePrism: Visualizing the Essence of Code Changes
School of Computing, Institute of Science Tokyo(东京科学大学计算学院)
针对传统代码diff审查方式繁琐、难全面掌握提交变更的问题,本研究提出名为ChangePrism的新型可视化工具,含提取与可视化双组件,可提供代码变更的总览与详细视图,助力提升代码变更理解效率。
2025-08-19 cs.SE
Code-centric Learning-based Just-In-Time Vulnerability Detection
本文提出基于代码中心学习的即时漏洞检测方法CodeJIT,通过图神经网络建模提交中代码变更的结构与依赖语义,在20K+真实提交数据集上显著超越现有方法,并具备识别修复漏洞但引入新问题的提交的能力。
2023-04-17 cs.SE
A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff Tools
提出基于RefactoringMiner的新型AST差异分析工具,解决多重映射、重构感知等局限,并构建首个含988个提交的AST节点映射基准,验证其具有更高的精确率、召回率及可比的执行速度。
2024-08-23 cs.SE
Semantic Slicing of Architectural Change Commits: Towards Semantic Design Review
软件架构变更涉及多个模块或组件,与本地代码变更相比,分析起来很复杂。旨在审查变更提交的架构方面(设计)的开发团队考虑许多基本场景,例如访问规则和跨模块使用程序实体的限制。此外,当适当的架构公式对于开发和部署系统至关重要时,设计审查是必不可少的。理清架构更改、恢复语义设计和生成设计注释是设计评审过程的关键任务。为了支持这些任务,我们构建了一个轻量级工具[4],可以检测和分解包含架构实例的提交的语义切片。语义切片由变更实例中所涉及的模块、它们的类、方法和连接的模块的关系信息的描述组成,这对于审查者来说很容易理解。我们从源代码中提取各种目录和命名结构(DANS)属性来开发我们的工具。利用DANS属性,我们的工具首先根据我们定义的指标检测架构更改实例,然后分解切片(基于字符串处理)。我们对10个开源项目(用Java和Kotlin开发)的初步调查显示,DANS属性在检测和生成建筑切片时产生了高度可靠的精确度和召回率(93-100%)。我们提出的工具将作为初步的方法,语义设计恢复和设计摘要生成的项目版本。
2021-09-02 cs.SE
Apples, Oranges & Fruits -- Understanding Similarity of Software Projects Through The Lens of Dissimilar Artifacts
开源项目的日益增长的可用性促进了开发人员重用现有的软件工件并利用它们开发新软件。然而,很难理解相似性的概念,因为它因开发人员而异。有些开发人员可能会搜索具有类似源代码的存储库,而有些开发人员可能会搜索具有类似需求或问题的存储库。现有的方法倾向于通过比较类似的工件来找到类似的项目,例如源代码与源代码,API使用与API使用,文档与文档等。即使两个类似的工件之间存在差异,两个不同的工件之间也可能存在相似性。因此,在本文中,我们的目标是回答这个问题-我们可以通过不同的工件找到软件存储库的相似性吗?为此,我们进行了一个实验,以找到三个存储库之间的相似之处,两个类似的项目和一个不同的项目比较相似和不同的工件(文档,提交和源代码)。我们观察到了不同工件之间的相似性,例如在相似和不同存储库的上下文中的提交、源代码和自述文件。
2021-03-02 cs.SE
Confident Learning-based Network for Detecting Bug-Inducing Commits on SZZ with Noisy Labels
Dalian Maritime University(大连海事大学);Liaoning Normal University(辽宁师范大学)
提出BIC-Hunter模型,通过数据去噪组件和语义关系捕获组件,解决SZZ方法中噪声标签和语义连接不足的问题,在三个开源数据集上Recall@1、Recall@2、Recall@3分别提升6.16%、7.13%、5.53%,MFR指标提升8.43%至32.82%。
2026-10-30 cs.SE
Githru: Visual Analytics for Understanding Software Development History Through Git Metadata Analysis
Git元数据包含丰富的信息,可供开发人员了解大型软件开发项目的整体上下文。因此,它可以帮助新的开发人员、管理人员和测试人员了解开发的历史,而不需要挖掘大量不熟悉的源代码。然而,目前的Git可视化工具不足以分析和探索元数据:它们主要关注于提高Git命令的可用性,而不是帮助用户了解开发历史。此外,它们不能扩展大型复杂的Git提交图,这在理解整体开发历史方面可以发挥重要作用。在本文中,我们提出了Githru,一个交互式的可视化分析系统,使开发人员能够有效地了解开发历史的背景下,通过Git元数据的交互式探索。我们设计了一个交互式的可视化编码习惯,以可扩展的方式表示一个大的Git图,同时保留Git图中的拓扑结构。为了实现对大型Git提交图的可扩展探索,我们提出了新的技术(图重构,聚类和上下文保持挤压合并(CSM)方法)来抽象大型Git提交图。基于这些Git提交图抽象技术,Githru提供了一个交互式摘要视图,帮助用户获得开发历史的概述,以及一个比较视图,用户可以在其中比较不同的提交集群。Githru的有效性已经通过案例研究得到了证明,这些案例研究由领域专家使用来自一家大型国际IT公司的大型软件开发团队的真实内部数据集进行。一项由12名开发人员参与的受控用户研究将Githru与以前的工具进行了比较,这也证实了Githru在任务完成时间方面的有效性。
2020-09-08 cs.HC cs.SE
Detecting Vulnerability-Inducing Commits via Multi-Stage Reasoning with LLM-Based Agents
State Key Laboratory of Complex & Critical Software Environment (CCSE), Beihang University(复杂与关键软件环境国家重点实验室,北京航空航天大学);Hangzhou Innovation Institute of Beihang University(北京航空航天大学杭州创新研究院);North China Municipal Engineering Design & Research Institute Co., Ltd.(华北市政工程设计研究有限公司)
研究旨在检测导致漏洞的提交,提出基于大语言模型的多智能体框架VIC - RAGENT,利用多个专业智能体提供互补视角,通过多阶段推理过程完善候选漏洞,实验表明其性能优于基线,为VIC检测提供实用方案。
2026-07-08 cs.SE
What Makes a Good Commit Message?
协作软件开发中的一个关键问题是开发人员之间的沟通。一种通信方式是提交消息,开发人员在其中描述他们在存储库中所做的更改。因此,提交消息作为一种“审计跟踪”,开发人员可以通过它了解项目的源代码是如何更改的以及更改的原因。因此,提交消息的质量会影响开发人员之间通信的有效性。提交消息通常质量很差,因为开发人员缺乏时间和动力来制作好的消息。已经提出了几种自动方法来生成提交消息。然而,这些都是基于未经策划的数据集,包括相当大比例的措辞拙劣的提交消息。在这个多方法研究中,我们首先定义什么是“好”的提交消息,然后使用来自五个高度活跃的开源项目的近1,600条消息的样本来确定提交消息中缺少信息的比例。我们发现,平均约44%的消息可以得到改进,这表明使用未经策划的数据集可能是使用此类数据训练提交消息生成器时的主要威胁。我们还观察到,以前的工作没有考虑提交消息的语义,并且令人惊讶的是,编写好的提交消息的指导很少。为此,我们开发了一个基于提交消息表达式中重复出现的模式的分类法。最后,我们调查是否可以自动识别“好”的提交消息,这样的自动化可以促使开发人员编写更好的提交消息。
2022-02-07 cs.HC cs.SE
Exploring Security Commits in Python
本研究针对Python中未被CVE收录的静默安全提交难以识别的问题,构建了首个Python安全提交数据集PySecDB,提出CommitCPG图表示与SCOPY多属性图学习模型提升数据收集效率,还发现了覆盖超85%安全提交的四种常见修复模式。
2023-07-21 cs.CR cs.SE
KADEL: Knowledge-Aware Denoising Learning for Commit Message Generation
Fudan University(复旦大学);University of Macau(澳门大学);Sun Yat-sen University(中山大学);Chongqing University(重庆大学);Tongji University(同济大学)
本文提出知识感知去噪学习方法 KADEL,利用少量良好实践提交学习提交知识,并通过动态去噪训练为其余样本补充信息,在 MCMD 数据集上取得了最先进的提交信息生成性能。
2024-01-16 cs.AI cs.SE
A Multi-Month Study of Git Commit Signing
University of Tennessee , Knoxville(田纳西大学诺克斯维尔分校)
本研究对22名计算机科学专业学生开展三个月Git提交签名使用研究,发现其存在配置阻碍、难发现异常提交、对签名保障存误解等问题,指出仅简化签名不足以保障安全使用,还需配套工具与教育支持。
2026-09-01 cs.CR cs.SE
Leveraging Structural Properties of Source Code Graphs for Just-In-Time Bug Prediction
University of Saskatchewan(萨斯喀彻温大学)
数据可视化最常见的用途是最大限度地减少正确理解的复杂性。图是理解关系数据最常用的表示之一。它产生了一种简化的数据表示,如果以文本格式保存,则很难理解。在这项研究中,我们提出了一种方法来利用源代码的关系属性的形式的图形,以确定在不同版本的软件演化和维护的软件系统中的即时(JIT)错误预测。提出了一种将提交补丁的源代码转换为等价图表示的方法,并将其命名为源代码图(SCG)。为了理解和比较多个源代码图,我们提取了这些图的几个结构属性,如密度,周期数,节点,边缘等,然后我们利用这些SCG的属性值来可视化和检测错误的软件提交。我们处理超过246K的软件提交从12个主题系统在本次调查中。我们对这12个用C++和Java程序设计语言编写的开源软件项目的调查表明,如果我们将SCG的特征与类似研究中使用的传统特征相结合,我们将获得基于机器学习(ML)的错误提交检测模型的性能提高。使用Wilcoxon符号秩检验,我们还发现在预测有缺陷和无缺陷提交时F1分数的增加具有统计学显著性。由于基于SCG的特征值代表了软件系统中源代码更新或更改的风格或结构属性,因此它表明了仔细维护源代码风格或结构以保持软件系统无错误的重要性。
2022-01-25 cs.LG cs.SE
Can LLMs Extract Architectural Design Decisions from Source Code Commits? - A Preliminary Exploratory Study
International Institute of Information Technology Hyderabad(海得拉巴国际信息技术学院);Paderborn University(帕德博恩大学)
该研究以30个开源项目的ADDs为样本,测试4种LLMs提取ADDs的效果,发现少样本提示可提升对齐度,但生成结果常缺失决策原理,为架构感知LLM系统研究提供了方向。
2026-09-04 cs.AI cs.SE