- Diversion은 클라우드 시대의 대규모 저장소와 협업을 겨냥한 버전 관리 시스템으로, 초기 사용자는 단순성과 확장성을 원하는 게임 개발자들임
- Git은 2005년의 느린 네트워크·작은 프로젝트·클라우드 부재 환경에서 만들어져, 오늘날의 저장소·파일 크기와 동시 사용자 규모에서 한계가 있다고 봄
- Google과 Meta의 자체 버전 관리 시스템, 일부 게임 개발·반도체·금융 서비스 기업의 SVN·Perforce 사용은 Git이 모든 조직에 맞지는 않다는 근거로 쓰임
- Diversion은 분산 스토리지, 데이터베이스, REST API, 서버리스 클라우드 인프라 위에서 commit·branch·merge 같은 저장소 작업을 API 호출로 처리함
- 현재 오픈 베타로 제공되며 소규모 팀은 무료로 시작할 수 있고, 속도 개선·CI 통합·IDE 및 게임 엔진 플러그인·사용성 개선이 진행 중임
Diversion이 겨냥하는 Git의 한계
- Diversion은 diversion.dev에서 제공되는 클라우드 네이티브 버전 관리 시스템임
- 빠른 데모는 YouTube 영상으로 제공됨
- 초기 사용자는 게임 개발자이며, 단순성과 확장성을 장점으로 봄
- Git은 지난 18년 동안 소프트웨어 개발 발전에 큰 역할을 했지만, 2005년의 환경에 맞춰 만들어져 모든 사용자에게 완벽한 도구는 아님
- 가장 큰 단점은 저장소 크기, 파일 크기, 동시 사용자 수에서 드러나는 제한된 확장성임
- Google과 Meta는 이 때문에 자체 버전 관리 시스템을 만들었음
- 게임 개발, 반도체, 금융 서비스 분야의 일부 대기업은 SVN과 Perforce 같은 레거시 도구를 계속 사용함
- Git의 복잡성도 실제 작업 손실로 이어질 수 있음
- 이전 스타트업에서 데이터 과학자가 잘못된 Git 명령을 사용해 팀의 한 달치 작업을 잃은 사례가 있었음
- 몇 시간 뒤 업데이트되지 않은 저장소 클론에서 복구할 수 있었음
- 다만 Git의 브랜치와 머지 기능은 feature branch와 CI/CD 같은 현대적 개발 방식, 개발자 속도 향상에 크게 기여했음
클라우드 기반 작동 방식
- Diversion은 Git의 브랜치 기능을 유지하면서도 더 쉽고 빠르며 확장 가능한 버전 관리 시스템을 목표로 함
- 현대 클라우드 도구의 실시간 협업 개념을 버전 관리에 적용함
- Google Docs와 Figma처럼 작업 중 상태를 공유할 수 있음
- 개발자가 항상 작업 중인 내용을 공개하고 싶어 하지는 않지만, 커밋 전 피드백을 받거나 머지 충돌을 감지·방지하거나 다른 사람이 코드베이스의 어느 부분을 바꾸는지 확인하는 데 유용할 수 있음
- 내부 구조는 분산 스토리지와 데이터베이스, REST API, 서버리스 클라우드 인프라 기반임
- commit, branch, merge 등 모든 저장소 작업은 API 호출로 처리됨
- 데스크톱 클라이언트는 커밋 전 작업 중 상태까지 클라우드에 실시간 동기화함
- 사용자는 대화형 CLI, Web UI, IDE 플러그인으로 접근할 수 있음
- 현재 IDE 플러그인은 JetBrains를 지원하며, 더 추가될 예정임
- Web UI는 데스크톱 클라이언트를 설치하지 않아도 대부분의 기본 작업을 수행할 수 있음
- Git과 호환되며 기존 Git 저장소와 동기화할 수 있음
- Diversion의 새 커밋은 Git으로 들어가고, Git의 새 커밋도 Diversion으로 들어감