Skip to content

RelationalGit extracts valuable information about commits, blame, changes, devs, and pull requests out of git's data structure and imports them to a relational database such as Microsoft SQL Server. These data can be a ground for further source code mining analysis.

License

Notifications You must be signed in to change notification settings

CESEL/SofiaLearnerPlus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Replication Package

This repository contains the necessary data to replicate the information from the study "The Cost vs. the Benefit of Adding an Extra Code Reviewer to Mitigate Developer Turnover through Reviewer Recommenders" which is published in ICSE'26. First, you should install the dependencies for the replication package, and then follow the instructions in the README File to run the simulations.

Dependencies

Before installing the replication package, you need to install the following dependencies.

1) .NET Core

You need to get the latest bits on .NET Core.

2) SQL Server

Download and install Microsoft SQL Server and set up a local server instance on your computer. You can install SQL Server Management Studio to query the database.

3) PowerShell Core

You need to get the latest version of PowerShell Core. RelationalGit uses PowerShell for extracting blame information.

RelationalGit 💘 Open Source

RelationalGit has been built on top of the most popular Git Libraries. It uses libgit2Sharp, Octokit.Net, and Octokit.Extensions to extract the data from the git data structure and GitHub, respectively.

RelationalGit extracts valuable information about commits, blame, changes, developers, and pull requests from Git's data structure and imports it into a relational database, such as Microsoft SQL Server. These data can be used for further source code mining analysis. You can easily query the database and find answers to many interesting questions. Since source code mining is one of the most prominent topics in academia and industry, RelationalGit aims to facilitate researchers' investigations more conveniently. For example, you can find answers to the following questions by running a simple SQL query over extracted data.

  • What files have recently been changed by a given developer?
  • Who is the author of a specific line in a specific file? (Git Blame)
  • Which developer has the most commits?
  • What files are usually changed together? This way, you can detect and document your hidden dependencies.
  • Which developer has the most knowledge about a file or project? This idea is based on Rigby's paper.
  • Which files are constantly changing? Maybe they are bug-prone.
  • Who is the most appropriate developer to work on a given file?

Install (dotnet Global Tool)

SofiaWL-LearnerPlusPlus is a dotnet Global tool based on RelationalGit. You should install this tool to run the simulations. You can use it seamlessly with your favorite command-line application.

dotnet tool install --global SofiaWL-LearnerPlusPlus --version 1.1.5

Replication

For replication steps and running simulations, follow the instructions in README File.

About

RelationalGit extracts valuable information about commits, blame, changes, devs, and pull requests out of git's data structure and imports them to a relational database such as Microsoft SQL Server. These data can be a ground for further source code mining analysis.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 89.7%
  • PowerShell 5.5%
  • R 4.8%