Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Git-Sizer – Pour vous aider à faire maigrir vos dépôts Git

Github, qu'on ne présente plus, a mis en ligne sous licence MIT, git-sizer, un outil en ligne de commande, développé en Go, destiné à aider les développeurs à faire maigrir leur dépôt git.

Étant donné que chez Github, ils ont une bonne expérience de ce qui prend de la place dans les dépôts git, ils sont capables d'évaluer l'état de votre dépôt et de vous indiquer avec où se situe le votre par rapport à une moyenne réalisée sur les 78 millions de dépôts, hébergés par Github.

D'après les experts de Github, un dépôt devrait toujours être en dessous des 1GB. Au-delà de 5 GB, ça commence à devenir craignos. En général, cela est dû au stockage de fichiers générés, aux blobs (médias vidéo, photo, binaires. etc.) alors qu'il est possible de les stocker hors dépôt grâce à Git-LFS, aux zip et autres fichiers tar qui se retrouvent là par manque de rigueur, sans oublier les trop nombreux tags et branches qui ne servent pas à grand-chose, les arborescences contenant plus de 200 répertoires et sous répertoires, les fichiers textes très gros versionnés, ou tout simplement un trop grand nombre d'objets référencés. Et dans ce cas-là, c'est peut-être pas con de diviser son projet en sous-projets plus modestes.

Il existe encore de très nombreuses raisons qui font qu'un git peut être trop gros et pour les connaitre, je vous invite à lire la doc de git-sizer ici.

Pour installer Git-Sizer, vérifiez bien que vous avez le dernier client git >=2.6, puis rendez-vous ici pour récupérer le binaire qui correspond à votre système d'exploitation. Dézippez-le puis rendez l’exécutable et ajoutez le répertoire d'installation à votre PATH pour pouvoir le lancer directement depuis vos dépôts.

Placez-vous ensuite dans le dépôt dont vous voulez évaluer la taille et lancez la commande

git-sizer --verbose

Et vous obtiendez un joli résultat comme celui-ci (là ça concerne le dépôt Linux)

$ git-sizer --verbose
Processing blobs: 1652370
Processing trees: 3396199
Processing commits: 722647
Matching commits to trees: 722647
Processing annotated tags: 534
Processing references: 539
| Name                         | Value     | Level of concern               |
| ---------------------------- | --------- | ------------------------------ |
| Overall repository size      |           |                                |
| * Commits                    |           |                                |
|   * Count                    |   723 k   | *                              |
|   * Total size               |   525 MiB | **                             |
| * Trees                      |           |                                |
|   * Count                    |  3.40 M   | **                             |
|   * Total size               |  9.00 GiB | ****                           |
|   * Total tree entries       |   264 M   | *****                          |
| * Blobs                      |           |                                |
|   * Count                    |  1.65 M   | *                              |
|   * Total size               |  55.8 GiB | *****                          |
| * Annotated tags             |           |                                |
|   * Count                    |   534     |                                |
| * References                 |           |                                |
|   * Count                    |   539     |                                |
|                              |           |                                |
| Biggest objects              |           |                                |
| * Commits                    |           |                                |
|   * Maximum size         [1] |  72.7 KiB | *                              |
|   * Maximum parents      [2] |    66     | ******                         |
| * Trees                      |           |                                |
|   * Maximum entries      [3] |  1.68 k   |                                |
| * Blobs                      |           |                                |
|   * Maximum size         [4] |  13.5 MiB | *                              |
|                              |           |                                |
| History structure            |           |                                |
| * Maximum history depth      |   136 k   |                                |
| * Maximum tag depth      [5] |     1     | *                              |
|                              |           |                                |
| Biggest checkouts            |           |                                |
| * Number of directories  [6] |  4.38 k   | **                             |
| * Maximum path depth     [7] |    13     | *                              |
| * Maximum path length    [8] |   134 B   | *                              |
| * Number of files        [9] |  62.3 k   | *                              |
| * Total size of files    [9] |   747 MiB |                                |
| * Number of symlinks    [10] |    40     |                                |
| * Number of submodules       |     0     |                                |

[1]  91cc53b0c78596a73fa708cceb7313e7168bb146
[2]  2cde51fbd0f310c8a2c5f977e665c0ac3945b46d
[3]  4f86eed5893207aca2c2da86b35b38f2e1ec1fc8 (refs/heads/master:arch/arm/boot/dts)
[4]  a02b6794337286bc12c907c33d5d75537c240bd0 (refs/heads/master:drivers/gpu/drm/amd/include/asic_reg/vega10/NBIO/nbio_6_1_sh_mask.h)
[5]  5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c (refs/tags/v2.6.11)
[6]  1459754b9d9acc2ffac8525bed6691e15913c6e2 (589b754df3f37ca0a1f96fccde7f91c59266f38a^{tree})
[7]  78a269635e76ed927e17d7883f2d90313570fdbc (dae09011115133666e47c35673c0564b0a702db7^{tree})
[8]  ce5f2e31d3bdc1186041fdfd27a5ac96e728f2c5 (refs/heads/master^{tree})
[9]  532bdadc08402b7a72a4b45a2e02e5c710b7d626 (e9ef1fe312b533592e39cddc1327463c30b0ed8d^{tree})
[10] f29a5ea76884ac37e1197bef1941f62fda3f7b99 (f5308d1b83eba20e69df5e0926ba7257c8dd9074^{tree})

Plus il y a d'étoiles, plus c'est mauvais, car la note dépasse la moyenne des autres dépôts git présents sur Github. Donc ça vous permettra de mieux cibler vos efforts pour réaliser la cure d'amaigrissement de votre dépôt.

Les sources et la doc de Git-Sizer sont ici.

Amusez-vous bien !

Source


Join the discussion at Korben Communauté

6 outils pour cloner un disque dur sous Windows et Linux

Cloner c’est facile… Bon, ok, cloner un bébé, c’est déjà plus complexe mais un disque dur, c’est l’enfance de l’art… Alors bien sûr le logiciel le plus connu pour ça, est Ghost de Symantec mais au prix de 999,99 euros HT (j’déconne, je ne connais pas le prix en vrai), c’est déjà plus rentable de se mettre à cloner son petit frère artisanalement dans le garage …

Lire la suite



Générer du bruit de fond pour polluer les datas récoltées par les boites noires

Si vous voulez surcharger les boites noires utilisées par votre pays afin de tout savoir sur vous et ainsi mieux vous contrôler, voici Noisy.

Ce script python n’a d’autre but que je générer de fausses données sur le réseau afin de pourrir les éventuelles données récoltées sur vous.

Ce bruit de fond est constitué de requêtes DNS / HTTP(S) aléatoires et peut tourner aussi dans un Docker…

Lire la suite



Que faire quand on n’arrive pas à tomber sur le portail captif d’une borne wifi publique ?

Quand on se connecte à un réseau public wifi, il arrive parfois qu’on ait du mal à obtenir le fameux « portail captif »‘ où on nous demande en général notre adresse email, avant de nous laisser librement surfer. En effet, sur certaines bornes wifi, le truc est tellement mal configuré que si vous entrez l’URL de votre moteur de recherche préférée ou de Facebook et bien vous n’obtiendrez rien…

Lire la suite



Comment accélérer l’indexation de la recherche Windows ?

Pour proposer une recherche locale rapide, Windows utilise ce qui s’appelle un « indexeur« . Il s’agit d’un process qui tourne en tâche de fond sur votre ordinateur et qui réalise un index de l’ensemble des fichiers et dossiers présents sur votre disque dur. Pour ne pas consommer trop de ressources, ce service se déclenche uniquement lorsque votre machine n’est pas trop utilisée et à intervalle régulier…

Lire la suite