- "git-commit-folders" 프로젝트는 Git 커밋을 폴더로 마운트하여 시각화하는 새로운 접근 방식을 제공합니다.
- 지원되는 파일시스템은 FUSE, NFS 및 WebDAV이며, WebDAV는 심볼릭 링크를 지원하지 않기 때문에 NFS에 중점을 두고 있습니다.
- 구현을 동기화하기 위해 NFS 및 WebDAV용 어댑터를 갖춘 핵심 FS 인터페이스가 만들어졌습니다.
- 리포지토리의 수많은 커밋은 접두사별로 폴더로 구성하고 패킹된 커밋 해시를 캐싱하여 관리합니다.
- 디버깅에는 Wireshark로 NFS 패킷을 분석하고 "디렉터리가 아님" 및 "오래된 파일 핸들"과 같은 오류를 처리하는 작업이 포함되었습니다.
- 이노드 번호는 루프를 피하기 위해 파일 경로를 해싱하여 생성했습니다.
- "branch_histories" 디렉터리에는 현재 각 브랜치에 대한 최신 커밋 100개만 표시됩니다.
- 서브모듈은 현재 무시됩니다.
- NFSv4 지원은 가능하지만 NFSv3에 비해 어떤 이점이 있는지 명확하지 않다.
- 이 프로젝트는 커밋을 폴더로 표현하여 Git의 내부 구조를 보다 직관적으로 이해하는 것을 목표로 합니다.
jvns.ca
Mounting git commits as folders with NFS
