# EdenSCM - 크로스플랫폼 고확장성 버전 관리 도구

> Clean Markdown view of GeekNews topic #2056. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=2056](https://news.hada.io/topic?id=2056)
- GeekNews Markdown: [https://news.hada.io/topic/2056.md](https://news.hada.io/topic/2056.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2020-05-11T10:55:16+09:00
- Updated: 2020-05-11T10:55:16+09:00
- Original source: [github.com](https://github.com/facebookexperimental/eden)
- Points: 5
- Comments: 1

## Topic Body

- 페이스북의 자체 버전 관리 툴. Mercurial 기반으로 작성했지만 자신들에 맞게 확장.

- 3개의 컴포넌트로 구성

ㅤ→ eden : CLI도구. 윈/맥/리눅스

ㅤ→ Mononoke : 분산형이 아닌 SCM서버. 거대 Repo를 지원하기 위해 체크아웃시 전체가 아닌 일부만 다운로드하고 필요할때 추가 다운로드. 리눅스 온리. Rust Cargo 지원예정

ㅤ→ EdenFS : 체크아웃을 관리하기 위한 가상 파일 시스템. 거대 Repo에서 빠르게 체크아웃 하기 위해 사용. Sparse Checkout 과 비슷하지만 별도 리스트 관리 필요 없어서 사용자에게 훨씬 편리한 방식. Watchman과도 연동. 리눅스/맥/윈도우

- 페이스북의 거대한 Monorepo 코드베이스를 지원하기 위해서 만든거라 페이스북 외부지원은 아직 실험중.

## Comments



### Comment 1768

- Author: xguru
- Created: 2020-05-11T10:55:24+09:00
- Points: 2

* MS 는 Git을 확장한 VFS for Git https://vfsforgit.org/

* Google 은 Piper https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext

* 페이스북이 Mercurial 기반을 선택한 이유 https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/

윈도우/구글/페북 모두 초대형 Monorepo 라서, 그 시절(2010년대 초반)의 Git은 적절하지 않으니 자신들의 길을 간거라고 보면 될 듯.

 ㅤ→ 구글이 2016년 기준 86TB, 20억 라인, 9백만개의 소스코드 파일에 3500만개의 커밋

 ㅤ→ 페이스북이 2013년 기준 1700만 라인에, 44000개의 소스코드 파일

지금은 Git 도 2.25 부터 Sparse Checkout 을 지원하긴 하지만 아직 초기단계라고 볼수 있으니까요.

Git 2.25 릴리즈 - 주요 변경 사항들 https://news.hada.io/topic?id=1309
