Git 호환 버전 관리 시스템 'jj' v0.37.0 릴리즈: 새로운 기능과 성능 개선!
Git과 호환되는 버전 관리 시스템 jj v0.37.0 릴리즈
숨겨진 변경 ID와 분기된 변경 ID를 참조하는 새로운 구문 xyz/n 도입
revset, 명령어 인수, 설정에서 문자열 패턴을 기본적으로 glob으로 파싱하도록 변경
실행 파일 비트 표현(Executable bit representation) 업데이트 및 jj file search 명령어 추가
숨겨진 및 분기된 변경 ID 참조 구문
jj v0.37.0 릴리즈는 숨겨진(hidden) 및 분기된(divergent) 변경 ID를 참조하기 위한 새로운 구문인 xyz/n을 도입했다. 여기서 n은 숫자이며, xyz/0은 xyz의 최신 버전을, xyz/1은 이전 버전을 나타낸다. 이를 통해 개발자는 실수로 인한 변경 사항을 복원하거나, 분기된 변경 사항을 명확하게 구분할 수 있다. 특히, jj restore 명령어를 사용하여 이전 상태로 되돌리는 작업이 용이해졌다.
revset 및 설정 변경
이번 릴리즈에서는 revset, 명령어 인수, 설정에서 문자열 패턴을 처리하는 방식을 변경했다. 이전에는 문자열 패턴을 glob으로 처리하지 않았지만, 이제는 기본적으로 glob으로 파싱한다. 이는 revset 및 설정 파일에서 문자열 패턴을 사용하는 방식에 영향을 미치며, 개발자는 substring: 또는 exact: 접두사를 사용하여 기존 동작을 유지하거나, glob 패턴을 활용할 수 있다. 또한, remotes.<name>.auto-track-bookmarks 설정도 revset과 동일한 방식으로 파싱하도록 변경되었다.
작업 복사본(Working Copy) 및 파일 검색 기능 개선
jj는 실행 파일 비트 표현을 업데이트하여 Unix 환경에서 실행 파일 비트 변경을 무시할 수 있도록 했다. 기본적으로 파일 시스템의 동작을 감지하지만, working-copy.exec-bit-change 설정을 통해 수동으로 제어할 수 있다. 또한, jj workspace add 명령어가 빈 대상 디렉터리에서도 작동하도록 개선되었으며, jj git remote 명령어는 서로 다른 fetch 및 push URL을 지원한다. 특히, jj file search 명령어가 추가되어 파일 내에서 패턴을 검색하는 기능이 제공된다.
Windows 환경에서의 심볼릭 링크(Symlink) 지원 개선
Windows 환경에서 심볼릭 링크 관련 버그가 수정되었다. 이전 버전에서는 /를 포함하는 경로를 가리키는 심볼릭 링크가 지원되지 않았지만, 이번 릴리즈에서는 해당 문제를 해결했다. 이는 Windows 환경에서 jj를 사용하는 개발자에게 안정성을 제공하며, 심볼릭 링크를 활용하는 작업의 효율성을 높인다. 또한, jj util gc 명령어를 통해 .jj/repo/store/extra 디렉터리에서 도달할 수 없는 파일을 정리하여 디스크 공간을 절약할 수 있다.