20
Gitana: a SQL-based Git Repository Inspector ER’15 - Stockholm Jordi Cabot jordi.cabot@icre a.cat Javier L. Cánovas Izquierdo [email protected] Valerio Cosentino valerio.cosentino@i nria.fr

Gitana: a SQL-based Git Repository Inspector

Embed Size (px)

Citation preview

Page 1: Gitana: a SQL-based Git Repository Inspector

Gitana: a SQL-based Git Repository Inspector

ER’15 - Stockholm

Jordi [email protected]

Javier L. Cánovas [email protected]

Valerio [email protected]

Page 2: Gitana: a SQL-based Git Repository Inspector

Outline

Motivation Gitana

Git Conceptual SchemaDatabase ImplementationDatabase OperationsTool SupportEvaluation

Application Scenarios IntegrationQuery Functionalities

Conclusion

Page 3: Gitana: a SQL-based Git Repository Inspector

Motivation

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

Page 4: Gitana: a SQL-based Git Repository Inspector

Motivation

Issue trackers

Source Control Management systems …

Code review tools

Several tools exist to support different development activities

Page 5: Gitana: a SQL-based Git Repository Inspector

Motivation

Issue trackers

Source Control Management systems …

Code review tools

• They provide just a partial view of the software project

Page 6: Gitana: a SQL-based Git Repository Inspector

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

Page 7: Gitana: a SQL-based Git Repository Inspector

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

Page 8: Gitana: a SQL-based Git Repository Inspector

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

Page 9: Gitana: a SQL-based Git Repository Inspector

Gitana

Issue trackers

Code review tools

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

Page 10: Gitana: a SQL-based Git Repository Inspector

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

Page 11: Gitana: a SQL-based Git Repository Inspector

Conceptual Schema

Page 12: Gitana: a SQL-based Git Repository Inspector

Database Implementation

Page 13: Gitana: a SQL-based Git Repository Inspector

Database OperationsInitial Import Process

Incremental Update

JSON Exporter

Page 14: Gitana: a SQL-based Git Repository Inspector

Tool Support

github.com/SOM-Research/Gitana

Page 15: Gitana: a SQL-based Git Repository Inspector

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.

Page 16: Gitana: a SQL-based Git Repository Inspector

Integration

Page 17: Gitana: a SQL-based Git Repository Inspector

Query FunctionalitiesComparision between command line and SQL

Advanced queries

# modifications on a given file

# files commented per developer

Page 18: Gitana: a SQL-based Git Repository Inspector

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

Page 19: Gitana: a SQL-based Git Repository Inspector

What’s next?

Coding platform

Issue trackers

Commun. channels

Code review tools

• Deeper integration of all kinds of project information

Page 20: Gitana: a SQL-based Git Repository Inspector

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.