International Journal

On Tracking Java Methods with Git Mechanisms

Yoshiki Higo, Shinpei Hayashi, Shinji Kusumoto

Journal of Systems and Software, vol. 165, no. 110571, pp. 1–13, July 2020.

Abstract

Method-level historical information is useful in various research on mining software repositories such as fault-prone module detection or evolutionary coupling identification. An existing technique named Historage converts a Git repository of a Java project to a finer-grained one. In a finer-grained repository, each Java method exists as a single file. Treating Java methods as files has an advantage, which is that Java methods can be tracked with Git mechanisms. The biggest benefit of tracking methods with Git mechanisms is that it can easily connect with any other tools and techniques build on Git infrastructure. However, Historage's tracking has an issue of accuracy, especially on small methods. More concretely, in the case that a small method is renamed or moved to another class, Historage has a limited capability to track the method. In this paper, we propose a new technique, FinerGit, to improve the trackability of Java methods with Git mechanisms. We implement FinerGit as a system and apply it to 182 open source software projects, which include 1,768K methods in total. The experimental results show that our tool has a higher capability of tracking methods in the case that methods are renamed or moved to other classes.

Video

Related papers

Continued in

BibTeX

@article{higo-jss202007,
    author = {Yoshiki Higo and Shinpei Hayashi and Shinji Kusumoto},
    title = {On Tracking {Java} Methods with {Git} Mechanisms},
    journal = {Journal of Systems and Software},
    volume = 165,
    number = 110571,
    pages = {1--13},
    doi = {10.1016/j.jss.2020.110571},
    year = 2020,
}
Type
International Journal
Published
July 2020
Volume / Pages
vol. 165, no. 110571, pp. 1–13
DOI
10.1016/j.jss.2020.110571