IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Git, le système distribué de gestion de versions, vient de passer à la version 2.28
Et remplace le nom master par init.defaultBranch lors de la création d'une première branche dans un référentiel

Le , par Stéphane le calme

176PARTAGES

8  0 
Git, le système distribué de gestion de versions vient de passer à la version 2.28. Voici un aperçu de certaines des fonctionnalités et des modifications les plus intéressantes apportées.

Présentation de init.defaultBranch

Lorsque vous initialisez un nouveau référentiel Git à partir de zéro avec git init, Git a toujours créé une première branche initiale avec le nom master. Dans Git 2.28, une nouvelle option de configuration, init.defaultBranch est introduite pour remplacer le terme codé en dur. Ce changement a été annoncé par la Software Freedom Conservancy qui s'inscrit dans un mouvement plus général dans l'industrie informatique pour supprimer les expressions qui pourraient avoir des connotations négatives :

« Conservancy et le projet Git sont conscients que le nom initial de la branche, "master", est offensant pour certaines personnes et nous compatissons avec ceux qui sont blessés par l’utilisation de ce terme.

« Les versions existantes de Git sont capables de fonctionner avec n'importe quel nom de branche; il n’y a rien de spécial à propos de ‘master’ sauf qu’il a toujours été le nom utilisé pour la première branche lors de la création d’un nouveau dépôt à partir de zéro (avec la commande git init). Ainsi, de nombreux projets l'utilisent pour représenter la ligne principale de développement. Nous soutenons et encourageons les projets à passer à des noms de branche significatifs et inclusifs, et nous ajouterons des fonctionnalités à Git pour rendre encore plus facile l'utilisation d'une valeur par défaut différente pour les nouveaux projets.

« Dans un premier temps, Git ajoutera un mécanisme pour permettre aux utilisateurs de spécifier la valeur par défaut utilisée comme nom de la première branche lors de la création d'un nouveau référentiel. De plus, conformément à sa gouvernance de projet, Git a entrepris un processus communautaire pour explorer le changement du nom de la première branche créée automatiquement pour les nouveaux référentiels en dehors de «master». Ce changement est actuellement discuté sur notre liste de diffusion. Comme toujours, les modifications apportées au cœur de Git minimiseront les perturbations pour les utilisateurs de Git et incluront des périodes de dépréciation appropriées.

« Pendant ce temps, Git en tant que projet reste engagé dans l'encouragement de la participation des groupes sous-représentés au développement de Git lui-même. Git poursuit sa participation, commencée il y a quatre ans, à l'initiative Outreachy de Conservancy. Conservancy continue également d'explorer et de soutenir d'autres initiatives qui peuvent également aider dans ce domaine. »

C'est dans ce contexte qu'a été proposé init.defaultBranch qui sera désormais recherché par git init à la place de master lors de la création de la première branche dans un nouveau référentiel. Cependant, si cette valeur n'est pas définie, init.defaultBranch va utiliser par défaut master.


Filtres de Bloom de chemin modifié

Un filtre de Bloom est une structure de données. C'est une implémentation du type abstrait Ensemble. Cette structure est probabiliste, c'est-à-dire qu'elle utilise des probabilités, et que sa correction est probabiliste. Plus précisément, lors du test de la présence d'un élément dans un ensemble, un filtre de Bloom permet de savoir :
  • avec certitude que l'élément est absent de l'ensemble (il ne peut pas y avoir de faux négatif) ;
  • avec une certaine probabilité que l'élément peut être présent dans l'ensemble (il peut y avoir des faux positifs).

Dans Git 2.27, le format de fichier de commit-graph a été étendu pour stocker les filtres de Bloom de chemin modifié. Cela signifie dans un sens que ces nouvelles informations aident Git à trouver les points de l'historique qui ont touché un chemin donné beaucoup plus rapidement (par exemple, git log -- <path> ou git blame). Git 2.28 tire parti de ces optimisations pour offrir une poignée d'améliorations de performances importantes.

Dans les termes les plus simples, le fichier de commit-graph stocke des informations sur les commits. Essentiellement, le commit-graph agit comme un cache pour les informations couramment utilisées sur les commits : qui sont leurs parents, quel est leur arbre racine, ainsi de suite. Il stocke également des informations calculées, comme le numéro de génération d'un commit et des filtres de Bloom de chemin modifié.

Pourquoi stocker toutes ces informations ? Avant d'y répondre, il est utile d'avoir une compréhension rapide de la façon dont Git stocke les objets. Git stocke les objets de deux manières: soit en tant qu'objet libre (auquel cas le contenu de l'objet est stocké dans un seul fichier unique à cet objet sur le disque), soit en tant qu'objet compressé (auquel cas l'objet est assemblé à partir d'un format compressé dans un fichier *.pack). Quelle que soit la manière dont un commit est stocké, Git doit toujours l'analyser et le décompresser avant que ses champs tels que root tree et parents ne soient accessibles.

Avec un fichier de commit-graph, toutes ces informations sont immédiates : pour un commit C donné, Git sait exactement où chercher dans un fichier de commit-graph pour tous ces champs que Git stocke et peut les lire immédiatement, pas de décompression ou d'assemblage requis. Cela peut réduire le temps de vos opérations Git habituelles en soi, mais le commit-graph brille vraiment dans les données calculées qu'il stocke.

Les numéros de génération sont une sorte d'index d'accessibilité qui peut aider Git à répondre très rapidement à des questions telles que l'accessibilité et l'ordre topologique.

Quelques autres nouvelles fonctionnalités
  • Git inclut désormais un workflow GitHub Actions que vous pouvez utiliser pour exécuter les propres tests d'intégration de Git sur une variété de plates-formes et de compilateurs. Aucun effort supplémentaire n'est requis de votre part: si vous avez un fork de git / git sur GitHub, chaque push sera exécuté à travers le tableau de tests nécessaires pour valider votre changement. Si vous pouvez utiliser une liste de diffusion sur Git, avec cette version vous pourrez désormais vous servir de GitGitGadget sur le référentiel git / git. Cela signifie que vous pouvez ouvrir une pull request et demander à GitGitGadget de l'envoyer à la liste de diffusion en votre nom. Donc, si vous êtes plus à l'aise pour contribuer à Git comme ça au lieu de composer des e-mails manuellement, vous pouvez désormais contribuer à Git du début à la fin en utilisant GitHub.
  • D'un autre côté, si cela ne vous dérange pas d'envoyer un e-mail ou deux, il est désormais beaucoup plus facile d'interagir avec la liste de diffusion Git lorsque vous rencontrez un bogue en exécutant git bugreport. L'exécution de cette nouvelle commande ouvrira votre $EDITOR avec un formulaire prérempli de questions qui seront utiles pour déboguer votre problème. Il comprend également des informations utiles sur votre système, comme l'architecture de votre processeur, la version de Git que vous utilisez, etc. Lorsque vous avez terminé, vous pouvez envoyer ce fichier sous forme de corps d'un e-mail à la liste de diffusion Git.
  • git status a également appris de nouvelles astuces. Désormais, git status peut vous rappeler quand vous êtes dans un sparse checkout en vous indiquant le pourcentage de fichiers que vous avez extraits.Pour ceux qui aiment utiliser git-prompt.sh, l'invite affichera désormais SPARSE si vous êtes dans un sparse checkout.

Source : GitHub, Software Freedom Conservancy

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de
https://www.developpez.com
Le 29/07/2020 à 18:09
Citation Envoyé par Stéphane le calme Voir le message
« Conservancy et le projet Git sont conscients que le nom initial de la branche, "master", est offensant pour certaines personnes et nous compatissons avec ceux qui sont blessés par l’utilisation de ce terme.
C'est quand même osé, quand on voit l'origine de git...

“git”, qui est à peu près l'équivalent de “connard” en argot britannique
https://fr.wikipedia.org/wiki/Git#Origine_du_nom
11  0 
Avatar de Markand
Membre éclairé https://www.developpez.com
Le 30/07/2020 à 10:48
Ça commence à me fatiguer tous ces changements pour ne pas offusquer les gens. Quand tu es un minimum sain d'esprit tu sais très bien qu'il y a pas de connotation négative dans un mot d'un logiciel.

Dans ce cas, devrions nous changer le nom de la fonction C abort parce qu'elle porte le même nom que l'avortement qui est un sujet tabou dans certains pays ? C'est de plus en plus ridicule.
10  0 
Avatar de L33tige
Membre expérimenté https://www.developpez.com
Le 30/07/2020 à 10:50
Citation Envoyé par Markand Voir le message
Ça commence à me fatiguer tous ces changements pour ne pas offusquer les gens. Quand tu es un minimum sain d'esprit tu sais très bien qu'il y a pas de connotation négative dans un mot d'un logiciel.

Dans ce cas, devrions nous changer le nom de la fonction C abort parce qu'elle porte le même nom que l'avortement qui est un sujet tabou dans certains pays ? C'est de plus en plus ridicule.
Bah changer le nom d'une fonction c'est relou pour ceux qui l'utilisent.

En revanche, donner la possibilité de renommer le tronc peut importe le contexte c'est un truc qui aurait du faire partie de GIT depuis un moment. Combien font des branches qui s’appellent "PROD" sur git et au final le master est un miroir prod...
8  0 
Avatar de Dave Hiock
Membre confirmé https://www.developpez.com
Le 31/07/2020 à 10:14
J'avais un maître à l'école et pourtant nous n'étions pas ses esclaves, qui plus est un véritable bourreau de travail, peut-être faudrait-il supprimer également ce mot !

J'ai de la chance quelque part d'avoir raté mon master
8  0 
Avatar de Le_Duc
Nouveau membre du Club https://www.developpez.com
Le 29/07/2020 à 21:26
On est vraiment passés à une génération de fragiles c'est ahurissant... C'est devenu la phrase magique "cela m'offense".
11  4 
Avatar de Dymmm
Membre actif https://www.developpez.com
Le 30/07/2020 à 13:04
Citation Envoyé par Uther Voir le message
Il faut en effet s'attaquer aux idées et les mots sont tout de même le véhicule des idées. Ce n'est évidement pas parce que l'on change les mots que l'on va résoudre tous les problèmes de racisme, il n’empêche que ça ne fait pas de mal d'enlever du vocabulaire courant les termes qui s'y ramènent.

Git ne va effectivement pas changer le comportement de la police. Il fait juste ce qu'il peut faire a son niveau, même si c'est peu. C'est pas comme si ça empêchait les autres types d'efforts qui ne dépendent pas de lui.
[troll]
En supprimant ce terme j'ai l'impression qu'on me traite directement de raciste pars que j'utilise une branche nommée 'master'. Ce terme est censé être offensant par des personnes ? Il y a des gens qui se prennent pour des branches ?
[/troll]

Sérieusement, il y a vraiment des gens dans le monde qui n'ont pas les capacités de différencier les significations des mots, c'est un fait. Qui se ressemble s'assemble dit on lorsqu'on est raciste / xénophobe / limité. C'est la même chose pour les gens qui militent pour l'appauvrissement du vocabulaire qu'il ne comprennent pas. Ce sont des gens qui ne savent pas voir les idées derrière les mots et qui prennent tout au pieds de la lettre.
En forçant la population a associer une valeur négative a un mot qui à bien d'autre sens nous bannissons en même temps toutes les autres idées que ce dernier peut véhiculer. Nous continuons tranquillement notre chemin vers la fameuse "novlangue".
C'est triste de voir que le monde est guidé par les plus limités d'entre nous.

PS: je suis content j'ai réussi à ne pas être [trop] agressif et à ne pas déverser toute la haine que j'éprouve à assister aux victoires quotidiennes de l'idiocratie
9  2 
Avatar de tcpop
Membre du Club https://www.developpez.com
Le 30/07/2020 à 9:02
Ridicule... Comme d'habitude, que du saupoudrage pour "faire croire" qu'on s'en occupe... S'attaquer aux mots au lieu de s'attaquuer aux idées est d'une bêtise incommensurable... Pas hyper étonnant, on vit dans un monde "américain" donc stupide et superficiel mais ça a l'air de plaire à la majorité des boeufs... C'est pas de changer "master" en init etc.... qui va empêcher d'autres Georges Floyd ou rendre des flics intelligents. En plus aujourd'hui, ces c... sont devenus une milice d'extrême droite dédiée aux banques...
6  3 
Avatar de kain_tn
Expert éminent https://www.developpez.com
Le 30/07/2020 à 21:51
Citation Envoyé par Uther Voir le message
Il faut en effet s'attaquer aux idées et les mots sont tout de même le véhicule des idées. Ce n'est évidement pas parce que l'on change les mots que l'on va résoudre tous les problèmes de racisme, il n’empêche que ça ne fait pas de mal d'enlever du vocabulaire courant les termes qui s'y ramènent.

Git ne va effectivement pas changer le comportement de la police. Il fait juste ce qu'il peut faire a son niveau, même si c'est peu. C'est pas comme si ça empêchait les autres types d'efforts qui ne dépendent pas de lui.
Mouais... J'apprécie le fait que le comportement par défaut ne change pas.

Là où je ne suis pas d'accord avec toi, c'est que s'attaquer aux mots ne sert à rien, surtout quand on les sort de leur contexte! Les branches de Git ne sont pas des "slaves" mais des "copy", puisque "master" vient de "master copy": en gros, le travail d'un maître et celui de ses disciples (et non de ses esclaves)... Sauf que face à une foule en colère et décérébrée, on ne peut pas raisonner alors on cède et on renomme comme des débiles
2  0 
Avatar de L33tige
Membre expérimenté https://www.developpez.com
Le 30/07/2020 à 10:42
Boh, pour moi c'est juste une excuse pour se faire mousser, c'est juste une fonctionnalité qui aurait du être là depuis un moment de pouvoir renommer le tronc, ça me paraissais évident, ils y ont juste vu une opportunité de s'afficher une bonne image sur une simple mise à jour.

C'est l'équivalent de mettre un drapeau dans le logo.
1  0 
Avatar de
https://www.developpez.com
Le 30/07/2020 à 13:42
Citation Envoyé par Dymmm Voir le message
En forçant la population a associer une valeur négative a un mot qui à bien d'autre sens nous bannissons en même temps toutes les autres idées que ce dernier peut véhiculer. Nous continuons tranquillement notre chemin vers la fameuse "novlangue".
C'est triste de voir que le monde est guidé par les plus limités d'entre nous.
Il faut arrêter avec la novlangue, c'est juste de la fiction. Ca vient essentiellement de l'hypothèse de Sapir-Whorf, et c'est plutôt faux.

l’hypothèse de Sapir-Whorf soutient que les représentations mentales dépendent des catégories linguistiques, autrement dit que la façon dont on perçoit le monde dépend du langage.
...
ils concluent à l'inverse que c'est l'organisation des catégories mentales qui détermine les catégories linguistiques3. Bien que rejetée dans sa version radicale, la thèse de Sapir-Whorf a toutefois rencontré un regain d'intérêt à la fin du XXe siècle dans le cadre des travaux expérimentaux montrant que le langage pouvait bel et bien avoir un effet, parfois faible mais néanmoins mesurable, sur la perception et la représentation de l'espace, du temps et des émotions.
https://fr.wikipedia.org/wiki/Hypoth...de_Sapir-Whorf
2  1