jj v0.42.0 adopta mimalloc y elimina opciones deprecadas

Fuentes: jj v0.42.0 switches to mimalloc, drops deprecated options
Imagen generada por IA con el prompt: Minimalist terminal window showing colorful version control commands and a stylized git branch diagram, soft purple and teal palette, editorial flat illustration style
Imagen generada con IA

jj, el sistema de control de versiones compatible con Git y diseñado para ser a la vez simple y potente, lanzó su versión 0.42.0. La entrega combina cambios en el motor de memoria, ajustes incompatibles con versiones anteriores, nuevas funciones y correcciones de errores, con contribuciones de 18 personas.

El cambio técnico más relevante es la adopción de mimalloc como asignador de memoria predeterminado, una decisión orientada a mejorar el rendimiento en operaciones multihilo, habituales al trabajar con repositorios grandes.

En el apartado de cambios incompatibles, la versión elimina opciones deprecadas de varios comandos. Desaparecen jj commit --reset-author y --author, las opciones equivalentes en jj describe, jj git push --allow-new y jj metaedit --update-committer-timestamp. También se retiran dos claves de configuración: git.auto-local-bookmark y git.push-new-bookmarks. Como deprecación, jj evolog deja de leer los predecesores de commit almacenados por versiones de jj anteriores a la 0.30, una medida que avanza en la limpieza del modelo de evolución.

Entre las nuevas funciones, el autocompletado del shell muestra ahora las descripciones de los alias personalizados (revset, template y fileset) extraídas del campo .doc de la definición. jj show admite varias revisiones en una sola invocación, acercándose al comportamiento de git show. jj git fetch pasa a generar el historial de evolución basándose en IDs de cambio: si el remoto los conserva, los descendientes locales se rebasan sobre los padres reescritos. Aparece además el comando jj util backend name, que imprime el backend de commits del repositorio actual, y la opción edit-invocation-mode para editores de diff, configurable como file-by-file para abrir el editor una vez por archivo y permitir el uso de herramientas como vimdiff.

En correcciones destaca el arreglo del pánico en jj git remote add cuando el nombre del remoto estaba vacío o contenía espacios. Los diffs de «color-words» se muestran como líneas separadas antes y después cuando se desactiva el color, lo que mejora la legibilidad al redirigir o canalizar la salida. jj bookmark forget ya no anuncia el olvido de marcadores locales cuando en realidad no se olvidó ninguno, y la plantilla builtin_log_redacted también redacta los nombres de los espacios de trabajo.