Graduate Thesis Or Dissertation

A Language for Querying Source Code Repositories

Public Deposited

Downloadable Content

Download PDF


Attribute NameValues
  • The history of a software project plays a vital role in the software development process. Version control systems enable users of a software repository to look at the evolution of the source code, and see the changes that led to newer versions. Currently, version control systems provide commands that can be used to retrieve information about the history, such as, listing different versions, viewing the difference between two arbitrary versions, inspecting changes made in a specific version, and so on. These commands, in one way or the other, require users to first identify the version and then browse through the changes made in it. In this thesis, I present GitQL, a language for querying the history of files that are version-controlled by git. GitQL provides more general queries than git and enables users, for example, to look for specific changes in a file or just retrieve all the changes made to a specific text. GitQL is implemented based on vgrep, a generalization of grep that works on variational strings, which form the formal basis for version-controlled files. Finally, I evaluate the expressiveness of GitQL.
Resource Type
Date Issued
Degree Level
Degree Name
Degree Field
Degree Grantor
Commencement Year
Committee Member
Academic Affiliation
Rights Statement
Peer Reviewed
Embargo reason
  • Pending Publication



This work has no parents.

In Collection: