Altered Histories in Version Control System Repositories: Evidence from the Trenches

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Rapaport, Solal, Pautet, Laurent, Tardieu, Samuel, Zacchiroli, Stefano
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866914032506634240
author Rapaport, Solal
Pautet, Laurent
Tardieu, Samuel
Zacchiroli, Stefano
author_facet Rapaport, Solal
Pautet, Laurent
Tardieu, Samuel
Zacchiroli, Stefano
contents Version Control Systems (VCS) like Git allow developers to locally rewrite recorded history, e.g., to reorder and suppress commits or specific data in them. These alterations have legitimate use cases, but become problematic when performed on public branches that have downstream users: they break push/pull workflows, challenge the integrity and reproducibility of repositories, and create opportunities for supply chain attackers to sneak into them nefarious changes. We conduct the first large-scale investigation of Git history alterations in public code repositories. We analyze 111 M (millions) repositories archived by Software Heritage, which preserves VCS histories even across alterations. We find history alterations in 1.22 M repositories, for a total of 8.7 M rewritten histories. We categorize changes by where they happen (which repositories, which branches) and what is changed in them (files or commit metadata). Conducting two targeted case studies we show that altered histories recurrently change licenses retroactively, or are used to remove ''secrets'' (e.g., private keys) committed by mistake. As these behaviors correspond to bad practices-in terms of project governance or security management, respectively-that software recipients might want to avoid, we introduce GitHistorian, an automated tool, that developers can use to spot and describe history alterations in public Git repositories.
format Preprint
id arxiv_https___arxiv_org_abs_2509_09294
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Altered Histories in Version Control System Repositories: Evidence from the Trenches
Rapaport, Solal
Pautet, Laurent
Tardieu, Samuel
Zacchiroli, Stefano
Software Engineering
Version Control Systems (VCS) like Git allow developers to locally rewrite recorded history, e.g., to reorder and suppress commits or specific data in them. These alterations have legitimate use cases, but become problematic when performed on public branches that have downstream users: they break push/pull workflows, challenge the integrity and reproducibility of repositories, and create opportunities for supply chain attackers to sneak into them nefarious changes. We conduct the first large-scale investigation of Git history alterations in public code repositories. We analyze 111 M (millions) repositories archived by Software Heritage, which preserves VCS histories even across alterations. We find history alterations in 1.22 M repositories, for a total of 8.7 M rewritten histories. We categorize changes by where they happen (which repositories, which branches) and what is changed in them (files or commit metadata). Conducting two targeted case studies we show that altered histories recurrently change licenses retroactively, or are used to remove ''secrets'' (e.g., private keys) committed by mistake. As these behaviors correspond to bad practices-in terms of project governance or security management, respectively-that software recipients might want to avoid, we introduce GitHistorian, an automated tool, that developers can use to spot and describe history alterations in public Git repositories.
title Altered Histories in Version Control System Repositories: Evidence from the Trenches
topic Software Engineering
url https://arxiv.org/abs/2509.09294