Core Concepts
The authors propose a novel AST diff tool based on RefactoringMiner to overcome limitations in understanding code changes, with a focus on refactoring awareness and commit-level diff support.
Abstract
The content discusses the importance of AST diff tools in understanding code changes, highlighting the limitations faced by current tools. It introduces a new approach based on RefactoringMiner to address these limitations, focusing on refactoring awareness and commit-level diff support.
Software undergoes constant changes, leading developers to spend significant time reviewing code changes. AST diff tools aim to improve understanding but face limitations like lacking multi-mapping support and refactoring awareness. The proposed tool enhances statement mapping accuracy using RefactoringMiner.
Refactoring is common in software evolution but can introduce noise in diffs. Current tools lack refactoring awareness, leading to inaccurate mappings. The new approach leverages refactoring information for improved accuracy.
The study showcases examples where current AST diff tools fail due to semantic ignorance and lack of commit-level diff support. The proposed tool aims to address these issues for more accurate code change comprehension.
Stats
Developers spend 41 minutes per day on code reviewing.
800 bug-fixing commits and 188 refactoring commits were evaluated.
GumTree generates inaccurate mappings for 20%-29% of file revisions.
Refactorings may introduce "noise" in diffs as they overlap with other changes.
46% of refactored entities are further edited or refactored in the same commit.
Quotes
"Developers spend a significant portion of their workday trying to understand and review the code changes of their teammates." - MacLeod et al.
"The length of the edit script is a proxy to the cognitive load for a developer to understand the essence of a commit." - Falleri et al.