Trawling

최신기사

AI, 개발 도구, 오픈소스, 보안과 인프라의 변화와 이용 조건을 설명하는 최신 기사와 해설입니다.

발행

일본 법령 개정 이력을 Git 커밋으로 추적하는 houritsu

Zenn 이용자 kohei가 소개한 houritsu는 e-Gov 법령 데이터를 법령별 Markdown 파일로 만들고, 개정법의 시행에 따른 변경을 Git 커밋으로 기록합니다. `git log`와 diff로 법령의 개정 이력을 살펴볼 수 있지만, 수록 범위는 e-Gov가 제공하는 개정 데이터에 한정되며 정본은 관보입니다.

발행

OmniDiff, Git 변경을 코드 구문과 파일 내용 단위로 비교합니다

OmniDiff는 Git의 파일 변경사항을 코드에는 구문 구조로, 이미지·압축파일·폰트 등에는 내부 내용 단위로 비교해 보여줍니다. 대화형 Git difftool에서는 터미널 화면을 열고, `git diff`와 `git log -p`에서는 pager에 맞춘 텍스트 결과를 출력합니다. 지원하지 않는 코드 문법은 줄 단위로 비교하고 다른 바이너리는 파일이 다르다는 안내만 표시합니다.

발행

Roku 개발자 저장소, GitHub에서 GitLab으로 이전

Roku가 개발 문서와 샘플 앱, 도구 저장소를 GitHub에서 GitLab으로 옮겼습니다. 저장소 이름은 유지되지만 URL과 raw 파일 경로가 바뀌어 기존 Git remote, 서브모듈, CI 설정과 문서 인덱스를 갱신해야 합니다.

발행

10월의 Gitoxide: 객체 데이터베이스 33% 가속과 안정 API 준비

gitoxide 개발자는 Rust 기반 DEFLATE 압축 해제기 Sirocco를 도입해 객체 데이터베이스 작업 속도를 높였다고 보고합니다. 워크트리 생성·삭제와 안정 API 준비도 진행했으며, diff 호환성 개선과 Cargo 체크아웃 가속 계획을 공유합니다.

발행

Git 커밋 하나는 디스크를 얼마나 차지할까요?

Git 커밋이 차지하는 공간은 파일 내용의 압축률과 변경된 디렉터리 트리 크기에 따라 달라집니다. 팩파일을 만들지 않은 실험에서는 파일 하나의 3바이트 변경에도 8~17KB가 늘었지만, 큰 텍스트 파일은 원본 크기의 약 10%만 차지했습니다.

발행

Git 저장소를 SHA-256으로 이전하기

Git 저장소를 SHA-1에서 SHA-256으로 바꾸는 절차와 서브모듈 처리 방법을 설명합니다. 서브모듈 저장소를 먼저 변환하고 marks 파일로 객체 ID를 다시 연결해야 하며, Forgejo 저장소를 제자리에서 바꾸는 방법에는 기존 커밋 참조가 깨질 위험이 있습니다.

발행

Git 참조(refs)를 이해하는 법

Git은 변경되지 않는 콘텐츠 주소 기반 객체 저장소뿐 아니라, 문자열 키로 객체를 가리키는 변경 가능한 참조(ref) 저장소도 사용합니다. 브랜치와 태그가 ref라는 점을 바탕으로 fetch 인수와 로컬·원격 브랜치의 차이를 풀어 설명합니다.

발행

패치 시리즈 리뷰 도구 Flirt, 오픈소스로 공개

Flirt는 작성자가 패치를 계속 수정하고 리베이스하는 패치 시리즈 작업 방식에 맞춘 코드 리뷰 도구입니다. 이전에 검토한 내용을 기억해 현재 변경분과 비교하며, GitHub와 메일링 리스트를 비롯한 여러 백엔드를 지원합니다. 아직 버그와 미구현 기능이 많아 일반 사용에는 이르다고 안내합니다.

발행

grubby: Git 저장소용 Ruby 정적 사이트 생성기

grubby는 베어 Git 저장소를 웹에서 볼 수 있는 정적 사이트로 만드는 Ruby 도구입니다. 저장소별 페이지와 전체 저장소 색인을 생성하며, Git 훅에 연결해 푸시 후 자동으로 다시 만들 수 있습니다. 개별 커밋이나 브랜치 페이지는 제공하지 않습니다.

발행

Git 3.0의 SHA-256 기본값은 값비싼 실수가 될 수 있습니다

Scott Chacon은 Git 3.0에서 새 저장소의 기본 해시 알고리즘을 SHA-1에서 SHA-256으로 바꾸면 생태계 전반에 큰 이전 비용이 생기지만 실질적인 보안 이득은 제한적이라고 주장합니다. 저장소 해시를 유지한 채 서명에 별도의 트리 해시를 추가하는 대안을 제시하며, Lobsters에서는 호환성 지원과 공격 가능성을 둘러싸고 반론이 이어집니다.

발행

Git 2.55 reftable 백엔드, 참조 1만 개 생성 시간 650ms에서 40ms로 단축

Git 2.55의 reftable은 참조를 대량으로 만들 때 기존 files 백엔드보다 10~60배 빠르고 디스크도 덜 씁니다. 하지만 여러 프로세스가 동시에 참조를 만들면 기본 잠금 대기 시간 탓에 실패가 잦아져, CI처럼 쓰기가 몰리는 저장소는 마이그레이션 전에 동시성 테스트가 필요합니다.

발행

git worktree의 함정들 — .git이 디렉터리가 아니라 파일일 때

git worktree가 코딩 에이전트 시대를 맞아 주류 도구가 됐지만, linked worktree에서는 .git이 디렉터리가 아니라 포인터 파일이라는 사실에서 비롯되는 함정들이 있습니다. 리포지터리 루트 탐색 로직이 어긋나고, 샌드박스 안에서는 git hooks가 끊기는 문제까지, 저자는 git rev-parse 계열 명령과 core.hooksPath 설정으로 해결책을 제시합니다.

발행

이슈 트래킹의 재발명 — 로컬 퍼스트와 Git 네이티브로

코드 포지(forge) Manganin을 만드는 저자가 Git 안에 이슈 데이터를 저장하면서도 로컬 퍼스트로 쓸 수 있는 이슈 트래킹을 설계한 과정을 다룹니다. 리포지토리 안에 .issues/ 디렉터리를 두는 방법과 refs/issues/ 특수 ref를 쓰는 방법의 실패를 거쳐, 최종적으로 이슈를 별도의 숨겨진 자매 리포지토리에 일반 파일로 저장하는 단순한 구조에 도달합니다.