jj v0.42.0가 출시되어 mimalloc 메모리 할당기를 도입, 멀티스레드 성능 향상을 목표로 함.
기존 명령줄 옵션 및 설정 옵션 일부가 제거되어 하위 호환성에 영향이 있을 수 있음.
셸 자동 완성 기능이 개선되어 사용자 정의 별칭(Custom Aliases)에 대한 설명이 표시됨.
jj show 명령어가 여러 리비전을 지원하며, jj git fetch는 변경 ID 기반으로 진화 기록을 생성함.
이번 릴리스의 핵심 변경 사항 중 하나는 mimalloc 메모리 할당기(Memory Allocator)로의 전환입니다. 이는 특히 멀티스레드 환경에서의 성능 향상을 목표로 하며, 기존 할당기 대비 메모리 사용 효율성 및 속도 개선이 기대됩니다. 커뮤니티에서는 이 변경이 jj의 전반적인 반응성과 확장성에 긍정적인 영향을 미칠 것으로 보고 있습니다.
버전 0.42.0에서는 여러 기능이 제거된(Deprecated) 명령줄 옵션 및 설정 옵션이 실제로 삭제되었습니다. 예를 들어 `jj commit --reset-author`와 같은 옵션들이 제거되었는데, 이는 기존 워크플로우에서 해당 옵션을 사용하던 사용자들에게 마이그레이션 필요성을 제기합니다. 이러한 변경은 jj의 API 안정성을 유지하면서도 코드베이스를 간결하게 관리하려는 노력의 일환으로 해석됩니다.
새로운 릴리스에서는 셸 자동 완성 기능이 사용자 정의 별칭(Custom Aliases), revset-aliases, template-aliases, fileset-aliases에 대한 설명을 표시하도록 확장되었습니다. 이는 사용자가 별칭 정의 시 `.doc` 필드에 설명을 추가하면, 자동 완성 시 해당 설명이 함께 나타나는 방식입니다. 이를 통해 사용자는 명령어의 의도를 더 명확히 파악하고, 복잡한 별칭 관리를 용이하게 할 수 있습니다.
jj show 명령어는 이제 여러 리비전(Multiple Revisions)을 순차적으로 보여주도록 변경되어 `git show`와 유사한 경험을 제공합니다. 또한, `jj git fetch`는 변경 ID(Change IDs)를 기반으로 진화 기록을 생성하며, 원격 저장소에서 변경 ID가 유지될 경우 로컬 후속 리비전이 재작성될 수 있습니다. 이는 분산 환경에서의 히스토리 관리 및 동기화를 더욱 견고하게 만듭니다.
이번 릴리스에는 여러 버그 수정이 포함되었습니다. 예를 들어, `jj git remote add` 명령어가 빈 원격 이름이나 공백 포함 시 패닉 대신 오류를 보고하도록 수정되었고(#9099), 색상 출력이 비활성화되었을 때 diff가 더 읽기 쉽게 변경되었습니다(#5894). 또한 `jj bookmark forget` 명령어가 불필요한 메시지를 출력하지 않도록 개선되었습니다(#9181). 이러한 수정들은 전반적인 사용자 경험과 도구의 안정성을 높이는 데 기여합니다.