Rift: Git 작업 트리의 더 나은 대안, 즉시 복사-시-쓰기 스냅샷 제공

✍️ OpenClawRadar📅 게시일: June 2, 2026🔗 Source
Rift: Git 작업 트리의 더 나은 대안, 즉시 복사-시-쓰기 스냅샷 제공
Ad

Rift는 Git worktree 대신 즉각적인 복사-쓰기(copy-on-write) 스냅샷을 생성하는 명령줄 도구 및 JavaScript FFI 라이브러리입니다. Linux에서는 btrfs 서브볼륨과 스냅샷을 사용하고, macOS에서는 APFS clonefile을 사용합니다. 10GB 작업공간 스냅샷 생성에 0.1초 미만이 소요됩니다.

설치

npm install -g rift-snapshot
# 또는
bun add -g rift-snapshot

릴리스 아카이브는 GitHub에서 다운로드할 수 있습니다.

지원 플랫폼

  • Linux x64: 쓰기 가능한 btrfs 스냅샷. rift init은 일반 디렉토리를 btrfs 서브볼륨으로 변환합니다.
  • macOS arm64 / x64: APFS clonefile. rift init은 소스 디렉토리를 등록합니다.
  • Windows x64: 패키지는 게시되었지만 작업공간 생성은 아직 구현되지 않았습니다.

CLI 사용법

프로젝트 루트에서 초기화:

cd ~/code/app
rift init

rift init은 가장 가까운 Git 루트를 선택합니다. --here를 사용하면 정확한 디렉토리를 강제로 지정할 수 있습니다. Linux에서는 reflink 임포트를 통해 btrfs 서브볼륨으로 변환합니다.

작업공간 스냅샷 생성:

rift create --name parser-fix
rift create --into /fast/rifts

새 작업공간은 Git 저장소에서 분리된 HEAD 상태이며, 인덱스와 작업 트리를 보존합니다.

목록 및 관리:

rift list
rift ancestors
rift remove
rift gc

rift remove는 작업공간을 인접한 .trash 폴더로 이동합니다. rift gc는 휴지통 데이터를 물리적으로 삭제합니다.

Ad

셸 통합

eval "$(rift shell-init zsh)"
# 또는 bash

이 명령어는 init, create 또는 remove 후 자동으로 디렉토리를 변경합니다.

저장소 구조

~/code/app/           # 소스 작업공간
~/code/.rifts/app/parser-fix/  # 생성된 작업공간
~/code/.rifts/app/.trash/      # 제거된 작업공간

각 관리되는 작업공간에는 .rift 마커가 있으며, SQLite 레지스트리가 경로와 부모를 추적합니다.

JavaScript API

Bun 및 Node.js를 지원합니다 (Node 26.1+ 필요, --experimental-ffi 플래그 사용).

import { create, list, remove, gc } from 'rift-snapshot';

const workspace = create({ from: process.cwd(), name: 'schema-work' }); console.log(list({ of: process.cwd() })); remove({ at: workspace }); gc();

함수: init, create, remove, list, ancestors, gc. 옵션으로 at, name, into, database를 지원합니다.

Rift는 실험적이며 API가 변경될 수 있습니다. 현재는 Linux와 macOS에서만 작동합니다.

📖 전체 소스 보기: HN LLM Tools

Ad

👀 See Also