gitana: a sql-based git repository inspector

Post on 07-Jan-2017

683 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Gitana: a SQL-based Git Repository Inspector

ER’15 - Stockholm

Jordi Cabotjordi.cabot@icrea.cat

Javier L. Cánovas Izquierdojcanovasi@uoc.edu

Valerio Cosentinovalerio.cosentino@inria.fr

Outline

Motivation Gitana

Git Conceptual SchemaDatabase ImplementationDatabase OperationsTool SupportEvaluation

Application Scenarios IntegrationQuery Functionalities

Conclusion

Motivation

Software development projects are complex due to the extensive collaboration and creative thinking involved

Motivation

Issue trackers

Source Control Management systems …

Code review tools

Several tools exist to support different development activities

Motivation

Issue trackers

Source Control Management systems …

Code review tools

• They provide just a partial view of the software project

Motivation

Issue trackers

Source Control Management systems …

Code review tools

• They provide just a partial view of the software project• They come with insufficient means to perform non-trivial query operations

Motivation

Issue trackers

Code review tools

• They provide just a partial view of the software project• They come with insufficient means to perform non-trivial query operations• Specially true for Git repositories

Gitana

Issue trackers

Code review tools

Conceptual model for Git / relational database implementation Import and incremental update processes JSON exporter to facilitate the analysis of Git repositories in other technologies

Gitana

Issue trackers

Code review tools

• Easy integration with other tools (issue trackers, etc.) that rely on a database

Gitana

Issue trackers

Code review tools

• Easy integration with other tools (issue trackers, etc.) that rely on a database• Easy inspection of any Git repository

Conceptual Schema

Database Implementation

Database OperationsInitial Import Process

Incremental Update

JSON Exporter

Tool Support

github.com/SOM-Research/Gitana

Evaluation

The extraction time only refers to the initial import. Once this phase is complete, theincremental mechanism takes over and minimizes the time for future imports.

Executed on a 2.6 GHz Intel Core i7 processor with 8 GB of RAM.

Integration

Query FunctionalitiesComparision between command line and SQL

Advanced queries

# modifications on a given file

# files commented per developer

Conclusion

The import process is slow. It should be parallelized.

The bad The good

The JSON export process binds the user to the predefined output structure. The exporter should be more tunable.

The materialized views in the database are recalculated each time the update process is triggered (not good for large repositories). Incremental maintenance on the materialized views could be applied.

Genericity. Gitana stores all the information in a Git repository.

Flexibility. Users can perform any kind of query on the repository using SQL.

Incrementality. Gitana includes an incremental propagation mechanism.

Exportability. The JSON exporter makes the database information available in other technologies.

Extensibility. Gitana can be easily integrated with other DB-based tools.

Availability. Gitana is freely available on GitHub

What’s next?

Coding platform

Issue trackers

Commun. channels

Code review tools

• Deeper integration of all kinds of project information

What’s next?

• Deeper integration of all kinds of project information• One single central (database-oriented) shared access point for all the project

information, enabling lots of interesting cross-cutting queries.

top related