+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Le nouveau hachage par défaut de Git – Ce que cela signifie

Le SHA-256 proposé par Git comme valeur par défaut crée une limite de compatibilité pour les nouveaux dépôts.

Le SHA-256 proposé par Git comme valeur par défaut crée une limite de compatibilité pour les nouveaux dépôts. Nous examinons le plan officiel, l'objection de Scott Chacon et une exception d'aperçu GitHub fonctionnelle, puis nous couvrons Pi 1.0 et SvelteKit 3. Verdict : NEEDS REVIEW.

Lire l'édition écrite (anglais) ↗

Ce que couvre cette vidéo

  • 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'a montré notre vérification de compatibilité locale ?
  • 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 gérés par YouTube.

Pourquoi deux dépôts Git peuvent-ils refuser de communiquer ?

0:00 On pourrait penser que la mise à niveau de Git permet à vos outils de communiquer. Le nouveau hachage par défaut prévu par Git crée des dépôts que l'ancien format actuel ne peut pas utiliser. Dans cette vidéo, pourquoi ce changement ? Qu'est-ce qui est cassé ? Qui est prêt ? Il y a déjà une exception fonctionnelle sur GitHub. Je vous montrerai ce qu'elle prouve à la fin. Nous sommes le 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 aidé à construire GitHub et a écrit Pro Git, donc cette plainte vient de l'intérieur. La maison vend aussi des outils Git. D'abord, le plan réel.

Qu'est-ce que Git 3 change réellement ?

0:35 Git trois mettrait par défaut les nouveaux dépôts en SHA deux cent cinquante-six, une fois que les bibliothèques et les services d'hébergement seront prêts à le prendre en charge. Le document officiel ne donne pas de date de sortie et maintient la prise en charge de SHA un. Votre dépôt existant ne change pas de format comme par magie lorsque vous mettez à jour l'exécutable. C'est bon à retenir avant que votre discussion de groupe ne planifie une migration d'urgence. Le drame est un défaut proposé, et la date limite est actuellement un calendrier vierge.

Pourquoi remplacer SHA-1 si Git détecte les collisions ?

0:58 Pourquoi changer du tout ? Git nomme les objets en hachant leur contenu. Les fichiers alimentent les arbres, et les commits font référence aux arbres et aux commits antérieurs. Cela vous donne l'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, arguant que la distribution

1:17 fiable est importante. C'est une position historique, et Linus a choisi SHA un en deux mille cinq. La situation en matière de sécurité a évolué depuis. Des chercheurs ont démontré des collisions SHA un en deux mille dix-sept, 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 un SHA un renforcé. Ses mainteneurs veulent aussi une protection contre les futures attaques, ce qui est une chose raisonnable à vouloir des signatures. Chacon pense que le coût de l'écosystème apporte trop peu de sécurité.

1:41 Il propose de signer une somme de contrôle forte séparée du contenu de l'arbre, tout en gardant l'adressage d'objets actuel en dessous. 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.

Qu'a montré notre vérification de compatibilité locale ?

1:54 Ensuite, j'ai essayé de récupérer entre eux. Mon Git installé l'a rejeté avec des algorithmes incompatibles, exactement l'écart de compatibilité décrit dans le manuel officiel actuel. Ceci a utilisé mon ancien Git installé, donc cela nous renseigne sur la limite actuelle. Le qualifier de test du Git trois non sorti 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 lient aux noms d'objets. Rehacher un historique nécessite un mappage entre ces identités.

2:19 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 cachée dans votre outil de développement préféré. 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 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 cet écosystème

2:44 se rattrape. Pendant ce temps, Pi a atteint un point zéro. C'est un harnais d'agent de codage d'Earendil, avec un support MCP natif via

Qu'est-ce qui survit à un crash dans Pi Durable ?

2:51 Codemode et des outils chargés quand ils sont nécessaires. L'équipe appelle le minimalisme le point. 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. Il a également publié Pi Durable, un cadre 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 s'il déclare cela sûr.

3:16 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 trois a également atterri jeudi, déplaçant la configuration dans Vite et

Que migre SvelteKit 3 pour vous ?

3:30 remplaçant dollar lib par hash lib, en utilisant les importations de sous-chemins de paquets standard. 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 atteignons le point où une mise à niveau de framework livre des devoirs et un professeur suppléant suggéré. Et les fonctions distantes ont toujours besoin de Svelte Async expérimental. Un numéro de version majeure semble rassurant, mais les fonctionnalités individuelles portent leurs propres

3:56 libellés de maturité. Vérifiez celles que vous utilisez réellement. Alors, qui est prêt pour le nouveau format de Git ?

Que prouve l'exception de GitHub qui fonctionne ?

4:03 Voici cette exception. Un dépôt public GitHub contenant la conférence de Brian Carlson renvoie déjà un nom d'objet SHA deux cent cinquante-six complet. J'ai vérifié le remote public directement. Les diapositives de la conférence appellent le support une prévisualisation privée et disent que la création de dépôts est encore à venir. 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 projet ordinaire ou toutes vos

4:24 intégrations sont prêtes. L'exception a une limite d'autorisation. 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 chaque matin, gratuitement sur the daily diff dot dev, lien ci-dessous. Donc, le verdict d'aujourd'hui est NEEDS REVIEW. Je garderais l'option de hachage plus forte, et je testerais toute la chaîne d'outils avant de changer

Pourquoi mon verdict dépend-il de toute la chaîne d'outils ?

4:40 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. Faites les merges de manière responsable. Fusionnez de manière responsable.

Sources

  1. Chaconblog.gitbutler.com
  2. Git's official plangit-scm.com
  3. Current interoperabilitygit-scm.com
  4. Transition designgit-scm.com
  5. Independent collision researchsha-mbles.github.io
  6. GitHub preview repositorygithub.com
  7. Pi 1.0earendil.com
  8. Pi Durableearendil.com
  9. SvelteKit 3svelte.dev
  10. HN discussionnews.ycombinator.com

Vidéos similaires