-
Notifications
You must be signed in to change notification settings - Fork 0
Home
The overall goal of the Fix Inducing Changes project is to determine what commits to a Git repository cause bugs inside of the project. We can accomplish this by having access to a project's Git repository as well as it's Bugzilla bug tracking database.
In order to use this project, two databases need to be created before hand so that we can analyze their contents later.
The first is the Bugzilla database. You will need access to a PostgreSQL version of your Bugzilla database. There are lots of conversion guides online if necessary. We are really only interested in 3 tables inside the database as well (bugzilla_attachments, bugzilla_bugs and bugzilla_bugs_activity) so you can choose to only include those three tables inside any conversions / dumps that you may do.
The second database that needs to be created is from another Eggnet project known as scm2pgsql. You can download the source for that program as well as check the wiki for instructions on how to run it and what it accomplishes.
The Fix Inducing Changes project will need two parameters passed to it. The first parameter is a starting commit ID in your Git repository and the second parameter is an ending commit ID.
Given these two commit ID's, this program will attempt to determine any commits in between that span that have caused bugs inside of the project. In order two accomplish this we need to accomplish the following steps:
Syntactic Analysis
Semantic Analysis
Locating Fix-Inducing Changes
The results of this program are connections between commits and bugs. This information is then placed inside of a PostgreSQL database with this schema.