jj v0.41.0 출시 - Git 호환 버전 관리 시스템
5 days ago
11
- jj fix 가 특정 줄 범위 포매팅을 지원해 수정된 줄만 포매팅할 수 있으며, fix.tools.<name>.line-range-arg와 run-tool-if-zero-line-ranges 설정으로 동작을 제어함
- 새 전역 플래그 --no-integrate-operation 으로 저장소 상태나 작업 사본에 영향을 주지 않고 명령을 실행할 수 있어, 자동화 도구가 백그라운드에서 스냅샷을 만들 수 있는 상황에 유용함
- file search --pattern 의 기본값이 glob:에서 regex:로 바뀌는 호환성 변경이 있으며, 이제 kind:pattern 문법으로 여러 패턴 종류를 받을 수 있음
- jj git push --all, --tracked, -r REVSETS는 푸시 대상 리비전이 private이거나 충돌이 있어도 더 이상 실패하지 않고, 푸시할 수 없는 북마크는 건너뜀
- jj git clone 에 전달한 브랜치·북마크 패턴은 이제 .git/config가 아니라 jj 저장소 설정 파일에 저장되며, Git fetch refspec은 기본값으로 설정됨
- 템플릿 언어에서 Operation.tags() 는 폐기 예정이 되었고, 대신 Operation.attributes() 사용이 권장됨
- 새 설정 diff.git.show-path-prefix 로 diff --git 출력의 a/와 b/ 경로 접두사를 숨길 수 있음
- 템플릿에 replace(pattern, content, replacement) 함수와 ByteString 타입이 추가되어, 캡처 그룹이 있는 정규식 등 문자열 패턴 기반 치환과 파일 내용 같은 바이트 문자열 처리가 가능함
- jj gerrit upload 는 --message/-m, --edit, --merged 옵션을 지원하고, --hashtag를 반복해 여러 해시태그를 전달할 수 있음
- 새 remotes.<name>.fetch-bookmarks 와 fetch-tags 옵션으로 기본 fetch 대상을 설정할 수 있음
- JJ_PAGER 가 ui.pager 설정을 덮어쓸 수 있게 되어, JJ_EDITOR처럼 jj 전용 환경 변수 오버라이드가 가능함
- 버그 수정으로 .gitignore 처리의 Git 일관성이 개선되고, 대형 저장소에서 스냅샷 성능과 jj status 속도가 눈에 띄게 개선됐으며, 기존 Git 서브모듈 디렉터리가 체크아웃 충돌로 간주되지 않게 됨
-
Homepage
-
Tech blog
- jj v0.41.0 출시 - Git 호환 버전 관리 시스템