-
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