Core change aware model improves commit message quality across languages
CAMGen: A Core Change-Aware Multi-View Framework for Commit Message Generation
Software Engineering
Summary
Developers write commit messages to explain what code changes do, but current tools often miss how edits affect related parts of the code working together. The authors created CAMGen, a system that better understands these connections by looking at key code parts and their functions across a whole project. This helps the system generate clearer commit messages that explain the main changes and their impact. Tests show CAMGen works better than other tools in several programming languages and people found its messages easier to understand.
What this means in practice
- •For software development teams: Generate clearer and more complete commit messages automatically by incorporating functional relationships across code entities in a repository.
- •For code review engineers: Provide enhanced explanations of code changes, including rationale and impact, to support faster and more accurate code reviews.
Authors
Bo Xiong, Weisheng Chen, Zongen Ren, Yifeng Zhu, Xutian Li, Runbang Yan, Chong Wang, Peng Liang
Abstract
Commit messages help developers understand code changes and support software maintenance. Recent approaches use repository context to improve commit message generation (CMG) with large language models (LLMs). However, existing CMG methods provide limited support for understanding how local edits affect functionality jointly implemented by multiple code entities. This functional understanding is essential for generating commit messages that explain the main change and its impact. To address this problem, we propose CAMGen, a core change-aware multi-view commit message generation framework that incorporates functional context into generation. CAMGen identifies core entities that represent the primary change intent. It then forms candidate functional units through repository-wide semantic clustering and uses those containing the core entities to construct a Functional Semantic View. This view supplies semantic context for interpreting the affected functionality. CAMGen also uses context provided by the Structural Dependency View and the Historical Exemplar View. The context from all three views is then provided to the LLM together with the code diff to guide CMG. The experimental results show that CAMGen outperforms representative CMG baselines across three programming languages. Human evaluation further shows that CAMGen generates more complete commit messages with clearer explanations of change rationale and impact. These results demonstrate the value of functional context and complementary repository information for CMG.