La nouvelle valeur par défaut de hachage de Git – Ce que ça signifie
La proposition de Git d'un hachage SHA-256 par défaut crée une barrière de compatibilité pour les nouveaux dépôts.
La proposition de Git d'un hachage SHA-256 par défaut crée une barrière de compatibilité pour les nouveaux dépôts. Nous examinons le plan officiel, l'objection de Scott Chacon et une exception de prévisualisation GitHub fonctionnelle, puis nous couvrons Pi 1.0 et SvelteKit 3. Verdict : NEEDS REVIEW.
Lire l'édition écrite (anglais) ↗
Ce que cette vidéo couvre
- Pourquoi deux dépôts Git peuvent-ils refuser de communiquer?
- Qu'est-ce que Git 3 change réellement?
- Pourquoi remplacer SHA-1 si Git détecte les collisions?
- Qu'est-ce que notre vérification de compatibilité locale a montré?
- Qu'est-ce qui survit à un crash dans Pi Durable?
Transcription traduite
Traduit de la narration originale en anglais. L'audio et les sous-titres disponibles sont contrôlés par YouTube.
Pourquoi deux dépôts Git peuvent-ils refuser de communiquer?
0:00 On pourrait penser que la mise à jour de Git maintient la communication entre vos outils. La nouvelle valeur par défaut de hachage prévue par Git crée des dépôts avec lesquels l'ancien format actuel ne peut pas communiquer. Dans cette vidéo, pourquoi changer? Qu'est-ce qui est cassé? Qui est prêt? Il existe déjà une exception fonctionnelle sur GitHub. Je vous montrerai ce qu'elle prouve à la fin. C'est vendredi 2 octobre, et c'est The Daily Diff.
0:18 Jeudi, un cofondateur de GitHub a qualifié le changement prévu par Git d'erreur coûteuse. Pi a livré un nouveau harnais d'agent, et SvelteKit a livré une autre migration. Scott Chacon a contribué à la création de GitHub et a écrit Pro Git, donc cette plainte vient de l'intérieur. La maison vend également des outils Git. D'abord, le plan réel.
Qu'est-ce que Git 3 change réellement?
0:35 Git 3 utiliserait par défaut SHA-256 pour les nouveaux dépôts, une fois que les bibliothèques et les services d'hébergement seraient prêts à le prendre en charge. Le document officiel ne donne aucune date de publication et maintient la prise en charge de SHA-1. Votre dépôt existant ne change pas de format comme par magie lorsque vous mettez à jour l'exécutable. C'est bon à savoir avant que votre discussion de groupe ne planifie une migration d'urgence. Le drame est une valeur par défaut proposée, et la date limite est actuellement un calendrier vierge. Pourquoi changer?
Pourquoi remplacer SHA-1 si Git détecte les collisions?
0:58 Git nomme les objets en hachant leur contenu. Les fichiers alimentent les arbres, et les commits se réfèrent aux arbres et aux commits précédents. Cela vous donne une intégrité à travers l'historique. Changez le schéma de hachage et les noms d'objets changent aussi, y compris les références stockées à l'intérieur d'autres objets. Chacon se réfère à Linus Torvalds, le créateur de Git, soutenant que la distribution fiable est importante. C'est une position historique, et Linus a choisi SHA-1 en 2005. Le cas de la sécurité a évolué depuis.
1:17 Des chercheurs ont démontré des collisions SHA-1 en 2017, et ont ensuite démontré une attaque à préfixe choisi contre les certificats d'identité PGP. Git moderne détecte les attaques de collision connues avec SHA-1 renforcé. Ses mainteneurs veulent également une protection contre les futures attaques, ce qui est une chose raisonnable à vouloir pour les signatures. Chacon pense que le coût de l'écosystème apporte trop peu de sécurité. Il propose de signer une somme de contrôle forte séparée du contenu de l'arbre, tout en conservant l'adressage d'objet actuel.
1:41 Qu'est-ce qui est cassé? J'ai créé les deux formats localement et haché le même petit fichier. Un nom d'objet a quarante caractères hexadécimaux, l'autre en a soixante-quatre. Ensuite, j'ai essayé de récupérer entre eux. Mon Git installé l'a rejeté avec des algorithmes incompatibles,
Qu'est-ce que notre vérification de compatibilité locale a montré?
1:54 exactement l'écart de compatibilité décrit dans le manuel officiel actuel. Cela a utilisé mon ancien Git installé, donc cela nous renseigne sur la limite actuelle. L'appeler un test du Git 3 non publié serait de la comptabilité créative. Le travail de migration s'étend aux scripts qui supposent la longueur d'un hachage, et aux systèmes qui sont liés aux noms d'objets. Rehacher un historique nécessite un mappage entre ces identités. La conception de la transition de Git inclut ce mappage et la gestion des signatures. La préparation de l'implémentation est importante, car un document de conception ne met pas à jour la bibliothèque qui se cache dans votre outil de développement préféré.
2:19 C'est le coût humain dans l'argument de Chacon. Chaque mainteneur d'outil se retrouve avec un autre travail de compatibilité, tandis que les utilisateurs découvrent que leur système de contrôle de version a maintenant besoin d'un contrôle de version. Pour l'instant, testez votre hôte et vos outils avant de choisir le nouveau format pour un projet. Les équipes existantes peuvent conserver leur format actuel pendant que l'écosystème rattrape son retard. Pendant ce temps, Pi a atteint la version 1.0. C'est un harnais d'agent de codage d'Earendil, avec un support MCP natif via Codemode et des outils chargés uniquement lorsque nécessaire. L'équipe qualifie le minimalisme d'objectif.
2:44 Si votre configuration d'agent ressemble déjà à un petit gouvernement, garder les outils hors de l'invite jusqu'à ce qu'ils soient nécessaires ressemble à une réforme administrative.
Qu'est-ce qui survit à un crash dans Pi Durable?
2:51 Il a également publié Pi Durable, un framework expérimental séparé. Les tâches enregistrent des points de contrôle afin qu'un processus redémarré puisse reprendre le travail inachevé à partir du stockage persistant. Le détail crucial est la relecture des outils. Un outil interrompu par un crash ne s'exécute à nouveau que lorsqu'il déclare que c'est sûr. Sinon, le modèle est informé qu'il a été interrompu. C'est une limite utile lorsqu'un outil peut dépenser de l'argent. Je veux que l'assistant se souvienne de ma liste de courses sans célébrer un crash en l'achetant deux fois. SvelteKit 3 est également arrivé jeudi, déplaçant la configuration dans Vite et remplaçant dollar lib par hash lib, en utilisant des importations de sous-chemins de paquets standard.
3:16 La commande de migration réécrit ce qu'elle peut et laisse une liste de tâches pour le reste. Votre robot peut aider, et votre diff mérite toujours d'être lu. L'annonce recrute même vos amis robots pour les restes. Nous arrivons au point où une mise à jour de framework livre des devoirs et un enseignant suppléant suggéré. Et les fonctions à distance nécessitent toujours Svelte asynchrone expérimental. Un numéro de version majeure est rassurant, mais les fonctionnalités individuelles portent leurs propres étiquettes de maturité.
Qu'est-ce que SvelteKit 3 migre pour vous?
3:30 Vérifiez celles que vous utilisez réellement. Alors, qui est prêt pour le nouveau format de Git? Voici cette exception. Un dépôt GitHub public contenant la conférence de Brian Carlson renvoie déjà un nom d'objet SHA-256 complet. J'ai vérifié le distant public directement. Les diapositives de la conférence décrivent le support comme une prévisualisation privée et indiquent que la création de dépôts est toujours en cours. Il y a de réels progrès derrière la salle d'attente. Cela prouve que GitHub peut servir ce dépôt de prévisualisation. Cela ne nous donne aucune garantie que la création de projets ordinaires ou toutes vos intégrations sont prêtes.
3:56 L'exception a une limite de permission. Si vous préférez lire ceci plutôt que de m'entendre le dire, le diff arrive dans votre boîte de réception tous les matins, gratuitement sur thedailydiff.dev, lien ci-dessous.
Qu'est-ce que l'exception fonctionnelle de GitHub prouve?
4:03 Donc, le verdict d'aujourd'hui est NEEDS REVIEW. Je conserverais l'option de hachage plus forte et testerais toute la chaîne d'outils avant de modifier les valeurs par défaut. La compatibilité fait partie de la livraison de l'amélioration de la sécurité. Et c'est le diff pour aujourd'hui. Je suis Niko d'Axrisi. Fusionnez de manière responsable. Vous penseriez que la mise à niveau de Git maintient vos outils en communication. La nouvelle valeur par défaut de hachage planifiée par Git crée des dépôts avec lesquels l'ancien format actuel
4:24 ne peut pas communiquer. Dans cette vidéo, pourquoi changer? Qu'est-ce qui est cassé? Qui est prêt? Il existe déjà une exception fonctionnelle sur GitHub. Je vous montrerai ce qu'elle prouve à la fin. C'est vendredi 2 octobre, et c'est The Daily Diff.
Pourquoi mon verdict dépend-il de toute la chaîne d'outils?
4:40 Jeudi, un cofondateur de GitHub a qualifié le changement planifié par Git d'erreur coûteuse. Pi a livré un nouveau harnais d'agent, et SvelteKit a livré une autre migration. Scott Chacon a contribué à la création de GitHub et a écrit Pro Git, donc cette plainte vient de l'intérieur. La maison vend également des outils Git.
Sources
- Chaconblog.gitbutler.com
- Git's official plangit-scm.com
- Current interoperabilitygit-scm.com
- Transition designgit-scm.com
- Independent collision researchsha-mbles.github.io
- GitHub preview repositorygithub.com
- Pi 1.0earendil.com
- Pi Durableearendil.com
- SvelteKit 3svelte.dev
- HN discussionnews.ycombinator.com



