-
ripgrep 15.0은 버그 수정, 성능 개선, 새로운 기능 추가 등 다양한 업데이트를 포함하는 주요 릴리스임
-
gitignore 규칙 적용에 관한 버그가 다수 수정되었고, 대용량 파일 처리 시 메모리 최적화가 이루어짐
- 윈도우 aarch64 플랫폼 지원이 추가되고, powerpc64 지원 중단이 이루어짐
- 일부 새로운 기능으로는 --json과 대체 플래그 동시 지원, globs의 중첩 중괄호 지원 등이 있음
- 전반적인 성능 개선과 오류 수정, 사용성 향상으로 개발자 생산성이 높아짐
ripgrep 15.0 개요
ripgrep 15.0은 ripgrep의 최신 주요 버전 릴리스로, 주로 버그 수정, 마이너 성능 향상 및 소규모 신규 기능 추가를 포함함
ripgrep은 라인 단위로 현재 디렉토리에서 정규 표현식 패턴을 재귀적으로 검색하는 도구임
기본적으로 gitignore 규칙을 따르며, 숨김 파일/디렉토리 및 바이너리 파일을 자동으로 건너뜀
주요 변경사항
- 여러 gitignore 매칭 관련 버그가 수정됨
- 상위 디렉토리의 gitignore 규칙 적용과 관련된 자주 보고된 버그 해결
- 아주 큰 gitignore 파일 처리 시 발생한 메모리 사용량 증가 버그가 해결됨
-
rg -vf file에서 file이 비어있을 때 모두 매치하게 변경됨
-
-r/--replace 플래그가 이제 --json과 함께 정상 동작함
- 일부 Jujutsu(jj) 저장소도 git 저장소처럼 인식하여, ripgrep에서 jj의 gitignore를 따름
- Globs가 중첩 중괄호를 지원함
플랫폼 지원
-
Windows용 aarch64에 대한 릴리스 바이너리가 새로 제공됨
-
powerpc64에 대한 릴리스 바이너리는 더 이상 제공되지 않음
- CI 릴리스 워크플로 문제로 인한 중단, 테스트와 지원을 원하면 요청 가능
- ripgrep 바이너리가 LTO(전체 링크 타임 최적화) 로 컴파일되어, 소폭의 성능 향상과 크기 감소 효과가 있음
성능 향상
-
Windows에서 -z/--search-zip 옵션 미사용 시, helper 바이너리 탐색 비활성화로 성능 개선
- Windows에서 하이퍼링크 출력 시 경로 정규화 생략으로 속도 향상
-
-A/--after-context 사용 시 대용량 값 처리 성능 향상
버그 수정
-
상위 디렉토리 gitignore 적용 누락 등 여러 gitignore 관련 이슈 다수 수정
- 비어있는 파일을 대상으로 한 rg -vf file 명령이 모두 매치하도록 수정
-
.gitignore 등에서 UTF-8 BOM 마커 무시하는 처리 추가
- 대용량 gitignore 파일 처리 시 메모리 사용 최적화
-
--stats 사용 시 검색된 바이트 수 출력 오류 수정
-
.으로 끝나는 glob 처리 오류 수정
-
-m/--max-count, -U/--multiline 조합 사용 시 매치 수 초과 표시 문제 해결
-
-r/--replace 플래그 사용 시 라인 종결자 보존하도록 변경
-
-q --files-without-match 조합 사용 시 종료 코드 반전 오류 해결
-
-c/--count와 --files-with-matches의 문서 불일치 해결
- 대형 정규표현식 및 입력 시 드물게 발생한 panic 문제 수정
- man page의 옵션 플래그명 하이픈 이스케이프 처리
-
macOS aarch64 릴리스에서 PCRE2 정적 컴파일 처리
- 화이트리스트 숨김 파일 검색 시 상위 디렉토리 무시 필터 버그 수정
-
--json 플래그 사용 시 잘못된 요약 통계 문제 해결
- 절대 경로 및 전역 gitignore 검색 시 gitignore 처리 오류 수정
-
-U/--multiline와 -r/--replace 조합 사용 시 발생하던 panic 문제 수정
기능 개선
- 기본 파일 타입 집합이 대폭 확장 및 개선
-
-r/--replace가 --json과 호환되게 개선
- fish shell의 완성 기능이 ripgrep 설정 파일을 반영하도록 개선
-
--color에 사용할 수 있는 스타일 속성에 italic 추가
-
.jj 디렉토리를 git 저장소로 취급
- 멀티스레딩 사용 시, CLI에서 지정한 파일 순서대로 검색을 예약하는 기능 추가
- Windows용 aarch64 릴리스 아티팩트 추가
-
highlight 컬러 타입이 추가되어, 매칭된 줄의 비매칭 텍스트 스타일링 가능
- globs 및 globset crate에 중첩 alternates 기능 추가
-
--hyperlink-format 자동완성 기능이 bash, fish, zsh에서 개선됨