Bug-Fix Variants: Visualizing Unique Source Code Changes across GitHub Forks

08/05/2022
by   Daigo Imamura, et al.
0

Forking is a common practice for developers when building upon on already existing projects. These forks create variants, which have a common code base but then evolve the code in different directions, which is specific to that forked project requirements. An interesting side-effect of having multiple forks is the ability to select between different evolution directions of the code which is based on developers fixing bugs in the code base. However, the key issue that this decentralized form of information is difficult to analyze. In this study, we propose a visualization to analyze active changes in fork repositories that have not been merged back to the original project. Our visualization shows code commit activities in multiple forks with highlight on bug fix commits in the history of forks. While the commit activity of each repository is visualized similarly to the code frequency view of GitHub, our view shows only commits unique to fork repositories. To illustrate the effectiveness of our visualization, we have applied our view to two use cases: identifying forks from a repository no longer maintained, and identifying a bug fix among forks. In the first case, we identify a fork of a suspended project named Obfuscator-LLVM. Our view shows the original repository and its most active fork that continue the development on the top. In the second case, we identify a bug fix in a fork of Clipy project. Our view shows that the most active fork has its own bug fixes; we could easily identify a patch for the bug highlighted in the view. As a new ideas paper, we then present our outline of three research questions to spark real world use-cases and goals for our visualization has the potential to uncover. A prototype of our visualization is available at <https://naist-se.github.io/vissoft2022/>

READ FULL TEXT
research
01/27/2020

Ammonia: An Approach for Deriving Project-specific Bug Patterns

Finding and fixing buggy code is an important and cost-intensive mainten...
research
03/22/2021

Mea culpa: How developers fix their own simple bugs differently from other developers

In this work, we study how the authorship of code affects bug-fixing com...
research
08/25/2021

RefactorInsight: Enhancing IDE Representation of Changes in Git with Refactorings Information

Inspection of code changes is a time-consuming task that constitutes a b...
research
09/25/2021

Constructing Regression Dataset from Code Evolution History

Bug datasets consisting of real-world bugs are important artifacts for r...
research
07/11/2021

Repo2Vec: A Comprehensive Embedding Approach for Determining Repository Similarity

How can we identify similar repositories and clusters among a large onli...
research
06/14/2021

IncBL: Incremental Bug Localization

Numerous efforts have been invested in improving the effectiveness of bu...
research
02/07/2019

How Different Are Different diff Algorithms in Git? Use --histogram for Code Changes

Automatic identification of the differences between two versions of a fi...

Please sign up or login with your details

Forgot password? Click here to reset