몇일전 발표된 Git 2.50 프로젝트의 새로운 버전 출시, 600개 이상의 변경 사항 도입 이번에는 98명의 새로운 기여자를 포함해 35명의 개발자가 참여한 활발한 커뮤니티의 주도로 이루어졌습니다.
Git 2.50의 새로운 버전은 새로운 명령(git-diff-pairs), 정리, 필터링, 유지 관리를 위한 새로운 기능, 재귀적 병합 엔진을 ORT로 대체하고, 성능을 개선하고 버그를 수정한 것이 특징입니다.
Git 2.50 주요 새로운 기능
Git 2.50의 이 새로운 버전에서 가장 중요한 새로운 기능 중 하나는 다음과 같습니다. 소위 "크러프트 팩" 처리 최적화 즉, 브랜치나 태그에서 접근할 수 없거나 참조되지 않는 객체의 패키지입니다. 전통적으로 Git은 이러한 객체를 하나의 큰 패키지 파일에 저장했기 때문에 이러한 항목이 많은 저장소를 다시 패키징할 때 성능 문제가 발생할 수 있었습니다.
새로운 버전으로, Git을 사용하면 이러한 불필요한 팩을 여러 개의 작은 파일로 분할할 수 있습니다.디스크 사용량을 줄이고 대량 작업의 입출력 성능을 향상시킵니다. 또한,그리고 –combine-cruft-below-size 옵션을 입력하세요.을 통해 작은 패키지를 보다 유연하게 하나로 결합 이전 –max-cruft-size 옵션보다 더 강력하면서도 파일 크기에 제한을 두지 않습니다. 이 새로운 기능은 특히 여러 패키지에 분산된 고아 객체가 있는 프로젝트에서 유용합니다.
대규모 저장소를 목표로 한 또 다른 개선 사항은 다음과 같습니다. 실험적 지원 증분 업데이트 MIDX 지수 어떤 그들은 객체에 대한 정보를 별도의 레이어에 저장합니다. 비트맵 파일을 사용하면 새 커밋이 추가될 때 더 빠른 업데이트가 가능합니다. 이러한 발전은 메타데이터를 완전히 다시 빌드하지 않고도 빠른 인덱싱 작업이 필요한 대규모 저장소에 매우 중요합니다.
ORT로 재귀 병합 엔진을 완전히 교체
Git 2.50에서는 다음과 같은 주요 변경 사항이 도입되었습니다. 재귀 퓨전 엔진의 영구적 제거 전통적인. 대신, ORT 사용이 통합되었습니다하는 더욱 현대적이고, 유지 보수가 용이하며, 효율적인 퓨전 엔진입니다. ORT는 더욱 정밀한 충돌 분석을 제공할 뿐만 아니라, 추가 객체를 생성하지 않고도 병합이 가능한지 확인할 수 있도록 합니다. 또한, merge-tree 명령에 –quiet 옵션이 추가되어 저장소를 수정하지 않고도 자동으로 병합을 확인할 수 있습니다.
gitt-diff-pairs: 확장성 문제에 대한 솔루션
코드 검토는 의심할 여지 없이 현대 협업 개발의 핵심 요소 중 하나이며, 수정 버전 간의 차이점(diff)은 이 과정에서 중요한 역할을 합니다. Git 2.50이 출시되면서 확장성을 위해 설계된 솔루션인 git-diff-pairs 명령이 도입되었습니다.
전통적으로 두 개정판을 비교하려면 다음과 같은 명령을 사용합니다.
git diff HEAD~1 HEAD
이 명령은 나열된 수정 사항 간의 모든 변경 사항을 포함하는 완전한 패치를 생성합니다. 많은 경우 효과적이지만, 수정된 파일이 대량으로 있는 경우 성능 문제가 발생할 수 있습니다.
그렇기 때문에 git-diff-pairs는 git diff-tree의 출력에서 직접 원시 입력을 받고 해당 패치를 효율적이고 정확하게 생성하도록 특별히 설계되었습니다.
사용 방법은 다음과 같습니다.
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
이 명령은 제공된 블롭 쌍을 사용하여 정확한 diff 출력을 생성하며, 컨텍스트 정보를 보존하고 작업을 더 작은 배치로 분할할 수 있도록 합니다. 이를 통해 병렬 처리가 가능해지고, 리소스 효율성이 향상되며, GitLab과 같은 diff 기반 도구의 확장성이 향상됩니다.
청소, 필터링 및 유지 관리를 위한 새로운 기능
Git 2.50에는 저장소 유지 관리를 개선하도록 설계된 여러 가지 추가 도구가 포함되어 있습니다.
- 명령이 추가되었습니다 git reflog 삭제이를 통해 특정 브랜치에 대한 reflog를 완전히 삭제할 수 있어 더 이상 이전 참조를 유지할 필요가 없을 때 작업 기록을 정리하는 데 이상적입니다.
- 선택 -필터 이제 git에서 cat-file --batch를 사용할 수 있으며, 이를 통해 객체 유형별로 결과를 필터링할 수 있습니다.
또한, 몇 가지 내부 최적화도 강조되었습니다.
- 접두사 캐싱과 중복 검사 감소를 통해 심볼릭 링크의 사용이 개선되었습니다.
- 문서 및 테스트 스크립트에서 Perl 종속성을 제거하고 이를 셸 함수나 C 구현으로 대체하여 최소한의 구성으로 시스템에서 컴파일하기가 더 쉬워졌습니다.
- 컨트롤러 포함 사용자 차이 .ini 파일의 차이점을 분석하기 위해.
- Outlook과 같은 SMTP 서버와 git send-email 명령의 호환성이 향상되었습니다.
마지막으로, 그것에 대해 더 알고 싶다면 자세한 내용을 참조할 수 있습니다. 다음 링크.