The truth about Git

MODELING GIT WITH ALLOY

Download .zip Download .tar.gz View on GitHub

About this project

It is unthinkable to think about the world of software with no version control systems. Git was born in 2005 and since then it is having a great success. The problem is that there are not any formal or even informal specification about its internals. With this manual, we try to give a semi-formal specification about git and explain the behavior of some operations. The manual is based on a model built by us using a modeling tool called Alloy.

Structure of the manual

This reports starts by explaining the organization of git, how it is structured and then we cover each component of git: working directory, index and repository. For matters of time/space and complexity we focus the object model in the index and in the repository. After the presentation of the structure we give the semi-formal specification of some operations. We finish the report with the analysis of some properties.For a more intuitive explanation, diagrams will be used following the convention specified in following figure.

Figure 1

Authors and Contributors

This project was developed by Cláudio Lourenço and Renato Neves. It was also supervised by Alcino Cunha, Eunsuk Kang and José Barros.