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


Démarrer la discussion sur Korben Communauté

pCloud est un service développé en Suisse depuis 2013 qui compte à ce jour plus de 8 millions d’utilisateurs et qui conviendra à tous ceux qui ont des besoins sérieux en stockage en ligne et qui cherchent une solution compatible avec tous les OS (desktop et mobile).

Comme tous les services de ce genre, pCloud offre une version web et un compagnon Drive à installer sur votre Linux, Mac ou Windows qui vous permettra de synchroniser et d’accéder à l’ensemble de vos fichiers directement depuis votre ordinateur (via l’explorateur de fichiers ou le Finder). Ainsi, grâce au Drive, vos fichiers sont synchronisés en permanence et vous pouvez y accéder même lorsque vous êtes hors ligne.

Et aujourd’hui je vous propose de gagner un des 3 comptes pCloud mis en jeu de 500 Go à vie 😉

Entrez maintenant pour gagner 1 des 3 comptes “500 Go à vie” d’une valeur de 480€ chaque