ApplETS / ETSMobile-Android2

Portail étudiant mobile regroupant les principaux services accessibles aux étudiants de l'École de technologie supérieure.
http://clubapplets.ca
Apache License 2.0
12 stars 11 forks source link

Retirer les binaires de l'historique git #53

Closed ttauveron closed 7 years ago

ttauveron commented 8 years ago

Voir discussion : https://github.com/ApplETS/ETSMobile-Android2/commit/a51b89bfa0495583a21e0146270fc6e3f3bf4d5a#commitcomment-18891774

Utiliser l'outil : https://rtyley.github.io/bfg-repo-cleaner/

Les contributeurs devront repartir de la branche nettoyée pour leurs modifications car bfg change les hash des commits, une fusion créerait donc un double de tous les commits dans l'historique.

mikefaille commented 8 years ago

Voici les étapes à suivres :

git clone --mirror https://github.com/ApplETS/ETSMobile-Android2.git
wget http://repo1.maven.org/maven2/com/madgag/bfg/1.12.13/bfg-1.12.13.jar -O <chemin vers bfg>/bfg.jar
java -jar <chemin vers bfg>/bfg.jar --delete-files "*\.{jar,class,apk}"
git reflog expire --expire=now --all && git gc --prune=now --aggressive

Enssuite, il est fortement recommandé de tester le projet.

Par contre, comme dit @gnut3ll4 , puisque les commits ont été réécris, il faudra utiliser git push --force; et, demander aux utilisateurs de faire un nouveau checkout.

Pour comprendre les commandes ci-dessus, voir https://rtyley.github.io/bfg-repo-cleaner/

mikefaille commented 8 years ago

Je vois qu'il reste encore pas mal d'autres types de fichier à gérer comme les dex. Je regarde ça.

mikefaille commented 8 years ago

Ok ! Pour la commande à utiliser (en référence aux instructions ci-haut) :

java -jar ~/apps/bfg-1.12.13.jar --delete-files "*\.{jar,class,dex,apk,jks,ap_,gradletasknamecache}" --delete-folders "{build,out,bin,gen,.gradle,.idea}" .

Ça fait passer le repos de ~90MB à ~15MB.

ttauveron commented 8 years ago

Bien joué !!

mikefaille commented 8 years ago

Par contre, on ne peut pas faire de pull request pour ça puisque l'opération change l'historique. De plus, il faut tester les changements de manière s'assurer que ça fonctionne.

Pour tester, puisque le commit HEAD n'est pas touché par l'opération, il faut aller chercher l'avant dernier commit.

@gnut3ll4 est-ce que c'est toi qui se charge de ça ?

ttauveron commented 7 years ago

Merci encore @mikefaille le repo est nettement moins lourd !