Upload
valerio-cosentino
View
680
Download
2
Embed Size (px)
Citation preview
Gitana: a SQL-based Git Repository Inspector
ER’15 - Stockholm
Jordi [email protected]
Javier L. Cánovas [email protected]
Valerio [email protected]
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.