TY - GEN
T1 - Altered Histories in Version Control System Repositories
T2 - 2025 40th IEEE/ACM International Conference on Automated Software Engineering, ASE 2025
AU - Rapaport, Solal
AU - Pautet, Laurent
AU - Tardieu, Samuel
AU - Zacchiroli, Stefano
N1 - Publisher Copyright:
© 2025 IEEE.
PY - 2025/1/1
Y1 - 2025/1/1
N2 - 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.
AB - 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.
KW - git
KW - software heritage
KW - software integrity
KW - version control systems
UR - https://www.scopus.com/pages/publications/105034661632
U2 - 10.1109/ASE63991.2025.00181
DO - 10.1109/ASE63991.2025.00181
M3 - Conference contribution
AN - SCOPUS:105034661632
T3 - Proceedings - 2025 40th IEEE/ACM International Conference on Automated Software Engineering, ASE 2025
SP - 2184
EP - 2195
BT - Proceedings - 2025 40th IEEE/ACM International Conference on Automated Software Engineering, ASE 2025
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 16 November 2025 through 20 November 2025
ER -