-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Won-Kyu Park edited this page Aug 28, 2026
·
4 revisions
SimpleRCS는 문서 하나를 관리하기 위한 초경량 스트림 기반 버전 관리 라이브러리다. RCS의 역방향 델타 저장 방식을 그대로 가져오되, 요즘 기준으로 다시 설계했다 — 스트림 중심 I/O, HEAD O(1) 접근, 텍스트/바이너리 통합 지원, 해시체인과 GPG 서명까지.
이 위키는 코드를 처음 보는 사람이 "이게 왜 이렇게 생겼고, 실제로 어떻게 동작하는지"를 빠르게 파악하도록 만든 문서 모음이다. 소스 자체가 진실이고, 여기는 그걸 읽기 편하게 정리해둔 곳이다.
처음이라면 위에서 아래로 읽는 걸 권한다.
- System Overview — SimpleRCS가 뭘 하는 물건인지, 왜 이렇게 생겼는지
- Source Code Map — 패키지 구성과 각 파일이 맡은 역할
-
Storage Format —
.srcs파일 포맷, 블록 구조, 해시체인 - Diff Engines — StreamSequenceMatcher와 Myers 계열, 뭐가 실제로 쓰이는지
-
CLI Tools —
tools/아래 명령줄 도구들
- Wiki Backend Design — SimpleRCS를 위키 시스템의 버전 관리 엔진으로 쓸 때 뭘 보강해야 하는지, DB 백엔드별 실측 포함
- Write Durability — 커밋 도중 끊기면 어디까지 살릴 수 있나. RCS/git/hg 안전장치 비교와 실측 (§8 권장은 Plan Atomic Commit으로 뒤집혔다)
-
Plan Atomic Commit — 커밋을 temp +
os.replace로 원자적으로 설치한다. HEAD가 뒤에 있어 prefix가 공유되므로 RCS식 전체 재작성보다 싸다. 구현 완료
- 저장소: https://github.com/wkpark/SimpleRCS
- 라이선스: Apache License 2.0
- Python 3.13+, 패키지 관리는
uv