Skip to content

[OUTILLAGE] Purger l'historique git des PDFs de wikilab (filter-repo) #209

@nedseb

Description

@nedseb

Contexte

Les PDFs ont été externalisés vers wikilab-assets et retirés du working tree (#207, mergé). Mais l'historique git de wikilab contient toujours tous les blobs PDF (versions successives depuis l'origine), ce qui maintient .git autour de ~2 Go.

Cette issue couvre la dernière étape de l'epic #203 : réécrire l'historique pour supprimer ces blobs. Volontairement différée (décision #203) — à exécuter seulement après une période d'observation confirmant que le domaine d'assets est stable.

Objectif

Retirer site/static/pdf/** de tout l'historique → gain attendu ~1 Go sur .git (clone plus rapide, repo plus léger).

⚠️ Opération destructive

  • Réécrit l'historique de toutes les branches → tous les SHA changent.
  • Nécessite un force-push sur main (branche protégée — à débloquer temporairement, admin uniquement).
  • Tous les contributeurs devront re-cloner (ou faire un reset hard sur le nouveau main). À annoncer avant.
  • À ne lancer que par un admin du repo, en pleine conscience. L'IA ne l'exécutera pas sans feu vert explicite et supervision.

Prérequis (à cocher avant de lancer)

  • Domaine assets.wikilab.labaixbidouille.com stable depuis quelques jours (aucun lien PDF cassé signalé).
  • Aucune PR en cours qui toucherait site/static/pdf (il n'y en a plus, mais vérifier).
  • Sauvegarde / mirror du repo wikilab avant réécriture (git clone --mirror).
  • Fenêtre annoncée à l'équipe (Mattéo, Aline, Manon) pour re-clone.

Procédure proposée (git filter-repo)

# Sauvegarde
git clone --mirror git@github.com:LabAixBidouille/wikilab.git wikilab-backup.git

# Dans un clone frais
pip install git-filter-repo   # ou pipx
git filter-repo --path site/static/pdf --invert-paths

# Vérifier la taille et que site/static/pdf a bien disparu de l'historique
git count-objects -vH
git log --all --oneline -- site/static/pdf   # doit être vide

# Débloquer temporairement la protection de main, puis :
git push --force origin main
# (rebrancher la protection immédiatement après)

Alternative : BFG Repo-Cleaner (--delete-folders pdf), plus rapide mais moins précis que filter-repo.

Critères d'acceptation

  • git log --all -- site/static/pdf vide (plus aucune trace dans l'historique).
  • .git nettement réduit (objectif < ~1 Go).
  • main repoussé, protection rétablie, CI verte.
  • Équipe notifiée du re-clone nécessaire.

Note

Indépendant du fonctionnement du site (les PDFs sont déjà servis depuis wikilab-assets). C'est purement de l'hygiène de dépôt — aucune urgence, à planifier sereinement.

Refs #203

Metadata

Metadata

Assignees

Labels

outillageOutils, scripts, CI

Type

No type
No fields configured for issues without a type.

Projects

Status
Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions