A Language for Querying Source Code Repositories Public Deposited



Attribute NameValues
Abstract or Summary
  • 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
Rights Statement
Embargo reason
  • Pending Publication


In Administrative Set:
Last modified: 12/28/2017

Downloadable Content

Download PDF

EndNote | Zotero | Mendeley