Gits neuer Hash-Standard – Was das bedeutet
Gits vorgeschlagener SHA-256-Standard schafft eine Kompatibilitätsgrenze für neue Repositories.
Gits vorgeschlagener SHA-256-Standard schafft eine Kompatibilitätsgrenze für neue Repositories. Wir prüfen den offiziellen Plan, Scott Chacons Einspruch und eine funktionierende GitHub-Vorschau-Ausnahme, dann behandeln wir Pi 1.0 und SvelteKit 3. Fazit: NEEDS REVIEW.
Die schriftliche Ausgabe lesen (Englisch) ↗
Was dieses Video behandelt
- Warum können sich zwei Git-Repositories weigern, miteinander zu kommunizieren?
- Was ändert Git 3 tatsächlich?
- Warum SHA-1 ersetzen, wenn Git Kollisionen erkennt?
- Was zeigte unsere lokale Kompatibilitätsprüfung?
- Was überlebt einen Absturz in Pi Durable?
Übersetztes Transkript
Aus der englischen Originalerzählung übersetzt. Verfügbare Audio- und Untertitel werden von YouTube gesteuert.
Warum können sich zwei Git-Repositories weigern, miteinander zu kommunizieren?
0:00 Man sollte meinen, ein Git-Upgrade würde die Kommunikation der Tools aufrechterhalten. Gits geplanter neuer Hash-Standard erstellt Repositories, die das heutige alte Format nicht verstehen kann. In diesem Video: Warum die Änderung? Was geht kaputt? Wer ist bereit? Es gibt bereits eine funktionierende Ausnahme auf GitHub. Ich zeige Ihnen am Ende, was das beweist. Es ist Freitag, der zweite Oktober, und das ist The Daily Diff.
0:18 Am Donnerstag bezeichnete ein GitHub-Mitbegründer Gits geplante Änderung als kostspieligen Fehler. Pi hat ein neues Agent-Gerüst ausgeliefert, und SvelteKit eine weitere Migration. Scott Chacon hat GitHub mit aufgebaut und Pro Git geschrieben, daher kommt diese Beschwerde von innerhalb des Hauses. Das Haus verkauft auch Git-Tools. Zuerst der eigentliche Plan.
Was ändert Git 3 tatsächlich?
0:35 Git drei würde neue Repositories standardmäßig auf SHA-256 setzen, sobald Bibliotheken und Hosting-Dienste bereit sind, es zu unterstützen. Das offizielle Dokument gibt kein Veröffentlichungsdatum an und behält SHA-1 als unterstützt bei. Ihr bestehendes Repository ändert nicht magisch das Format, wenn Sie die ausführbare Datei aktualisieren. Das ist es wert, sich daran zu erinnern, bevor Ihr Gruppenchat eine Notfallmigration plant. Das Drama ist ein vorgeschlagener Standard, und der Termin ist derzeit ein leerer Kalender.
Warum SHA-1 ersetzen, wenn Git Kollisionen erkennt?
0:58 Warum überhaupt ändern? Git benennt Objekte, indem es deren Inhalte hashet. Dateien fließen in Bäume, und Commits verweisen auf Bäume und frühere Commits. Das gibt Ihnen Integrität über die gesamte Historie. Ändert man das Hashing-Schema, ändern sich auch die Objektnamen, einschließlich der in anderen Objekten gespeicherten Referenzen. Chacon bezieht sich auf Linus Torvalds, den Git-Erfinder, und argumentiert, dass vertrauenswürdige
1:17 Verteilung wichtig ist. Das ist eine historische Position, und Linus wählte SHA-1 bereits im Jahr zweitausendfünf. Die Sicherheitslage hat sich seitdem geändert. Forscher demonstrierten SHA-1-Kollisionen im Jahr 2017, und demonstrierten später einen Chosen-Prefix-Angriff gegen PGP-Identitätszertifikate. Modernes Git erkennt bekannte Kollisionsangriffe mit gehärtetem SHA-1. Die Maintainer wollen auch Schutz vor zukünftigen Angriffen, was bei Signaturen eine vernünftige Erwartung ist.
1:41 Chacon ist der Meinung, dass die Rechnung für das Ökosystem zu wenig Sicherheit bringt. Er schlägt vor, einen separaten, starken Prüfsummen der Baum-Inhalte zu signieren, während die heutige Objektadressierung beibehalten wird. Was geht kaputt? Ich habe beide Formate lokal erstellt und die gleiche kleine Datei gehasht.
Was zeigte unsere lokale Kompatibilitätsprüfung?
1:54 Ein Objektname hat vierzig Hexadezimalzeichen, der andere vierundsechzig. Dann habe ich versucht, zwischen ihnen zu fetchen. Mein installiertes Git lehnte dies mit nicht übereinstimmenden Algorithmen ab, genau die Kompatibilitätslücke, die im aktuellen offiziellen Handbuch beschrieben ist. Dies verwendete mein altes installiertes Git, daher sagt es uns etwas über die heutige Grenze. Es einen Test des unveröffentlichten Git drei zu nennen, wäre kreative Buchführung. Die Migrationsarbeit reicht in Skripte, die eine Hash-Länge annehmen, und Systeme, die auf Objektnamen verweisen.
2:19 Das Neuhashen einer Historie erfordert eine Zuordnung zwischen diesen Identitäten. Gits Übergangsdesign umfasst diese Zuordnung und die Signaturbehandlung. Die Implementierungsbereitschaft ist wichtig, denn ein Designdokument aktualisiert nicht die Bibliothek, die in Ihrem bevorzugten Entwicklertool versteckt ist. Das ist die menschliche Kosten in Chacóns Argument. Jeder Tool-Maintainer erhält eine weitere Kompatibilitätsaufgabe, während Benutzer feststellen, dass ihre Versionskontrolle nun Versionskontrolle benötigt. Testen Sie vorerst Ihren Host und Ihre Tools, bevor Sie das neue Format für ein
2:44 Projekt wählen. Bestehende Teams können ihr aktuelles Format beibehalten, während das Ökosystem aufholt. In der Zwischenzeit erreichte Pi eins Punkt null.
Was überlebt einen Absturz in Pi Durable?
2:51 Es ist ein Coding Agent Harness von Earendil, mit nativer MCP-Unterstützung durch Codemode und Tools, die bei Bedarf geladen werden. Das Team nennt Minimalismus den Kernpunkt. Wenn Ihre Agenten-Einrichtung bereits einer kleinen Regierung ähnelt, klingt es nach Verwaltungsreform, Tools erst bei Bedarf in den Prompt zu bringen. Es wurde auch Pi Durable veröffentlicht, ein separates experimentelles Framework. Aufgaben speichern Prüfpunkte, so dass ein neu gestarteter Prozess unvollendete Arbeiten aus dem dauerhaften Speicher wieder aufnehmen kann. Das entscheidende Detail ist die Werkzeugwiederholung.
3:16 Ein durch einen Absturz unterbrochenes Werkzeug wird nur dann erneut ausgeführt, wenn es dies als sicher erklärt. Andernfalls wird dem Modell mitgeteilt, dass es unterbrochen wurde. Das ist eine nützliche Grenze, wenn ein Werkzeug Geld ausgeben kann. Ich möchte, dass der Assistent meine Einkaufsliste im Kopf behält, ohne einen Absturz zu feiern, indem er sie zweimal kauft.
Was migriert SvelteKit 3 für Sie?
3:30 SvelteKit drei landete ebenfalls am Donnerstag, indem es die Konfiguration in Vite verschob und Dollar Lib durch Hash Lib ersetzte, unter Verwendung von Standard-Paket-Subpath-Imports. Der Migrationsbefehl schreibt um, was er kann, und hinterlässt eine To-Do-Liste für den Rest. Ihr Roboter kann helfen, und Ihr Diff verdient immer noch das Lesen. Die Ankündigung rekrutiert sogar Ihre Roboterfreunde für die Reste. Wir erreichen den Punkt, an dem ein Framework-Upgrade Hausaufgaben und einen vorgeschlagenen Ersatzlehrer mitliefert. Und Remote-Funktionen benötigen immer noch experimentelles Async Svelte.
3:56 Eine Hauptversionsnummer fühlt sich beruhigend an, aber einzelne Funktionen tragen ihre eigenen Reifegrade. Prüfen Sie die, die Sie tatsächlich verwenden.
Was beweist GitHubs funktionierende Ausnahme?
4:03 Wer ist also bereit für Gits neues Format? Hier ist die Ausnahme. Ein öffentliches GitHub-Repository mit Brian Carlsons Vortrag gibt bereits einen vollständigen SHA-256-Objektnamen zurück. Ich habe das öffentliche Remote direkt überprüft. Die Folien des Vortrags bezeichnen die Unterstützung als private Vorschau und sagen, dass die Repository-Erstellung noch kommt. Es gibt tatsächlichen Fortschritt hinter dem Wartezimmer. Das beweist, dass GitHub dieses Vorschau-Repository bedienen kann.
4:24 Es gibt uns keinerlei Garantie, dass die normale Projekterstellung oder alle Ihre Integrationen bereit sind. Die Ausnahme hat eine Berechtigungsgrenze. Wenn Sie dies lieber lesen als mich sprechen zu hören, landet der Diff jeden Morgen kostenlos in Ihrem Posteingang unter the daily diff dot dev, Link unten. jeden Morgen, kostenlos unter the daily diff dot dev, Link unten. Das heutige Urteil ist also NEEDS REVIEW.
Warum hängt mein Urteil von der gesamten Toolchain ab?
4:40 Ich würde die stärkere Hash-Option beibehalten und die gesamte Toolchain testen, bevor ich die Standardeinstellungen ändere. Kompatibilität ist Teil der Bereitstellung der Sicherheitsverbesserung. Und das ist der Diff für heute. Ich bin Niko von Axrisi. Verantwortungsvoll zusammenführen.
Quellen
- 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



