Random Generation of Git Graphs - Archive ouverte HAL
Pré-Publication, Document De Travail (Preprint/Prepublication) Année : 2024

Random Generation of Git Graphs

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

Résumé

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
Origine Fichiers produits par l'(les) auteur(s)
Licence

Dates et versions

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

Licence

Identifiants

  • HAL Id : hal-04487862 , version 1

Citer

Julien Courtiel, Martin Pépin. Random Generation of Git Graphs. 2024. ⟨hal-04487862v1⟩
321 Consultations
80 Téléchargements

Partager

More