El nuevo hash predeterminado de Git – Lo que significa
El valor predeterminado propuesto de SHA-256 de Git crea una barrera de compatibilidad para los nuevos repositorios.
El valor predeterminado propuesto de SHA-256 de Git crea una barrera de compatibilidad para los nuevos repositorios. Analizamos el plan oficial, la objeción de Scott Chacon y una excepción de vista previa de GitHub en funcionamiento, luego cubrimos Pi 1.0 y SvelteKit 3. Veredicto: NEEDS REVIEW.
Leer la edición escrita (inglés) ↗
Lo que cubre este video
- ¿Por qué dos repositorios de Git pueden negarse a comunicarse?
- ¿Qué cambia realmente Git 3?
- ¿Por qué reemplazar SHA-1 si Git detecta colisiones?
- ¿Qué mostró nuestra verificación de compatibilidad local?
- ¿Qué sobrevive a un bloqueo en Pi Durable?
Transcripción traducida
Traducido de la narración original en inglés. El audio y los subtítulos disponibles son controlados por YouTube.
¿Por qué dos repositorios de Git pueden negarse a comunicarse?
0:00 Uno pensaría que actualizar Git mantiene la comunicación de tus herramientas. El nuevo hash predeterminado planificado de Git crea repositorios con el formato antiguo de hoy que no pueden comunicarse. En este video, ¿por qué cambiar? ¿Qué se rompe? ¿Quién está listo? Ya existe una excepción en funcionamiento en GitHub. Te mostraré lo que prueba al final. Es viernes, 2 de octubre, y este es The Daily Diff.
0:18 El jueves, un cofundador de GitHub calificó el cambio planificado de Git como un error costoso. Pi lanzó un nuevo arnés de agente, y SvelteKit lanzó otra migración. Scott Chacon ayudó a construir GitHub y escribió Pro Git, por lo que esta queja viene de dentro de la casa. La casa también vende herramientas de Git. Primero, el plan real.
¿Qué cambia realmente Git 3?
0:35 Git tres establecería por defecto los nuevos repositorios en SHA doscientos cincuenta y seis, una vez que las bibliotecas y los servicios de alojamiento estén listos para soportarlo. El documento oficial no da fecha de lanzamiento y mantiene el soporte para SHA uno. Tu repositorio existente no cambia mágicamente de formato cuando actualizas el ejecutable. Eso vale la pena recordarlo antes de que tu chat grupal programe una migración de emergencia. El drama es una propuesta de valor predeterminado, y la fecha límite es actualmente un calendario en blanco.
¿Por qué reemplazar SHA-1 si Git detecta colisiones?
0:58 ¿Por qué cambiar en absoluto? Git nombra los objetos haciendo hash de su contenido. Los archivos se alimentan de árboles, y los commits se refieren a árboles y commits anteriores. Eso te da integridad en todo el historial. Cambia el esquema de hash y los nombres de los objetos también cambian, incluidas las referencias almacenadas dentro de otros objetos. Chacon se remonta a Linus Torvalds, el creador de Git, argumentando que la distribución
1:17 confiable importa. Esa es una posición histórica, y Linus eligió SHA uno en dos mil cinco. El caso de seguridad ha cambiado desde entonces. Investigadores demostraron colisiones de SHA uno en dos mil diecisiete, y más tarde demostraron un ataque de prefijo elegido contra los certificados de identidad PGP. Git moderno detecta ataques de colisión conocidos con SHA uno reforzado. Sus mantenedores también quieren protección contra futuros ataques, lo cual es algo razonable de esperar de las firmas.
1:41 Chacon cree que el costo del ecosistema compra muy poca seguridad. Propone firmar un checksum fuerte separado del contenido del árbol, mientras mantiene la dirección de objetos actual debajo. ¿Qué se rompe? Creé ambos formatos localmente y hice hash del mismo pequeño archivo.
¿Qué mostró nuestra verificación de compatibilidad local?
1:54 Un nombre de objeto tiene cuarenta caracteres hexadecimales, el otro tiene sesenta y cuatro. Luego intenté buscarlos entre ellos. Mi Git instalado lo rechazó con algoritmos no coincidentes, exactamente la brecha de compatibilidad descrita en el manual oficial actual. Esto usó mi Git antiguo instalado, por lo que nos dice sobre el límite actual. Llamarlo una prueba del Git tres no lanzado sería contabilidad creativa. El trabajo de migración llega a scripts que asumen la longitud de un hash, y sistemas que se vinculan a nombres de objetos.
2:19 Volver a hacer hash de un historial necesita un mapeo entre esas identidades. El diseño de transición de Git incluye ese mapeo y el manejo de firmas. La preparación de la implementación importa, porque un documento de diseño no actualiza la biblioteca oculta dentro de tu herramienta de desarrollo favorita. Ese es el costo humano en el argumento de Chacon. Cada mantenedor de herramientas obtiene otro trabajo de compatibilidad, mientras que los usuarios descubren que su control de versiones ahora necesita control de versiones. Por ahora, prueba tu host y tus herramientas antes de elegir el nuevo formato para un
2:44 proyecto. Los equipos existentes pueden mantener su formato actual mientras el ecosistema se pone al día. Mientras tanto, Pi alcanzó uno punto cero.
¿Qué sobrevive a un bloqueo en Pi Durable?
2:51 Es un arnés de agente de codificación de Earendil, con soporte nativo de MCP a través de Codemode y herramientas cargadas cuando son necesarias. El equipo llama al minimalismo el objetivo. Si la configuración de tu agente ya se parece a un gobierno pequeño, mantener las herramientas fuera del prompt hasta que sean necesarias suena a reforma administrativa. También lanzó Pi Durable, un marco experimental separado. Las tareas guardan puntos de control para que un proceso reiniciado pueda retomar el trabajo sin terminar del almacenamiento persistente. El detalle crucial es la repetición de herramientas.
3:16 Una herramienta interrumpida por un bloqueo solo se vuelve a ejecutar cuando declara que es seguro. De lo contrario, al modelo se le dice que fue interrumpido. Ese es un límite útil cuando una herramienta puede gastar dinero. Quiero que el asistente recuerde mi lista de compras sin celebrar un bloqueo al comprarla dos veces.
¿Qué migra SvelteKit 3 por ti?
3:30 SvelteKit tres también llegó el jueves, moviendo la configuración a Vite y reemplazando dólar lib con hash lib, usando importaciones de subrutas de paquetes estándar. El comando de migración reescribe lo que puede y deja una lista de tareas para el resto. Tu robot puede ayudar, y tu diff aún merece ser leído. El anuncio incluso recluta a tus amigos robots para las sobras. Estamos llegando al punto en que una actualización de framework envía tarea y un maestro sustituto sugerido. Y las funciones remotas todavía necesitan Async Svelte experimental.
3:56 Un número de versión principal se siente tranquilizador, pero las características individuales llevan sus propias etiquetas de madurez. Revisa las que realmente estás usando.
¿Qué prueba la excepción en funcionamiento de GitHub?
4:03 ¿Quién está listo para el nuevo formato de Git? Aquí está esa excepción. Un repositorio público de GitHub que contiene la charla de Brian Carlson ya devuelve un nombre de objeto completo SHA doscientos cincuenta y seis. Verifiqué el remoto público directamente. Las diapositivas de la charla llaman al soporte una vista previa privada y dicen que la creación de repositorios aún está por venir. Hay un progreso real detrás de la sala de espera. Eso prueba que GitHub puede servir este repositorio de vista previa.
4:24 Nos da cero garantía de que la creación de proyectos ordinarios o todas tus integraciones estén listas. La excepción tiene un límite de permisos. Si prefieres leer esto a oírme decirlo, el diff llega a tu bandeja de entrada todas las mañanas, gratis en thedailydiff.dev, enlace abajo. Así que el veredicto de hoy es NEEDS REVIEW.
¿Por qué mi veredicto depende de toda la cadena de herramientas?
4:40 Mantendría la opción de hash más fuerte y probaría toda la cadena de herramientas antes de cambiar los valores predeterminados. La compatibilidad es parte de la entrega de la mejora de seguridad. Y ese es el diff de hoy. Soy Niko de Axrisi. Fusiona responsablemente.
Fuentes
- 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



