Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Gitana:
a SQL-based Git Repository Inspector
ER’15 - Stockholm
Jordi Cabot
jordi.cabot@icrea.cat
Javier L. Cánovas Izquier...
Outline
 Motivation
 Gitana
Git Conceptual Schema
Database Implementation
Database Operations
Tool Support
Evaluati...
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 d...
Motivation
Issue trackers
Source Control
Management systems
…
Code review tools
• They provide just a partial view of the ...
Motivation
Issue trackers
Source Control
Management systems
…
Code review tools
• They provide just a partial view of the ...
Motivation
Issue trackers
…
Code review tools
• They provide just a partial view of the software project
• They come with ...
Gitana
Issue trackers
…
Code review tools
 Conceptual model for Git / relational database implementation
 Import and inc...
Gitana
Issue trackers
…
Code review tools
• Easy integration with other tools (issue trackers, etc.) that rely on a databa...
Gitana
Issue trackers
…
Code review tools
• Easy integration with other tools (issue trackers, etc.) that rely on a databa...
Conceptual Schema
Database Implementation
Database Operations
Initial 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, the
incremental mechanism t...
Integration
Query Functionalities
Comparision between command line and SQL
Advanced queries
# modifications on a given file
# files co...
Conclusion
The import process is slow. It should
be parallelized.
The bad The good
The JSON export process binds the
user ...
What’s next?
Coding platform
Issue trackers
Commun. channels
Code review tools
• Deeper integration of all kinds of projec...
What’s next?
• Deeper integration of all kinds of project information
• One single central (database-oriented) shared acce...
Upcoming SlideShare
Loading in …5
×

Gitana: a SQL-based Git Repository Inspector

847 views

Published on

Software development projects are notoriously complex and difficult to deal with. Several support tools such as issue tracking, code review and Source Control Management (SCM) systems have been introduced in the past decades to
ease development activities. While such tools efficiently track the evolution of a given aspect of the project (e.g., bug reports), they provide just a partial view of the project and often lack of advanced querying mechanisms limiting themselves to command line or simple GUI support. This is particularly true for projects that rely on Git, the most popular SCM system today.
In this paper, we propose a conceptual schema for Git and an approach that, given a Git repository, exports its data to a relational database in order to (1) promote data integration with other existing SCM tools and (2) enable writing queries on Git data using standard SQL syntax. To ensure efficiency, our approach comes with an incremental propagation mechanism that refreshes the database content with the latest modifications. We have implemented our approach in Gitana, an open-source tool available on GitHub (https://github.com/SOM-Research/Gitana).

Published in: Technology
  • Be the first to comment

Gitana: a SQL-based Git Repository Inspector

  1. 1. Gitana: a SQL-based Git Repository Inspector ER’15 - Stockholm Jordi Cabot jordi.cabot@icrea.cat Javier L. Cánovas Izquierdo jcanovasi@uoc.edu Valerio Cosentino valerio.cosentino@inria.fr
  2. 2. Outline  Motivation  Gitana Git Conceptual Schema Database Implementation Database Operations Tool Support Evaluation  Application Scenarios Integration Query Functionalities  Conclusion
  3. 3. Motivation Software development projects are complex due to the extensive collaboration and creative thinking involved
  4. 4. Motivation Issue trackers Source Control Management systems … Code review tools Several tools exist to support different development activities
  5. 5. Motivation Issue trackers Source Control Management systems … Code review tools • They provide just a partial view of the software project
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. Gitana Issue trackers … Code review tools • Easy integration with other tools (issue trackers, etc.) that rely on a database
  10. 10. 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
  11. 11. Conceptual Schema
  12. 12. Database Implementation
  13. 13. Database Operations Initial Import Process Incremental Update JSON Exporter
  14. 14. Tool Support github.com/SOM-Research/Gitana
  15. 15. Evaluation The extraction time only refers to the initial import. Once this phase is complete, the incremental 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.
  16. 16. Integration
  17. 17. Query Functionalities Comparision between command line and SQL Advanced queries # modifications on a given file # files commented per developer
  18. 18. 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
  19. 19. What’s next? Coding platform Issue trackers Commun. channels Code review tools • Deeper integration of all kinds of project information
  20. 20. 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.

×