Random Generation of Git Graphs - Archive ouverte HAL Access content directly
Preprints, Working Papers, ... (Preprint) 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 (430.41 Ko) Télécharger le fichier
appendice.pdf (214.37 Ko) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

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



  • HAL Id : hal-04487862 , version 1


Julien Courtiel, Martin Pépin. Random Generation of Git Graphs. 2024. ⟨hal-04487862v1⟩
79 View
22 Download


Gmail Mastodon Facebook X LinkedIn More