Skip to content

Archive : la réécriture d'historique mesurée avant d'être tentée - #144

Merged
thejmimiia-code merged 1 commit into
mainfrom
arena/a1507d48-mrsc
Oct 19, 2026
Merged

thejmimiia-code merged 1 commit into
mainfrom
arena/a1507d48-mrsc

Conversation

@thejmimiia-code

Copy link
Copy Markdown
Owner

Objet

La demande de --force sur main partait d'une hypothèse non vérifiée : que la réécriture rendrait le dépôt plus léger. Mesuré, c'est faux — et c'est destructeur. Ce passage ne réécrit donc rien ; il établit la mesure et corrige une procédure qui, appliquée telle quelle, aurait effacé les 505 planches.

Mesures (clone miroir complet, git-filter-repo 2.47.0)

Scénario Taille après Arbre de main Archive
Référence 1,27 Gio intact 505 planches + 2 fichiers
A — purger main seule, étiquette gardée 1,27 Gio identique bit à bit intacte
B — purger toutes les références 22 Mio identique bit à bit 505 planches effacées
C — le même geste côté GitHub inchangée identique effacée
  • A ne gagne rien : l'étiquette référence les mêmes objets.
  • B gagne 1,25 Gio mais supprime les planches de l'étiquette, qui ne garde plus que les trois icônes — c'est exactement la perte que l'archive existe pour empêcher.
  • C : chaque fusion depuis la R&D : plan d’animation des statuts (quatre styles) #85 garde une référence refs/pull/<n>/head qui atteint encore les 506 objets PNG ; ces références ne se réécrivent pas par un push --force. La taille annoncée par GitHub ne baisserait donc pas sans un passage du support.

Dans les deux premiers cas, l'arbre de main ressort identique bit à bit (8283543) : la réécriture ne coûte aucun fichier de main, elle coûte l'archive.

Ce qui change

docs/rd/archives-et-poids-du-depot.md : les trois scénarios chiffrés, la décision, et une procédure conditionnelle où l'export vérifié de l'étiquette précède toute réécriture (au lieu d'arriver après, en note). Le journal porte l'entrée du 20 octobre.

Vérifications

507 empreintes revérifiées depuis l'étiquette seule (git archive + sha256sum -c), avant et après la mesure. Puis py_compile et la porte : fusions, publication locale (131 fichiers, 95 pages, 4 606 références), planches (507 empreintes), site statique, intégration, poids, sécurité, R&D continue — tous réussis.

Limite

L'archive ne peut pas être déposée en ressource de version depuis la session : uploads.github.com est injoignable (SSL_ERROR_SYSCALL), et l'espace de travail est plafonné bien en dessous de 1,3 Go. Une copie hors GitHub reste à faire par la personne qui administre le dépôt si la réécriture est un jour décidée.

La demande de --force sur main supposait que la réécriture rendrait le
dépôt plus léger. Mesuré sur un clone miroir complet (1,27 Gio, 394
commits, 506 objets PNG, git-filter-repo 2.47.0), c'est faux, et c'est
dangereux :

- purger main seule en gardant l'étiquette : 1,27 Gio → 1,27 Gio, gain
  nul, l'étiquette référençant les mêmes objets ;
- purger toutes les références : 1,27 Gio → 22 Mio, mais l'étiquette
  perd les 505 planches — exactement la perte que l'archive empêche ;
- côté GitHub, les refs/pull/* des fusions depuis la #85 atteignent
  encore les 506 objets et ne se réécrivent pas par un push --force.

L'arbre de main ressort identique bit à bit dans les deux premiers cas :
la réécriture ne coûte aucun fichier de main, elle coûte l'archive.

La procédure du dossier d'archive est corrigée en conséquence : export
vérifié de l'étiquette AVANT toute réécriture, conservation de
l'étiquette posée comme condition, avertissement sur les refs/pull.
507 empreintes revérifiées depuis l'étiquette seule.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@thejmimiia-code
thejmimiia-code merged commit f44e989 into main Oct 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant