Random Generation of Git Graphs - Archive ouverte HAL Access content directly
Conference Papers Year : 2024

Random Generation of Git Graphs

Génération aléatoire des graphes de Git


Version Control Systems, such as Git and Mercurial, manage the history of a project as a Directed Acyclic Graph encoding the various divergences and synchronizations happening in its life cycle. A popular workflow in the industry, called the feature branch workflow, constrains these graphs to be of a particular shape: a unique main branch, and non-interfering feature branches. Here we focus on the uniform random generation of those graphs with n vertices, including k on the main branch, for which we provide three algorithms, for three different use-cases. The first, based on rejection, is efficient when aiming for small values of k (more precisely whenever k = O(√ n)). The second takes as input any number k of commits in the main branch, but requires costly precalculation. The last one is a Boltzmann generator and enables us to generate very large graphs while targeting a constant k/n ratio. All these algorithms are linear in the size of their outputs.
Fichier principal
Vignette du fichier
main.pdf (379.28 Ko) Télécharger le fichier
Origin Explicit agreement for this submission

Dates and versions

hal-04487862 , version 1 (04-03-2024)
hal-04487862 , version 2 (24-06-2024)




Julien Courtiel, Martin Pépin. Random Generation of Git Graphs. GASCom 2024, Jun 2024, Talence, France, France. pp.79-86, ⟨10.4204/EPTCS.403.18⟩. ⟨hal-04487862v2⟩
96 View
23 Download



Gmail Mastodon Facebook X LinkedIn More