Activities per year
Abstract
Composite commits are a common mistake in the use of version control software.
A composite commit groups many unrelated tasks,
rendering the commit difficult for developers to understand, revert, or integrate
and for empirical researchers to analyse.
We propose an algorithmic foundation for tool support to identify such composite commits.
Our algorithm computes both a program dependence graph and
the changes to the abstract syntax tree for the files that have been changed in a commit.
Our algorithm then groups these fine-grained changes according to the slices through the dependence graph they belong to.
To evaluate our technique, we analyse and refine an established dataset of Java commits, the results of which we also make available.
We find that our algorithm can determine whether or not a commit is composite.
For the majority of commits, this analysis takes but a few seconds.
The parts of a commit that our algorithm identifies do not map directly to the commit's tasks.
The parts tend to be smaller, but stay within their respective tasks.
A composite commit groups many unrelated tasks,
rendering the commit difficult for developers to understand, revert, or integrate
and for empirical researchers to analyse.
We propose an algorithmic foundation for tool support to identify such composite commits.
Our algorithm computes both a program dependence graph and
the changes to the abstract syntax tree for the files that have been changed in a commit.
Our algorithm then groups these fine-grained changes according to the slices through the dependence graph they belong to.
To evaluate our technique, we analyse and refine an established dataset of Java commits, the results of which we also make available.
We find that our algorithm can determine whether or not a commit is composite.
For the majority of commits, this analysis takes but a few seconds.
The parts of a commit that our algorithm identifies do not map directly to the commit's tasks.
The parts tend to be smaller, but stay within their respective tasks.
Original language | English |
---|---|
Title of host publication | Proceedings - 18th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2018 |
Publisher | IEEE |
Pages | 193-202 |
Number of pages | 10 |
ISBN (Electronic) | 978-1-5386-8290-6 |
ISBN (Print) | 978-1-5386-8291-3 |
DOIs | |
Publication status | Published - 9 Nov 2018 |
Event | 18th IEEE International Working Conference on Source Code Analysis and Manipulation - Madrid, Spain, Madrid, Spain Duration: 23 Sep 2018 → 24 Sep 2018 Conference number: 18 http://www.ieee-scam.org/2018/ |
Conference
Conference | 18th IEEE International Working Conference on Source Code Analysis and Manipulation |
---|---|
Abbreviated title | SCAM |
Country | Spain |
City | Madrid |
Period | 23/09/18 → 24/09/18 |
Internet address |
Keywords
- Changedistiller
- Changenodes
- Class dependence graph
- Commit
- Inter procedural
- Intra procedural
- Program dependence graph
- Program slicing
- Slicing
- Static analysis
- System dependence graph
- Tangled
- Tinypdg
- Untangling
Fingerprint
Dive into the research topics of 'Untangling Composite Commits Using Program Slicing'. Together they form a unique fingerprint.Activities
- 1 Talk or presentation at a conference
-
Untangling Composite Commits Using Program Slicing
Ward Muylaert (Speaker)
23 Sep 2018 → 24 Sep 2018Activity: Talk or presentation › Talk or presentation at a conference